init()
디폴트 생성자를 이용해서 서블릿 객체를 생성함으로 init()
메소드를 사용해서 서블릿 객체를 초기화한다.
서블릿의 일생동안 단 한번 호출된다.
service()
HTTP 메소드를 참조하여 doGet()
을 호출할지, doPost()
를 호출할지 결정한다.
요청이 있을때 마다 호출된다.
destroy()
서블릿이 소멸될때 호출된다. 자원해제와 관련된 작업을 한다.
서블릿의 일생동안 단 한번 호출된다.
GET
GET 방식은 서버에 있는 정보를 가져오기 위해 설계된 데이터 전달 방법입니다. ( 최대 240 Byte까지 )
QUERY_STRING 환경 변수를 통해서 서버로 전달되는데, 형식은 아래와 같습니다.
http://www.xxx.co.kr/servlet/login?id=hj&name=hong
url을 보면 login 뒤에 ?
가 있습니다.
?
이후의 값들은 서버에서 QUERY_STRING을 통해 전달됩니다.속성 = 값
형태로 사용해야 하며, &
는 여러 속성 값을 전달할 때 구분해서 연결해주는 문자열입니다.
이렇게, url에 데이터가 모두 노출되기 때문에 보안에 취약하다는 단점이 있습니다.
POST
POST 방식은 서버로 정보를 올리기 위해 설계된 방법입니다.
HTML 폼에 입력한 내용을 서버에 전달하기 위한 요청이며, 정보를 메시지 body에 포함시켜 전달합니다.
서버에 전달할 수 있는 데이터 크기 제한이 없어서, 파일 업로드에 자주 사용됩니다.
GET 방식과 달리, ur에는 매개변수가 표시되지 않아 보안이 유지됩니다.
WAS가 웹브라우져로부터 Servlet요청을 받으면 요청을 받을 때 전달 받은 정보를 HttpServletRequest객체를 생성하여 저장
웹브라우져에게 응답을 돌려줄 HttpServletResponse객체를 생성(빈 객체)
생성된 HttpServletRequest(정보가 저장된)와 HttpServletResponse(비어 있는)를 Servlet에게 전달
HttpServletRequest
Http프로토콜의 request 정보를 서블릿에게 전달하기 위한 목적으로 사용
Header정보, Parameter, Cookie, URI, URL 등의 정보를 읽어들이는 메소드를 가진 클래스
Body의 Stream을 읽어들이는 메소드를 가지고 있음
HttpServletResponse
ServletConfig : 한 서블릿에 제한적인 객체
ServletConfig 객체는 Container가 서블릿을 생성할 때 생성되는 객체다.
DD(web.xml)를 읽어서 이름/값의 쌍으로 된 초기화 파라미터를 읽어서 저장한다.
ServletConfig 객체는 Servlet 객체당 한 개씩 생성된다.
Servlet에서는 getServletConfig()
를 이용해서 Servlet과 관련된 ServletConfig 객체를 얻을 수 있다.
ServletContext : 여러 서블릿에서 사용 가능
ServletContext 객체는 web application 당 하나씩 생성된다.
web application 전체에서 참조할 수 있는 초기화 파라미터를 저장할 수 있다.
Servlet에서는 getServletContext()
를 이용해서 ServletContext 객체를 얻을 수 있다.