[jsp] 이클립스, mysql, db 커넥션 pool, jsp 개발환경 세팅

급하게 jsp 개발할 일이 있어서.. 간략히 남겨놓는다.

이클립스 설치

난 기존에 설치되어 있었음

mysql 설치

그냥 윈도우용 설치파일 설치했음

이클립스에서 프로젝트 생성

이클립스 실행 후, New > Dynamic Web Project

jdbc dirver 복사

C:\Program Files (x86)\MySQL\Connector J 8.0\mysql-connector-java-8.0.20.jar 파일을 이클립스 해당프로젝트 > WebContent > WEB-INF > lib 에 끌어다 놓음

혹은 톰켓설치위치\lib 밑에 복사해놔도 될 듯

DB connection pool 관련

필요한 파일다운로드 (commons-collections4-4.4.jar, commons-dbcp2-2.7.0.jar, commons-pool2-2.8.0.jar)

http://common.apache.org

해당 파일을 이클립스 해당프로젝트 > WebContent > WEB-INF > lib 에 끌어다 놓음

이클립스 프로젝트 익스플로어에서 Servers > 해당 톰켓서버 > context.xml 열어 다음내용 추가

<Resource
        name="jdbc/MysqlDB"
        type="javax.sql.DataSource"
        auth="Container"
         maxActive="30"
        maxIdle="3"
        maxWait="3000"
        username="mysqlusername"
        password="mysqluserpass"
        testOnBorrow="true"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/mysqldbname?serverTimezone=UTC"
        />

잘 안되면, context.xml 파일을 해당프로젝트 > WebContent > META-INF 밑에 복사해본다.

DB pool 관련, WebContent\WEB-INF\web.xml 파일에 <resource-ref> 추가하는건 톰켓 5.0 부터인가는 안해도 된다 함. (나도 안했음.)

UTF-8설정

jsp page 상단에 charset UTF-8로 설정

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

누구는 request, response 도 설정해주라 하는데.. 나는 아래 톰켓 설정했더니, 이건 안해도 됐었음

<% request.setCharacterEncoding("UTF-8"); %>
<% response.setContentType("text/html; charset=UTF-8"); %>

톰켓의 server.xml 다음 태그에서 URIEncoding=”utf-8″ 추가 (잘 몰라서 8080으로 찾았음)

<!-- 수정전 -->
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
<!-- 수정후 -->
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8"/>

톰켓의 web.xml 파일 수정. (난 찾아보니 주석처리 되어있길래 주석만 풀었음.

    <filter>
        <filter-name>setCharacterEncodingFilter</filter-name>
        <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <async-supported>true</async-supported>
    </filter>

Loading