Language/└JSP | Servlet

[Servlet] Servelt 서블릿 기초 문법, 클래스, 메서드, 라이프 사이클 | Yoon's Dev

Yooniron 2021. 4. 28. 23:09

Servelt 서블릿 기초 문법, 클래스, 메서드, 라이프 사이클

 

 


서블릿에 대해...

 

■ 서블릿에 대해...

✓ JSP 이전에 동적인 웹페이지 콘텐츠를 생성하는 기술로 제공

✓ 자바의 많은 장점 사용 가능

HTML, CSS 및 자바스크립트 그리고 웹 디자인과 연동하기에는 단점이 많음

서블릿의 존재 이유

   . jsp에는 없는 서버 측 프로그램의 기능

   . 대규모 프로젝트에 사용되는 프레임워크의 기술을 사용

 


1. 서블릿의 주요 클래스와 메서드

 

HttpServlet: 서블릿을 만들기 위해 반드시 상속해야 할 필수 클래스

✓ HttpServletRequest: 클라이언트가 데이터를 입력하거나 클라이언트의 정보에 대한 요청 값을 가지고 있는 클래스

HttpServletResponse: 클라이언트가 요청한 정보를 처리하고 다시 응답하기 위한 정보를 담고 있는 클래스

HttpSession: 클라이언트가 세션을 정보를 저장하고 세션 기능을 유지하기 위해서 제공되는 클래스

 

- httpServlet에서 제공되는 주요 메서드

메서드 설명
void int() 서블릿의 객체가 생성 될 때 호출되는 메서드
void destroy() 서블릿의 객체가 메모리에서 사라질 때 호출되는 메서드
void service(request, response) 서블릿의 요청이 있을 때 호출되는 메서드
void doGet(request, response) html에서 form의 메서드가 get일때 호출되는 메서드
void doPost(request, response) html에서 form의 메서드가 post일때 호출되는 메서드

 

- httpServletRequest에서 제공되는 주요 메서드

메서드 설명
String getParameter(name) name에 할당된 값을 반환하며 지정된 파라미터 값이 없으면 null 값을 반환
String[] getParameterValues(name) name의 모든 값을 String 배열로 반환
Enumeration getParameterNames() 요청에 사용된 모든 파라미터 이름을 java.util.Enumeration 타입으로 반환
void setCharacterEncoding(env) post방식으로 요청된 문자열의 character encoding을 설정

 

- httpServletResponse에서 제공되는 주요 메서드

메서드 설명
void setHeader(name, value) 응답에 포함될 Header를 설정합니다.
void setContentType(type) 출력되는 페이지의 contentType을 설정
String getCharacterEncoding() 응답 페이지의 문자 인코딩 Type을 반환
void sendRedirect() 지정된 URL로 요청을 재전송

 

- httpSession에서 제공되는 주요 메서드

메서드 설명
String getId() 해당 세션의 세션 ID를 반환
long getCreationTime() 세션의 생성된 시간을 반환
long getLastAccessedTime() 클라이언트 요청이 마지막으로 시도된 시간을 반환
void setMaxInactiveInterval(time) 세션을 유지할 시간을 초단위로 설정
int getMaxinactiveInterval() setMaxInactiveInterval(time)로 지정된 값을 반환. (기본값 30분)
boolean isNew() 클라이언트 세션 ID를 할당하지 않은 경우 true 값을 반환
void invalidate() 해당 세션을 종료

 

서블릿의 라이프 사이클

 

 

서블릿의 라이프 사이클

 

  • init(): 서블릿이 처음으로 요청되어 객체가 생성될 때 호출되는 메서드
  • service(): 클라이언트가 요청이 있을 때마다 호출되는 메서드
  • destroy(): 서블릿 서비스의 종료 및 재시작 그리고 서블릿 코드가 수정이 될 때 호출되는 메서드
  • doGet(): 클라이언트 요청할 때 form의 method가 get방식일 때 호출되는 메서드
  • doPost(): 클라이언트 요청할 때 form의 method가 post방식일 때 호출되는 메서드

 

서블릿 라이프 사이클 예제

 

- 서블릿 라이프 사이클 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
 
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 * Servlet implementation class ExampleServlet02
 */
@WebServlet("/exampleServlet02")
public class ExampleServlet02 extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    /**
     * @see Servlet#init(ServletConfig)
     */
    public void init(ServletConfig config) throws ServletException {
        System.out.println("init 호출");
    }
 
    /**
     * @see Servlet#destroy()
     */
    public void destroy() {
        System.out.println("destroy 호출~~~~");
    }
 
    /**
     * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
     */
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("service 호출");
    }
 
}
 
cs

 

실행 결과