1) 모델1
2) 모델2


1) get요청 → forword 처리
2) post요청 : redirect 처리

로컬 스토리지
세션 스토리지
쿠키
브라우저에 상태 저장 가능하다.
그래서 상태가 유지가 된다.
예시) 내선 전화 옆자리로 돌려주는 그런 로직



package org.scoula.ex04;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/response_redirect")
public class ResponseRedirectServlet extends HttpServlet {
// @Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// // 세션 가져오기
// HttpSession session = request.getSession(false); // 기존 세션이 없으면 null 반환
//
// String username = null;
// String useraddress = null;
//
// if (session != null) {
// // 세션에서 데이터 읽기
// username = (String) session.getAttribute("username");
// useraddress = (String) session.getAttribute("useraddress");
// }
// 쿠키 배열 가져오기
Cookie[] cookies = request.getCookies();
String username = null;
String useraddress = null;
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("username".equals(cookie.getName())) {
username = cookie.getValue();
} else if ("useraddress".equals(cookie.getName())) {
useraddress = cookie.getValue();
}
}
}
// String username = (String) request.getAttribute("username");
// String useraddress = (String) request.getAttribute("useraddress");
// 속성 설정
request.setAttribute("username",username );
request.setAttribute("useraddress",useraddress );
//forward
RequestDispatcher rd = request.getRequestDispatcher("/redirect_response.jsp");
rd.forward(request, response);
}
}
package org.scoula.ex04;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/request_redirect")
public class RequestRedirectServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 세션 생성
// HttpSession session = request.getSession();
//
// // 세션에 데이터 저장
// session.setAttribute("username", "Dayae");
// session.setAttribute("useraddress", "YoungIn");
// 쿠키 생성
Cookie usernameCookie = new Cookie("username", "Dayae");
Cookie useraddressCookie = new Cookie("useraddress", "YoungIn");
// 쿠키의 유효 기간 설정 (초 단위)
usernameCookie.setMaxAge(60 * 60); // 1시간
useraddressCookie.setMaxAge(60 * 60); // 1시간
// 쿠키를 응답에 추가
response.addCookie(usernameCookie);
response.addCookie(useraddressCookie);
// // 속성 설정
// request.setAttribute("username","Dayae" );
// request.setAttribute("useraddress","YoungIn" );
// redirect
response.sendRedirect("response_redirect");
}
// @Override
// protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// doGet(request, response);
//
// }
}
톰캣의 관리자 버전으로 들어가는 방법
C:\apache-tomcat-9.0.91\conf 에서 tomcat-users.xml 들어가서 아이디랑 비번 설정
http://localhost:8080/manager/html 브라우저에서 들어감
- 활성화된 세션 수 알 수 있다.
- 세션안에 있는 내용도 볼 수 있다.