[Servlet] Session, Redirect

므이이잉·2021년 10월 10일

servlet/jsp

목록 보기
3/6

1. Session

  • session은 각 사용자당 한 개씩 제공되는 Map형태(key, value 매칭)의 저장장소
  • getAttribute(key) 메서드를 통해 저장한 데이터를 꺼내 올 수 있음
  • setAttribute("key", value) 메서드를 통해 저장한 데이터를 저장할 수 있음
  • session.invalidate() : 세션 무효화 (로그아웃에서 많이 사용), 세션 무효화 이후 데이터 저장 및 값 꺼내오기 불가능
  • Session 에는 기본적으로 모든 데이터가 Object 형태로 저장되므로, 사용할 때 형변환(casting)하여 사용해야 함

2. Redirect

  • 특정 url or 특정 servlet으로 이동하여 응답받을 것을 지정하는 방식
  • resp.sendRedirect(""); 로 전송
  • 만약 파라미터가 있다면 resp.sendRedirect("/(절대경로)/main?key=value") 사용

3. 예시

@WebServlet(name = "loginServlet", urlPatterns = "/login")
public class LoginServlet extends HttpServlet{

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("doPost()");

		String id = req.getParameter("id");
		String password = req.getParameter("password");
    
		// session가지고오기
		HttpSession session = req.getSession();  
		// session에 데이터 저장
		session.setAttribute("id", id);
		session.setAttribute("password", password);
    
		// 세션에서 데이터 꺼내올 때 기본적으로 Object로 받아오므로 형변환(casting) 필요
		String id = (String)session.getAttribute("id");
		String password = (String)session.getAttribute("password");
        
        // mainServlet 요청
		resp.sendRedirect("/main");
	}
profile
이젠 DBA가 되어보자

0개의 댓글