서블릿 기초 정리2
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)에 선언된 컨텍스트 초기화 매개변수 값을 사용 가능
댓글남기기