서블릿 기초 정리2

1 분 소요

HttpServlet 클래스

HttpServlet 클래스는 GenericServlet 클래스의 하위 클래스
따라서 HttpServlet을 상속받으면
GenericServlet 클래스를 상속받는 것과 마찬가지로
javax.servlet.Servlet 인터페이스를 구현한 것이 됨

doXXX()메서드 오버라이딩

public class ExampleServlet extends HttpServlet {
	protected void doXXX(HttpServletRequest request, HttpServletResponse response) 
		    	throws ServletException, IOException {
		...
	}
}

클라이언트 요청이 들어오면…

  • 첫째로 상속받은 HttpSerlvet의 service() 메서드가 호출,
  • 둘째로 service()는 클라이언트 요청 방식에 따라 doGet()이나 doPost(), doPut() 등의 메서드를 호출
    따라서 HttpServlet을 상속받을 때 service() 메서드를 직접 구현하기보다는 클라이언트의 요청 방식에 따라 doXXX() 메서드를 오버라이딩

응답 헤더를 이용한 Refresh

일정 시간이 지나고 나서 자동으로 서버에 요청을 보내는 방법

...
<meta http-equiv='Refresh' content='1; url=list'>
...
response.addHeader("Refresh", "1;url=list");

응답 본문을 출력하고서 1초 뒤에 다시 서비스를 요청하라는 뜻

Note : <meta>태그는 반드시 <head>태그 안에 선언

서블릿 초기화 매개변수

init()를 호출할 때 서블릿 컨테이너가 전달하는 데이터
데이터베이스 연결 정보와 같은 정적인 데이터를 서블릿에 전달할 때 사용

DD파일에 서블릿 초기화 매개변수 설정

<!-- 서블릿 등록 -->
<servlet>
  ...
  <init-param>
  	<param-name>매개변수 이름</param-name>
  	<param-value>매개변수 값</param-value>
  </init-param>
</servlet>

<init-param>가 서블릿 초기화 매개변수를 설정하는 태그
-> <servlet>의 자식 엘리먼트

<init-param>도 두 개의 자식 엘리먼트 가짐
-> 매개변수 이름을 지정하는<param-name>, 매개변수 값을 지정하는<param-value>
서블릿 초기화 매개변수들은 오직 그 매개변수를 선언한 서블릿에서만 사용 가능

서블릿 초기화 매개변수 사용

this.getInitParameter(/* 매개변수 이름 */)

getInitParameter()는 해당 서블릿의 배치 정보가 있는 DD파일(web.xml)로부터 <init-param>의 매개변수 값을 꺼내 줌
반환하는 값은 문자열


컨텍스트 초기화 매개변수의 선언

컨텍스트 초기화 매개변수 : 같은 웹 애플리케이션에 소속된 서블릿들이 공유하는 매개변수

<!-- 컨텍스트 매개변수 -->
  <context-param>
  	<param-name>매개변수 이름</param-name>
  	<param-value>매개변수 값</param-value>
  </context-param>

컨텍스트 초기화 매개변수 사용

ServletContext sc = this.getServletContext();

HttpServlet에게 상속받은 getServletContext()를 호출하여 ServletContext 객체 준비

sc.getInitParameter(/* 매개변수 이름 */)

이 객체를 통해 getInitParameter()를 호출하면 DD파일(web.xml)에 선언된 컨텍스트 초기화 매개변수 값을 사용 가능

댓글남기기