티스토리 뷰

톰캣 설치후 환경설정

 

 

1. 톰캣/conf/server.xml 에서

<Context> 태그를 편집

<Context path="익스플로러 주소창에서의 경로" docBase="오프라인상의 경로" debug="0" reloadable="true" crossContext="true">

 

<Context path="" docBase="c:/test" debug="0" reloadable="true" crossContext="true">

위와 같다면 http://localhost:8080/  에서  c:/test 밑에 있는 index.html 적용된다.

 

2. 톰캣/cont/web.xml 에서

<servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
 </servlet-mapping>

이 부분의 주석을 해제하면 http://localhost:8080/servlet/"서블릿이름" 과 같은 형식으로 서블릿을 호출할 수 있게 된다.

 

웹응용프로그램/WEB-INF/web.xml 에서

 

 <servlet>
      <servlet-name>"name"</servlet-name>
      <servlet-class>"서블릿 경로와 이름"</servlet-class>
  </servlet>  
   
  <servlet-mapping>
        <servlet-name>"name"</servlet-name>
        <url-pattern>"uri 패턴"</url-pattern>
  </servlet-mapping>  

위의 라인을 추가해주게되면 /servlet/"서블릿이름" 과 같이 호출하지 않고

server.xml 에서의 Context path="" 여기서 설정한 주소 바로 다음에서 서블릿 이름을

호출할 수 있게 된다.

예>

 <servlet>
      <servlet-name>hello</servlet-name>
      <servlet-class>asdf.HelloWorld</servlet-class>
  </servlet>  
  
  <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/hello</url-pattern>
  </servlet-mapping>  
일 경우에는 http://localhost:8080/hello 일시에 asdf.HelloWorld 서블릿이 호출된다.,

 

3. 데이터 소스 설정     


밑의 내용을 server.xml 의 <Context> 태그의 사이에 삽입한다.  !!! 주의 Resource name 에서

같은 이름이 2개 있으면 안됨

 <!-- datasource config start -->


 <Resource name="jdbc/mysqlDS" auth="Container"
 type="javax.sql.DataSource"/>
 <ResourceParams name="jdbc/mysqlDS">
 <parameter>
 <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
 </parameter>
 <!--
 Maximum number of dB connections in pool. Make sure you
 configure your mysqld max_connections large enough to handle
 all of your db connections. Set to 0 for no limit.
 -->
 <parameter>
 <name>maxActive</name>
 <value>100</value>
 </parameter>

 <!--
 Maximum number of idle dB connections to retain in pool.
 Set to 0 for no limit.
 -->
 <parameter>
 <name>maxIdle</name>
 <value>30</value>
 </parameter>
 <!--
 Maximum time to wait for a dB connection to become available
 in ms, in this example 10 seconds. An Exception is thrown if
 this timeout is exceeded. Set to -1 to wait indefinitely.
 -->
 <parameter>
 <name>maxWait</name>
 <value>10000</value>
 </parameter>

 <parameter>

<!--username 에는 db 사용자의 이름이 들어간다. -->
 <name>username</name>
 <value>root</value>
 </parameter>
 <parameter>

<!--password에는 db 패스워드의 이름이 들어간다.-->
 <name>password</name>
 <value>1234</value>
 </parameter>
 <parameter>
 <name>driverClassName</name>
 <value>org.gjt.mm.mysql.Driver</value>
 </parameter>

<!--데이터베이스의 경로를 표시한다.

    주소와 포트번호 그리고 데이터베이스 이름인 mysql 이 표시되어있다.

-->

 <parameter>
 <name>url</name>
 <value>jdbc:mysql://127.0.0.1:3306/mysql?useUnicode=true&amp;characterEncoding=euc-kr</value>
 </parameter>
 </ResourceParams>

--web.xml 을 수정

 

</web-app> 바로 위에다가 다음 라인을 추가

 

<!-- data source config start -->
 <resource-ref>
 <description>
 Resource reference to a factory for java.sql.Connection
 instances that may be used for talking to a particular
 database that is configured in the server.xml file.
 </description>

 <res-ref-name>
 jdbc/mysqlDS
 </res-ref-name>

 <res-type>
 javax.sql.DataSource
 </res-type>

 <res-auth>
 Container
 </res-auth>
 </resource-ref>
 <!-- data source config end -->

 

간단한 테스트용 소스

 

<%@ page
import="java.sql.*, javax.naming.*, javax.sql.*"%><%

Context initCtx = new InitialContext();

DataSource ds =  (DataSource)initCtx.lookup("java:comp/env/jdbc/mysqlDS");

Connection conn = ds.getConnection();

Statement stmt = conn.createStatement();

String query = "select now()"; // 현재 시간을 구하는 query

ResultSet rs = stmt.executeQuery(query);

if(rs.next()) {
  out.println(rs.getString(1));
}

rs.close();

stmt.close();

conn.close();
%>