레이블이 jsp인 게시물을 표시합니다. 모든 게시물 표시
레이블이 jsp인 게시물을 표시합니다. 모든 게시물 표시

2012년 12월 3일 월요일

ubuntu에서 apache2, tomcat연동

이건 할때마다 기억도 안나고 햇갈린다.
그래서 오늘도 퍼담아 둔다

퍼온곳은 요기
http://bs-secretroom.blogspot.kr/2012/08/ubuntu-os-apache2-tomcat6.html


우분투 Ubuntu OS 에서 apache2 tomcat6 연동하기

우분투 Ubuntu OS 에서 패키지 설치를 위해 제공해 주는
apt-get 명령어를 이용한 패키지 설치 및
상호간 연동 방법이다.
이미 나와 있는 방법들을 통해서 많이들 아는
apache2 의 80번 포트로 접속해서 jsp 파일을 띄우는 것이다.

tomcat6 가 실행되기 위해서 우선적으로 java-jdk 가 설치되어야 한다.
또한 웹 서비스를 실행하기 위해 apache2 를 설치한다.

$ sudo apt-get install openjdk-6-jdk
$ sudo apt-get install apache2 tomcat6

apache2 와 tomcat6 가 서로 연결하기 위해 추가 패키지
libapache2-mod-jk 를 설치한다.

$ sudo apt-get install libapache2-mod-jk

libapache2-mod-jk 를 설치하면서 생성된 디렉토리에서 파일 하나를 복사해서 수정한다.

$ cp /etc/libapache2-mod-jk/workers.properties /etc/apache2/
$ sudo vi /etc/apache2/workers.properties

# 우분투 12.04 server 32bit 버전 기준으로,
# openjdk-6-jdk 를 설치했을 때의
# JAVA_HOME=/usr/lib/jvm/java-6-openjdk-i386/
# JAVA_HOME 위치는 변경될 수 있으니 /usr/lib/jvm 등의 위치를 통해 분명히 확인해 두자.

$ sudo vi /etc/default/tomcat6
JAVA_HOME=/usr/lib/jvm/java-6-openjdk-i386/

vi /etc/apache2/workers.properties
이하에 나오는 내용은 파일 내 이미 있는 내용을 수정한 것이다.
내용 추가 및 수정 내용
woeker.java_home=/usr/lib/jvm/java-6-openjdk-i386/
worker.list=jspstudy
worker.jspstudy.port=8009
worker.jspstudy.host=localhost
worker.jspstudy.type=ajp13
worker.jspstudy.lbfactor=20
파일 내용 추가 및 수정 끝

$ sudo vi /etc/apache2/apache2.conf
libapache2-mod-jk 를 설치한 모듈 관련 설정을 추가해 준다.
이하 내용을 추가한다.
내용 추가 및 수정 내용
<IfModule jk_module>
JkWorkersFile /etc/apache2/workers.properties - 위에서 복사한 workers 파일 위치 지정
JkLogFile /var/log/apache2/mod_jk.log
JkShmFile /var/log/apache2/mod_jk.shm
</IfModule>
파일 내용 추가 및 수정 끝

