0713 - Servlet JDBC 연동

이진성·2021년 7월 13일
0

0713 - Servlet JDBC 연동

InitParameter

  • init() 단계에서, 즉 WAS가 올라갈때 web.xml에 <init-param>으로 등록된 값을 얻어와서 service() 메소드 내에서 사용 가능
public void init(ServletConfig config) throws ServletException {
	try {
	//ServletConfig 객체로 initParameter 값을 받아온다.
	  this.driver = config.getInitParameter("driver");
	} catch(Exception e) {
	  throw new ServletException(e);
	}
}

단, @WebServlet("/EmpSelect") 어노테이션 자동 등록 방식으로 Servlet Mapping를 해주면 안되고, web.xml에서 으로 수동 등록을 해줘야 한다.
--> 수동 매핑 후에 반드시 DD -> Servlet Mappings에 정상 등록 되었는지 확인 필수!


ServletContext

  • ServletContext 의 생명주기는 WAS와 동일하며, WAS 서버(Tomcat)가 내려가기 전까지의 Life Cycle을 가진다.
  • web.xml에 <context-param> 으로 등록된 값을 받아와서 모든 서블릿과 모든 JSP에서 공유할 있게 사용 가능!
public void init(ServletConfig config) throws ServletException {
	try {
	//ServletContext 객체로 getServletContext 값을 받아온다.
	  ServletContext ctx = config.getServletContext();
	  this.driver = ctx.getInitParameter("driver");
	} catch(Exception e) {
	  throw new ServletException(e);
	}
}

웹브라우저에서 전송한 전송 파라미터를 획득

String empno = req.getParameter("empno");

Connection Pool

매번 Connection을 맺고 끊고 해주는 일이 힘들고 귀찮기 때문에
Connection Pool을 이용해서 매번 연결해줄 필요가 없다.
즉, java -> webapp -> META-INF -> context.xml 내에 연결정보 설정 후
@Resource 어노테이션 사용으로 연결

데이터소스(Data Source)

    1. 패키지 : javax.sql.DataSource interface
    1. 이 인터페이스의 구현객체는, WAS가 만들어 제공
    1. 이 DataSource 객체는 아래의 기능을 제공한다.
    • Connection Pool 기능을 제공!
    1. 개발자 : 아래의 2가지 작업을 수행해야 한다.
    • 1) DataSource 설정 필요
    • 2) 설정이 끝난 DataSource 구현 객체를 얻어야 한다.
      • 가. @Resource 어노테이션 사용
      • 나. JDNI 사용
- @Resource(name = "jdbc/OracleCloudWithLog4jdbc")
    1. 완료! Connection Pool 사용하기!
  • Connection Pool은 대량의 트랜잭션 처리의 핵심기능이다.
    • 스프링에서도 당연히, 데이터소스로 대량의 트랜잭션 처리

0개의 댓글