[JSP] Session (μΈμ )
Session (μΈμ )
-
μΏ ν€μ λ§μ°¬κ°μ§λ‘ μλ²μμ κ΄κ³λ₯Ό μ μ§νκΈ° μν μλ¨μΌλ‘, ν΄λΌμ΄μΈνΈμͺ½μ μ μ₯λλ μΏ ν€μλ λ¬λ¦¬ μΈμ μ μλ² μμ κ°μ²΄λ‘ μ‘΄μ¬νλ€. (λ°μ΄ν°λ₯Ό μ μ§νκΈ° μν μ μ₯μμ κΈ°μ€μ΄ μλ²μ μμ κ²½μ° κ·Έ λ°μ΄ν°λ₯Ό βμΈμ βμ΄λΌκ³ νκ³ , ν΄λΌμ΄μΈνΈμ μμ κ²½μ° κ·Έ λ°μ΄ν°λ₯Ό βμΏ ν€βλΌκ³ ν¨)
-
μΉμμ λ€λ₯Έ νμ΄μ§λ‘ μ΄λνκ±°λ νμ΄μ§ λ‘λ©μ΄ λλλ©΄ μλ²μμ μ μμ΄ λ¬΄μ‘°κ±΄ λμ΄μ§λλ°, μΈμ μ μλ²μμ μΈλΆ μ μμ λν μμμ±μ μ μ§νκΈ° μν κΈ°μ μ΄λ€.
-
μλ²μμλ§ μ κ·Όμ΄ κ°λ₯νκΈ° λλ¬Έμ 보μμ λ κ°νλ©°, μ©λμ μ νμ΄ μμ
- μΈμ μ΄ μΏ ν€λ³΄λ€ λ λμ 보μμ±μ κ°μ§κ³ μμΌλ μΏ ν€λ μλμ μΌλ‘ μλ²μ λΆνλ₯Ό λ°μμν€μ§ μμ
-
μΉ λΈλΌμ°μ λΉ νλμ μΈμ μ μμ± (JSP컨ν μ΄λ(μλΈλ¦Ώ)κ° μλ μμ±)
-
μΈμ μ΄ μμ±λλ©΄ μΈμ μ΄ μμ±λ νΉμ κ°μ βμΈμ μ΄λ¦(μΈμ ν€)β, βμΈμ μμ΄λ(μΈμ μ½λ)β, βμΈμ μΈν°λ²(μΈμ μ μ§μκ°)β μΈ κ°μ§ νλͺ©μ΄ μλμΌλ‘ μ€μ λ¨
-
λ‘κ·ΈμΈ μ 보, μ¬μ©μ νκ²½μ€μ , DB컀λ₯μ λ± μ 보λ₯Ό μ μ§ν΄μΌ νλ κ²λ€μ μ¬μ©
-
ν΄λΌμ΄μΈνΈμμ μλ² νμ΄μ§ μ μ -> μ λ ₯ ν νμ΄μ§ μ ν μ μΈμ μ½λ μμ±λ¨(λλ€κ°) -> μμ±λ μΈμ μ νμΈνλ κΈ°μ€ λ°μ΄ν°λ μλ²μ λ³΄κ΄ / νμΈμ© λΉκ΅λ°μ΄ν°λ ν΄λΌμ΄μΈνΈλ‘ μ μ‘λ¨
-
μΈμ κ΄λ ¨ λ©μλ
-
setAttribute(String name, Object value) : μΈμ μ λ°μ΄ν° μ μ₯
-
getAttribute(String name) : μΈμ μμ±μ΄ nameμΈ μμ±μ κ°μ μ»μ, Object νμ μΌλ‘ 리ν΄, ν΄λΉ μμ± μ΄λ¦μ΄ μλ κ²½μ° null 리ν΄
-
getAttributeNames() : μΈμ μ μ μ₯λμ΄ μλ λͺ¨λ λ°μ΄ν°μ μ΄λ¦μ Enumeration κ°μ²΄ νμ μΌλ‘ 리ν΄
-
getId() : μΈμ μ ν λΉλ κ³ μ IDλ₯Ό String νμ μΌλ‘ 리ν΄
-
isNew() : μ΅μ΄ μμ±λ μΈμ μΈμ§, μ΄μ μ μμ±λ μΈμ μΈμ§ ꡬλΆ
-
setMaxInactiveInterval(int second) : μΈμ μ μ ν¨μκ° μ€μ , κΈ°λ³Έ 30λΆμ΄μ§λ§ λ³κ²½ κ°λ₯
-
getMaxInactiveInterval() : μΈμ μ μ μ§μκ°μ μ»μ, κ°μ₯ μ΅κ·Ό μμ²μμ μ κΈ°μ€μΌλ‘ μΉ΄μ΄νΈ
-
removeAttribute(String name) : μΈμ μμ νΉμ λ°μ΄ν°(νλΌλ―Έν°κ°) μ κ±°, μΈμ μ μ κ±°νλ κ²μ΄ μλ κ°μ μμ νλ κ²!
-
invalidate() : μΈμ μ λͺ¨λ λ°μ΄ν°λ₯Ό μμ
-
μΈμ μ μ¬μ©ν΄ κ°λ¨ν λ‘κ·ΈμΈ / λ‘κ·Έμμ νμ΄μ§ λ§λ€κΈ° β
-
sessionLogin.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>λ‘κ·ΈμΈ</title> </head> <body> <form action="SessionChkLogin.jsp" method="post"> μμ΄λ : <input type="text" name="uid" size="10"> <br><br> λΉλ°λ²νΈ : <input type="password" name="upw" size="10"> <br><br> <input type="submit" value="λ‘κ·ΈμΈ"> <input type="reset" value="μ΄κΈ°ν"> </form> </body> </html>
-
SessionChkLogin.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>λ‘κ·ΈμΈ νμΈ νμ΄μ§</title> </head> <body> <%! String uid, upw; %> <% uid = request.getParameter("uid"); upw = request.getParameter("upw"); if(uid.equals("admin") && upw.equals("12345")){ session.setAttribute("uid", uid); response.sendRedirect("SessionLoginSuccess.jsp"); } else response.sendRedirect("SessionLoginFail.jsp"); %> </body> </html>
-
SessionLoginSuccess.jsp
<%@page import="java.util.Enumeration"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>λ‘κ·ΈμΈ μ±κ³΅</title> </head> <body> <h1>λ‘κ·ΈμΈ μ±κ³΅</h1> <% request.setCharacterEncoding("UTF-8"); Enumeration<String> en = session.getAttributeNames(); while(en.hasMoreElements()){ String name = en.nextElement(); String value = (String)session.getAttribute(name); if(value.equals("admin")){ out.print(value + "λ νμν©λλ€."); } } %> <a href="SessionLogout.jsp"><input type="button" value="λ‘κ·Έμμ"></a> </body> </html>
-
SessionLoginFail.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>λ‘κ·ΈμΈ μ€ν¨</title> </head> <body> <script type="text/javascript"> alert('λ‘κ·ΈμΈ μ€ν¨'); location.href="SessionLogin.html"; </script> </body> </html>
-
SessionLogout.jsp
<%@page import="java.util.Enumeration"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>λ‘κ·Έμμ</title> </head> <body> <% Enumeration<String> en = session.getAttributeNames(); while(en.hasMoreElements()){ String name = en.nextElement(); String value = (String)session.getAttribute(name); if(value.equals("admin")){ out.print("λ‘κ·Έμμνμ ¨μ΅λλ€."); session.invalidate(); // session.removeAttribute(name); } } %> <a href="sessionLogin.html"><input type="button" value="λ€μλ‘κ·ΈμΈνκΈ°"></a> </body> </html>
μΈμ μ μ¬μ©ν΄ κ°λ¨ν λ‘κ·ΈμΈ / λ‘κ·Έμμ νμ΄μ§ λ§λ€κΈ° β‘
-
login.html
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>λ‘κ·ΈμΈ νλ©΄</title> </head> <body> <div id="wrap"> <h1>Session Example</h1> <form action="LoginProc.jsp"> μμ΄λ <input type="text" name="uid"> <br><br> λΉλ°λ²νΈ <input type="password" name="upw"> <br><br> <button>λ‘κ·ΈμΈ</button> <!-- λ²νΌ κΈ°λ³Έ type=submit --> </form> </div> <!-- div#wrap --> </body> </html>
-
LoginProc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("UTF-8"); String uid = request.getParameter("uid"); String upw = request.getParameter("upw"); /* μΈμ μμ± > μ΄ νμ΄μ§λ₯Ό μ€ν ν λΈλΌμ°μ (μ μν λΈλΌμ°μ )λ μΈμ (=μΈμ κ°, μΈμ μ½λ)μ κ°κ² λ¨, μΈμ μ νΉμ κ°μ ν¨μΉ(patch)λ¨ */ session.setAttribute("idKey", uid); session.setMaxInactiveInterval(30); //30μ΄κ° μΈμ μ μ§ response.sendRedirect("Session_Result.jsp"); // μΈμ λ§λ€κ³ λ°λ‘ νμ΄μ§ μ΄λ %>
-
Session_Result.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>λ‘κ·ΈμΈ μ²λ¦¬ ν μ²λ¦¬ κ²°κ³Ό νμΈ</title> </head> <body> <div id="wrap"> <h1>μΈμ μν 보기 νμ΄μ§</h1> <% String uid = (String)session.getAttribute("idKey"); String sessionID = session.getId(); int sessionIntervalTime = session.getMaxInactiveInterval(); // 30μ΄κ° μ§λκΈ° μ μ μλ‘κ³ μΉ¨νλ©΄ λ€μ μΈμ μ μ§ 30μ΄ μμ if(uid!=null){ //μΈμ μ΄ μ΄μμμ = μΈμ κ°μ΄ μ μ§λκ³ μμ out.println(uid + "λκ»μ λ‘κ·ΈμΈ μνμ λλ€."); out.println("<a href='LogoutProc.jsp'>λ‘κ·Έμμ</a>"); } else { %> <script> alert("μΈμ μ΄ μλ©Έλμμ΅λλ€."); location.href = "login.html"; </script> <% } %> </div> </body> </html>
-
LogoutProc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% session.invalidate(); //μΈμ μλ©Έ response.sendRedirect("Session_Result.jsp"); %>