위로 아래

서블릿 로딩

  1. WAS 내부의 서블릿 컨테이너에서 서블릿 객체를 생성할 때 초기화되며 init() 메소드 호출
  2. 클라이언트로부터 최초 요청시 단 한 번 초기화된다.
  3. 이후부터 생성된 서블릿 객체는 컨테이너에서 대기하다가, 동일한 클라이언트의 요청이 발생하면 service()메소드를 호출

 

 

초기화 메소드 init()

 

Servlet 인터페이스

public void init(ServletConfig config) throws ServletException;

init() 메소드가 추상메소드로 정의된 최상위 위치

 

GenericServlet 구현 클래스

    @Override
    public void init(ServletConfig config) throws ServletException {
        this.config = config;
        this.init();
    }
 
    public void init() throws ServletException {
    }

Servlet 인터페이스의 init() 메소드를 구현

ServletConfig 인터페이스도 구현했으므로, ServletConfig의 모든 메소드 사용 가능

 

 

HttpServlet 클래스

init() 메소드 구현 X

 

 

HttpServlet을 상속하는 직접 만드는 클래스

필요에 따라 init() 메소드 Override

 

 

 


ServletConfig

  1. 클라이언트 최초 요청시 서블릿 객체 생성 후 init() 메소드를 호출 할 때, ServletConfig를 자동으로 생성하여 넘겨준다
  2. 서블릿당 하나가 생성된다.
  3. web.xml에서 입력한 파라미터 값들을 담고 있다.
  4. 서블릿 클래스 안에 소스로 하드코딩 되어 있을 때에 비해, ServletConfig를 이용해 web.xml에 파라미터 값을 저장하면, 이후 수정이 필요할 때 web.xml만 수정하면 된다.

 

 

getInitParameter()의 web.xml 파라미터 설정

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>javaBoard</display-name>
  
  <servlet>
    <servlet-name>Controller</servlet-name>
    <servlet-class>control.Controller</servlet-class>
    <init-param>
        <param-name>id</param-name>
        <param-value>gaesol</param-value>
    </init-param>
    <init-param>
        <param-name>password</param-name>
        <param-value>1234</param-value>
    </init-param>
	</servlet>
</web-app>

<init-param> : 서블릿 초기화시 넘겨 받을 값 설정

<param-name> : 파라미터 키

<param-value> : 파라미터 값

 

getInitParameter(파라미터 키) : 서블릿에서 해당 메소드를 통해 web.xml에서 지정한 파라미터 값을 불러올 수 있다

 

 

 

 


web.xml 문서에 한글 들어갈 때 설정

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    xmlns="http://xmlns.jcp.org/xml/ns/javaee";
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd";
    id="WebApp_ID" version="3.1">

	...

</web-app>