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

+ Recent posts