session이란 ?
HTTP 프로토콜을 이용하는 웹 환경에서 상태를 유지 방법이다.
HTTP는 새로고침을 할 때마다 새로운 HTTP가 생성이 되는데, 예를 들어 어떠한 페이지에서 로그인을 했을 시 다음 화면으로 넘어갈 때 로그인이 바로 풀리지 않는다. 그 이유는 세션에 로그인 정보가 저장되어 있기 때문이다.
저장공간은 server이며, 저장기한 등을 설정할 수 있다.
session사용 예시
html 예시
<body>
<a href="hello">hello servlet</a>
</body>
java 예시
package serv;
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("/hello")
public class HelloServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html; charset=utf-8");
PrintWriter pw = resp.getWriter();
pw.println("<html>");
pw.println("<head>");
pw.println("<title>제목</title>");
pw.println("</head>");
pw.println("<body>");
HttpSession session = req.getSession();
session.setMaxInactiveInterval(2 * 60 * 60);
session.setAttribute("member", "abc123");
String member = (String)session.getAttribute("member");
pw.println("<p>session정보:" + member + "</p>");
session.invalidate();
pw.println("</body>");
pw.println("</html>");
pw.close();
}
}
HttpSession
session사용을 위한 객체
HttpSession 메소드
getSession() | getSession(true) → default session object가 존재하면, 현재 HttpSession을 반환한다 존재하지 않으면 새로 생성한다. |
getSession(false) session object가 존재하면, 현재 HttpSession을 반환한다 존재하지 않으면 null을 반환한다. |
|
setMaxInactiveInterval() | 저장기한(유효시간)을 설정한다. 기한계산방법 - 1년 : 365 * 24 * 60 * 60 - 10분 : 10 * 60 |
setAttribute(String name, Obejct value) | 세션에 데이터를 저장한다. name은 저장할 데이터의 변수명, value는 저장값이 된다. |
getAttribute(String name) | name에 저장한 value를 가져온다. 형변환은 필수이다. |
invalidate | 세션을 종료합니다. |
실행화면
'IT > Servlet' 카테고리의 다른 글
[Servlet] sendRedirect과 forward의 차이점 / forward 사용예시 (0) | 2021.06.13 |
---|---|
[Servlet] get과 post차이점 / Web에서 Web으로 입력값 전달하기 (0) | 2021.06.11 |
[Servlet] Servlet기초 : console에서 java메소드 실행시키기 / Java Servlet의 조건사항 (0) | 2021.06.11 |
[Servlet]Servlet이란? web.xml파일 생성하기(이클립스) (0) | 2021.06.11 |