본문 바로가기

개발/Web

[Java] Servlet - Request / Session / Application / Page 객체

 

* Servlet에서 사용하는 객체

 

- HttpServletRequest (request) : 서버로 요청할 때의 정보들이 담겨있는 객체 (요청 시 전달값, 요청 전송방식 등)

- HttpServletResponse (response) : 요청에 대해 응답하고자 할 때 사용하는 객체

 

* 응답페이지에 전달할 값이 있는 경우 사용할 수 있는 객체

(ServletScope 내장 객체)

application   -  웹어플리케이션 전역에서 언제나 꺼내 쓸 수 있음 (자바 클래스에서도 사용 가능)
session   -  모든 JSP와 Servlet에서 꺼내 쓸 수 있음
  -  session에 담은 값을 지우기 전까지만 꺼내 쓸 수 있음
  -  끊기는 경우 : 브라우저가 종료, 서버가 멈춤, session 만료 시간 초과
request   -  해당 request를 포워딩한 응답 JSP페이지에서만 사용 가능
  -  요청페이지부터 응답페이지에서만 쓸 수 있음 (한 사이클)
  -  대부분의 경우 이 객체의 영역을 사용
page   -  담은 값을 해당 JSP페이지에서만 쓸 수 있음
  -  화면이 넘어가면 담은 값은 소멸 

- 데이터를 담을 때 : 객체.setAttribute(키, 밸류);

- 데이터를 뽑을 때 : 객체.getAttribute(키);

- 데이터를 지울 때 : 객체.removeAttribute(키);

- 무효화 할 때 : 객체.invalidate();

 

 

< Servlet에서 하는 일 >

 

1)  요청 전달 방식에 따른 인코딩

- POST방식으로 요청 시, 인코딩 설정

- request.setCharacterEncoding("UTF-8");

2) 요청 시 전달한 값을 꺼내서 변수에 저장

- 전달한 값은 request의 Parameter영역에 저장되어 있음

- request.getParameter("키(name속성값)") : String

- request.getParameterValues("키(name속성값)") : String[] => 같은 name속성을 가진 요소가 다수일 경우

3) 해당 요청을 처리해주는 Service클래스의 메소드를 호출

4) 처리된 결과를 가지고 사용자가 보게 될 응답화면을 지정