JAVA
Session
정숙씨의 쏠쏠한 코딩
2021. 7. 1. 22:12
-Session 이란-
클라이언트와 서버가 유지 할 수 있는 기능이다.
쿠키 를 사용 하는 방식 보단 보안성 유지를 위해 Session을 더 많이 사용 하는 추세이다.
-Session 사용 방법-
- login.jsp
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Login.jsp</title>
</head>
<body>
<%
if(session.getAttribute("memberID") != null) // 세션의 정보를 가져왔을때 null값이 아닌 경우
{
response.sendRedirect("loginOk.jsp"); // loginOk.jsp 페이지로 이동시킨다.
}
%>
<form action ="loginCon" method="post">
ID: <input type="text" name="mID"> <br>
PW: <input type="password" name="mPW"> <br>
<input type="submit" value="login">
</form>
</body>
</html> - -loginOk.jsp-
- 정상적인 로그인이 완료 된 후 세션 확인을 위한 view
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Session Check</title>
</head>
<body>
<%
session = request.getSession(); // 요청 받은 세션 정보를 가지고 온다.
out.print("memberID :" + session.getAttribute("memberID") + "</br>"); //setAttribute()지정된 값을 불러온 후 printWriter 객체를 사용하여 출력
%>
<form action="logoutCon" method="post">
<input type="submit" value="logout">
</form>
</body>
</html> - loginCon.Class
- package Servlet;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/loginCon")
public class loginCon extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
String mID = request.getParameter("mID");
String mPW = request.getParameter("mPW");
out.print("ID: " + mID);
out.print("PW: " + mPW);
HttpSession session = request.getSession(); //사용자의 요청에 의한 session을 담는 객체
session.setAttribute("memberID", mID); // session 객체내 memberID로 mID 값을 통한 속성을 지정한다.
response.sendRedirect("loginOk.jsp"); // 작업이 완료 된 후 loginOk.jsp 페이지로 이동한다.
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
} - logoutCon.class
- package Servlet;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet(name = "logoutCon", value = "/logoutCon")
public class logoutCon extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
session.invalidate(); // invalidate()메서드를 통한 로그인 된 세션 삭제
response.sendRedirect("login.jsp"); // 세션 삭제 로직 진행 후 login.jsp페이지로 이동 시킨다.
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
- package Servlet;
- package Servlet;
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>