JSP & Servlet

Servlet에서의 Session

Jungsoomin :) 2020. 7. 28. 10:30

JSP 는 기본영역에 Session이 존재하기 때문에 session영역을 포함하나 Servlet은 Session을 따로 생성해야 세션을 사용할 수 있고,

 

이는 springframework 의 @HttpSession을 붙인 HttpSession 파라미터나 HttpServletRequest 파라미터를 이용한 Controller의 세션 생성과도 연관이 있다. 

 

기본적으로 세션 정보를 사용하기 위해서는 Session은 생성해야하는데 @Controller의 요청매핑 메서드에서 세션 생성 방법들은 생성이 조금다르다.

 

  1. @PostMapping 등 요청매핑 메서드에 @HttpSession 을 붙인 HttpSession 파라미터는 넘어오는 요청에 세션영역이 존재하지 않는다면 스프링MVC가 세션을 자동생성한다, 존재한다면 그대로 가져와 파라미터로 넘긴다.

  2. @PostMapping 등 요청매핑 메서드에 HttpServletRequest 파라미터를 붙여 getSession() 메서드로 세션을 생성할 경우 getSession() 메서드는 세션이 존재하지않을 경우 세션을 생성하지만, 매개변수로 boolean값을 주어 자동생성을 방지할 수 있다. 

@WebServlet("/test/session")
public class SessionTest extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
	HttpSession session = req.getSession(false);
	
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException ,IOException {
	
}
}