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");
HttpSession session = req.getSession();
session.setAttribute("id", id);
session.setAttribute("password", password);
String id = (String)session.getAttribute("id");
String password = (String)session.getAttribute("password");
resp.sendRedirect("/main");
}