apache2 에서는 각 웹사이트 마다 설정 파일을 따로 만들 수 있다.
기본으로 제공하는 파일을 복사해서 tomcat 연동을 위한 파일 수정을 한다.
$ sudo cp /etc/apache2/site-available/default /etc/apache2/site-available/add-tomcat
$ sudo vi /etc/apache2/site-available/add-tomcat
이 파일 역시 파일 내 있는 정보를 수정하거나 내용을 추가한다.
내용 추가 및 수정 내용
Servername jspstudy.org
DocumentRoot /srv/web/jspstudy - 위치는 개별적으로 지정한 위치를 기억하고서 지정한다.
<Directory /srv/web/jspstudy/>
   Options FollowSymLinks
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>
JkMount /*.jsp jspstudy - jspstudy 는 위에서 언급한 workers.list 이름이다.
파일 내용 추가 및 수정 끝

이제 tomcat6 에서의 파일을 수정해준다.

$ sudo vi /etc/tomcat6/server.xml

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
위 부분의 앞뒤로 <!--, --> 이렇게 주석처리가 되어 있다.
웹사이트에서의 주석처리하는 부분인데 이 주석 부분을 삭제해서
위 내용이 나오도록 한다.

이제 각 서비스를 재시작한 후 정상적으로 올라오는지 확인해 본다.

$ sudo /etc/init.d/tomcat6 restart
$ sudo /etc/init.d/apache2 restart

웹사이트에서 접속해 본다.
http://localhost - 기본적인 apache2 서비스
http://localhost:8080 - 기본적인 tomcat6 서비스

이제 연동이 끝났으니
http://localhost/hello.jsp 파일이 정상적으로 올라오면 성공이다.

hello.jsp 파일 내용

<%@ page import="java.util.*" %>
<%@ page import="java.util.Date" %>

<html>
<body>
        <% out.print("Hello JSP"); %><br>

        <% Date toDay = new Date(); %><br>
        <%= toDay %>

</body>
</html>

여기서 toDay 부분은 서비스를 제공해주는 서버의 현재 시간이다.
이부분이 정상적으로 나오면 tomcat 서비스가 정상적인 것이다.



tomcat6 만 이용해서 80 포트 접속을 통한 서비스 시작하기
apache2 와 연동하는 주 목적은 80 포트를 이용하기 위함이다.
구글링을 하다가 아주 빠르고 간편하게 80 포트를 접속하는 방법을 찾아서 첨부한다.
$ sudo vi /etc/default/tomcat6

AUTHBIND=yes
파일 하단부에 보면 # 주석처리 되어 있다.

$ sudo vi /etc/tomcat6/server.xml
    <Connector port="80"
               protocol="HTTP/1.1"
               connectionTimeout="20000"
               URIEncoding="UTF-8"
               redirectPort="8443" />
기본값은 Connector port 가 8080 이다.

$ sudo /etc/init.d/tomcat6 restart

위에서 했던 작업이 허무할 정도로 간단하다;;;

참고로 tomcat6 메인 위치를 변경하고자 한다면
$ sudo vi /etc/tomcat6/server.xml

<Host...
로 시작하는 부분에서
appBase="[원하는 디렉토리]"

를 추가해 주자

참고 URL
http://wonchanlee.tumblr.com/post/6969537049/tomcat6-80-port-binding-on-ubuntu

2012년 3월 24일 토요일

jsp 테이블 내용 엑셀로 저장하기


펌도 펌도 이런 불펌을 ㅋㅋㅋ

=========================================================================================
예를들어 제목(title)을 조건으로 검색하여 리스트를 조회하는 화면이 있을때에
<EXCEL 파일저장>이라는 글자를 클릭하면 조건으로 들어가는 제목(title)을 parameter로
갖고 엑셀파일을 보여줄수 있는 pop-up대용의 jsp화면으로 보내준다.
========================================
                          list.jsp
========================================
<%@ page contentType="text/html;charset=euc-kr" %>
<html>
 .....
 function toXLS() {
   var address = "/jsp/excel.jsp?title=타이틀&file_name=리스트.xls";
   location.href = address;
 }
 .....
<body>
 .....
<a href="javascript:toXLS()"><strong>EXCEL 파일저장</strong></a>
 .....
</body>
</html>
========================================
지금의 코드에 이어 나오는 excel.jsp가 실제적으로 더 중요한 코드라 할수 있는데
맨처음에 jsp화면에서 설정코드를 눈여겨보아야 한다.
========================================
                          excel.jsp
========================================
<%@ page contentType="application/vnd.ms-excel;charset=euc-kr" %>
 ===> contentType를 반드시 위와같이 정의해주어야 한다.
<%
   String file_name = request.getParameter("title");
   response.setHeader("Content-Disposition", "attachment; filename=""+file_name+"";");
 ===> 저장할시에 기본적으로 설정되는 파일명을 지정하고(여기서는 order_list.xls)
        반드시 attachment로 설정을 해야 파일열기,저장 중에 선택하는 메시지가 뜬다.
   response.setHeader("Content-Description", "JSP Generated Data");
 ===> 정확히 어떤 정의였는지는 자세히 기억이 나지 않지만 필수적으로 설정해야한다.
  String title = request.getParameter("title");
  ...( title파라미터를 이용하여 DB에서 해당 목록을 ResultSet으로 받아온다. )
%>
<html>
<head>
<title>엑셀파일변환</title>
</head>
<body bgcolor=white>
<table border=1>
<tr bgcolor="#CACACA">
<th>지시일자</th>
<th>완료일</th>
<th>담당자</th>
<th>현 황</th>
<th>제      목</th>
</tr>
<%
   while(rs.next()) {   
%>       
<tr>
<td><%=rs.getString("ord_date")%></td>
<td><%=rs.getString("cmp_date")%></td>
<td><%=rs.getString("charge_name")%></td>
<td><%=rs.getString("state_name")%></td>
<td><%=rs.getString("subject")%></td>
</tr>
<%
}
%>
</table>
</body>
</html>
========================================
이렇게 화면이 만들어지면 해당 <EXCEL 파일저장>을 클릭하게되면 order_list.xls(지정한파일명)
를 현재 위치에서 열것인지 저장할 것인지를 묻는 창이 뜬다.
여기에서 저장을 하게되면 이름을 바꿔서 저장이 가능하고, 열기를 선택하면 excel.jsp에
구성된 내용들이 현재화면에 엑셀형식으로 보여지게 되는것이다.
처음 참고자료를 뒤졌을때 excel.jsp의 attachment 부분이 다른방식으로 지정되면 곧바로 엑셀파일
열기가 실행되어 난감했던 기억이 난다.
반드시 attachment을 해야만 저장을 묻는다는 것을 기억하고.. 또 기억하자 ㅡ_ㅡ/

2024년 여섯번째 도서 리뷰 [무엇이 1등 팀을 만드는가]

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 올해의 마지막 서평이다. 무엇이 1등 팀을 만드는가.... 시작하기에 앞서 제목이 과하지 않은가 하는 생각이 든다. 1등 팀이라....예전 어느 개그 프로에서 ...