결과:
JdbcServlet1.java
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Connection;
import java.util.concurrent.ExecutionException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class JdbcServlet1 extends javax.servlet.http.HttpServlet {
Connection con;
ResultSet rs;
PrintWriter out;
Statement stmt;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// emp 테이블의 자원들을 가져와서 화면에 출력하는 Servlet
try{
//드라이버 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
//DB연결
con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL1" , "scott" , "tiger");
Statement stmt = con.createStatement();
rs = stmt.executeQuery("SELECT empno,ename FROM emp");
//응답을 하기 위한 준비 작업
response.setContentType("text/html;charset=euc-kr");
PrintWriter out = response.getWriter();
out.println("<body>");
out.println("<h2>Emp테이블의 자원들</h2>");
out.println("<hr>");
out.println(" <table width=250>");
out.println(" <tr bgcolor='#efefef'>");
out.println(" <th>사번</th><th>이름</th>");
out.println(" </tr>");
while(rs.next()){
out.println("<tr align='center'>");
out.println(" <td>"+rs.getString("empno")+"</td>"); //rs.getString(1)
out.println(" <td>"+rs.getString("ename")+"</td>"); //rs.getString(2)
out.println("</tr>");
}
out.println(" </table>");
out.println("</body>");
out.close();
stmt.close();
con.close();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(out != null)
out.close();
if(stmt != null)
stmt.close();
if(con != null)
con.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
servers.xml 리소스등록 예제
server.xml의 리소스를 등록할 경우 톰켓에 lib에 오라클드라이버를 설치해야한다.
maxActive="10"(갯수) maxIdle="10"(대기자수) maxWait="-1"(대기시간 없게)
JdbcServlet2.java
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
public class JdbcServlet2 extends javax.servlet.http.HttpServlet {
ResultSet rs;
Connection con;
Statement stmt;
PrintWriter out;
public void doGet(HttpServletRequest request, HttpServletResponse response){
// server.xml에 Context에 등록한 Resource를 객체로 가져오기 위해서는
// initialContext객체(현재 사용되는 Context)가 필요하다.
// 이렇게 하려면 ojdbc14.jar파일을 Tomcat설치된 lib폴더에 복사해둬야한다.
try {
InitialContext ctx = new InitialContext();
//현재 사용되는 컨텍스트를 얻는다
Context c = (Context) ctx.lookup("java:comp/env");
// "java:comp/env" <-바뀔수없다. object
//현재 사용되는 컨텍스트로 부터 리소스찾기
DataSource ds = (DataSource) c.lookup("jdbc/oracle");
con = ds.getConnection();
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT empno,ename FROM emp");
//응답을 하기 위한 준비 작업
response.setContentType("text/html;charset=euc-kr");
out = response.getWriter();
out.println("<body>");
out.println("<h2>Emp테이블의 자원들</h2>");
out.println("<hr>");
out.println(" <table width=250>");
out.println(" <tr bgcolor='#efefef'>");
out.println(" <th>사번</th><th>이름</th>");
out.println(" </tr>");
while(rs.next()){
out.println("<tr align='center'>");
out.println(" <td>"+rs.getString("empno")+"</td>"); //rs.getString(1)
out.println(" <td>"+rs.getString("ename")+"</td>"); //rs.getString(2)
out.println("</tr>");
}
out.println(" </table>");
out.println("</body>");
out.close();
stmt.close();
con.close();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(out != null)
out.close();
if(stmt != null)
stmt.close();
if(con != null)
con.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
'Programing > JSP' 카테고리의 다른 글
Servlet - Login (0) | 2008.07.29 |
---|---|
Servlet - GET과 POST 요청을 위한 HTML작성 (0) | 2008.07.29 |
Servlet - 공지파일 예제 (0) | 2008.07.29 |
Servlet - WAS 구동과정 및 Servlet의 생명 주기 (1) | 2008.07.29 |
JSP - page, session, application 간의 차이 (0) | 2008.07.29 |