Servlet
Servlet은 사용자가 요청을 하면 자동으로 실행되며 지정한 방식에 따라 요청을 처리한다.
요청 방식은 post, get 두가지 방식으로 처리된다.
doGet(), doPost()
두 방식의 차이는 get 방식은 url 뒤에 전송할 자료를 입력해서 요청하는 방식으로 url상에 정보가 노출되지만 속도가 빠르다.
post방식은 http통신시 header안에 자료를 넣어서 전송하기 때문에 보안성이 더 높다.
페이지 요청시 방식을 지정하지 않았다면 기본적으론 doGet() 이 호출되게 된다.
Servlet LifeCycle
사용자로부터 요청이 들어오면 서블릿 컨테이너는 서블릿 class 파일을 만들고 이를 메모리에 올려서 실행시킨다.
이때 서블릿이 생성되고 실행된후 종료되는 과정을 LifCycle 이라 부른다.
실행 순서는
1. init();
2. service() doGet() or doPost();
3. destroy();
순으로 실행이 되며, 서블렛은 한번 생성후 메모리에 올라가 있을땐 재사용 되기 때문에 init() 과 destroy()는 매 요청마다 실행되는 것이 아니라 서블렛이 생성, 제거 될때 한번씩만 실행된다. (서버가 재기동 되거나 servlet파일이 변경될때)
추가적으로 컨테이너에서도 실행 전후 처리가 가능하다.
contextInitiallized(); 컨테이너에서 초기화 실행(톰캣)
@PostConstruct
init()
service()
destroy()
@PreDestroy()
contextDestroyed(); 컨테이너 단위
초기화 Parameter
ServletContext 모든 Servlet에 적용된다. 컨테이너(톰캣)에서 처리한다.
ServletConfig 특정 Servlet에 적용.
ServletContext
선언
project의 web.xml에 선언해놓으면 project(application)모든 servlet 이 사용할 수 있는 값.
web.xml 아래에
<context-param>
<param-name>id</param-name>
<param-value>AAA</param-value>
</context-param>
호출
servlet 상에서
ServletContext context = getServletContext() 메서드로 Context 객체를 호출.
context.getInitParameter(param_name); name의 값을 가져옴.
ServletConfig
선언 1.
web.xml에 선언
<servlet>
<init-param>
<param-name>init_id</param-name>
<param-value>aaa</param-name>
</init-param>
</servlet>
Servlet.java 에서 호출
getInitParameter("init_id")
선언2.
@WebInitParam 선언
iniParams = {@WebInitParam(name="init_id", value="aaa"), @WebInitParam(name="init_id2", value="bbb"), ... }
'JSP+Servlet' 카테고리의 다른 글
6.EL (Expression Language) (0) | 2020.01.08 |
---|---|
3.JSP (0) | 2020.01.08 |
4.내장객체 Request, Response (0) | 2020.01.08 |
1.Mapping (0) | 2020.01.08 |
0. JSP, Servlet 이란? (0) | 2020.01.08 |