0713 - Servlet JDBC 연동
<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에 정상 등록 되었는지 확인 필수!
<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을 맺고 끊고 해주는 일이 힘들고 귀찮기 때문에
Connection Pool을 이용해서 매번 연결해줄 필요가 없다.
즉, java -> webapp -> META-INF -> context.xml 내에 연결정보 설정 후
@Resource 어노테이션 사용으로 연결
데이터소스(Data Source)
- 패키지 : javax.sql.DataSource interface
- 이 인터페이스의 구현객체는, WAS가 만들어 제공
- 이 DataSource 객체는 아래의 기능을 제공한다.
- Connection Pool 기능을 제공!
- 개발자 : 아래의 2가지 작업을 수행해야 한다.
- 1) DataSource 설정 필요
- 2) 설정이 끝난 DataSource 구현 객체를 얻어야 한다.
- 가. @Resource 어노테이션 사용
- 나. JDNI 사용
- @Resource(name = "jdbc/OracleCloudWithLog4jdbc")
- 완료! Connection Pool 사용하기!
- Connection Pool은 대량의 트랜잭션 처리의 핵심기능이다.
- 스프링에서도 당연히, 데이터소스로 대량의 트랜잭션 처리