DEV&OPS/Java
세션 Session
ALEPH.GEM
2022. 6. 14. 15:10
세션은 클라이언트 마다 개별적으로 생성되어 클라이언트의 브라우저를 종료할 때까지 서버쪽에서 그 객체(정보)를 유지합니다.
HttpSession 생성
HttpSession객체는 개발자가 수동으로 생성하는게 아니라 HttpServletRequest의 getSession() 메서드를 이용해서 객체를 획득합니다.
새 서블릿 SessionTest.java를 생성합니다.
package net.aacii.test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/sessionTest")
public class SessionTest extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
String param = req.getParameter("p");
String msg = null;
HttpSession session = null;
if(param.equals("create")) {
session = req.getSession();
if(session.isNew()) {
msg = "새 세션 객체 생성됨.";
}else {
msg ="기존 세션 객체 리턴됨.";
}
}else if(param.equals("delete")) {
session = req.getSession(false);
if(session != null) {
session.invalidate();
msg = "세션 객체 삭제 왼료.";
}else {
msg = "삭제할 세션이 존재하지 않음.";
}
}else if(param.equals("add")) {
session = req.getSession();
session.setAttribute("msg", "메시지");
msg = "세션 객체에 데이터 등록";
}else if(param.equals("get")) {
session = req.getSession(false);
if(session != null) {
String str = (String) session.getAttribute("msg");
msg = str;
}else {
msg = "데이터를 추출할 세션 객체가 없음.";
}
}else if(param.equals("remove")) {
session = req.getSession(false);
if(session != null) {
session.removeAttribute("msg");
msg = "세션 객체의 데이터 삭제 완료.";
}else {
msg = "삭제할 세션 객체가 없음.";
}
}else if(param.equals("replace")) {
session = req.getSession();
session.setAttribute("msg", "새로운 메시지입니다");
msg="세션 객체에 데이터 등록 완료.";
}
out.print("처리결과:"+msg);
out.close();
}
}
728x90