Archive for the ‘ JSP&Servlet ’ Category

Servlet 과 JSP 의 차이

Servlet의 생명주기

서블릿의 생명주기는 서블릿이 deployed 되어 있는 컨테이너에 의해 관리된다.

컨테이너는 다음과 같은 단계로 동작하는데

1. 서블릿 인스턴스가 존재하지 않을 경우

a. 서블릿 클래스를 로딩한다.

b. 서블릿 클래스 인스턴스를 생성한다.

c. init() 메서드를 호출해서 서블릿 인스턴스를 초기화 한다.

2. service() 메서드가 호출, request와 response 객체를 넘겨준다. service() 메서드는 클라이언트 요청에 따라 doGet() 또는 doPost() 메서드를 호출.

마지막으로 서블릿을 컨테이너에서 제거할 땐 destroy() 메서드를 호출한다.

JSP의 생명주기

1. 컨테이너는 .jsp 파일을 서블릿 파일을 만들기 위한 .java 소스 파일로 변환합니다.

2. 컨테이너는 .java 파일을 컴파일하여 .class 파일로 만듭니다.

3. 컨테이너는 새로 생성된 서블릿 클래스를 메모리로 로딩합니다.

4. 컨테이너가 서블릿을 인스턴스화하면 인스턴스 jspInit() 메서드가 실행됩니다. 이 객체는 클라이언트 요청을 처리할 수 있는 완전한 서블릿으로 거듭나게 됩니다.

5. 요청이 들어올 때마다 컨테이너는 새로운 스레드를 만들어 _jspService() 메서드를 실행합니다.

참고

http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets4.html

http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets7.html

Head First Servlet&JSP

Tomcat & Oracle DataSource 설정

1. conf/server.xml파일을 열고 <GlobalNamingResources>엘리먼트 안에 다음 내용 추가.


<Resource name="jdbc/myoracle" auth="Container"
 type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
 url="jdbc:oracle:thin:@localhost:1521:데이터베이스이름"
 username="유저네임" password="패스워드" />

2. conf/context.xml에 추가


<ResourceLink global="jdbc/myoracle" name="jdbc/myoracle" type="javax.sql.DataSource"/>

3. 코드 안에서는


InitialContext ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup("java:comp/env/jdbc/myoracle");
Connection con = ds.getConnection();

What is Web Container

In Java Platform, Enterprise Edition, a web container “implements the web component contract of the J2EE architecture”.[1] This contract specifies a runtime environment for web components that includes security, concurrency, lifecycle management, transaction, deployment, and other services. A web container provides the same services as a JSP container as well as a federated view of the Java EE (formerly J2EE) platform APIs.

from wikipedia

http://en.wikipedia.org/wiki/Web_container