λͺ©μ°¨
μΈμ λ©μλ: Session Method
μλ‘
μΉ κ°λ°μμ μΈμ μ μ¬μ©μμ μν μ 보λ₯Ό μλ²μ μ μ§νκ³ κ΄λ¦¬νλ λ° μ€μν μν μ ν©λλ€. μΈμ μ νμ©νμ¬ μ¬μ©μμ λ‘κ·ΈμΈ μ 보, μ₯λ°κ΅¬λ λ΄μ λ±μ μλ²μ μ μ₯νκ³ μ μ§ν¨μΌλ‘μ¨ μ¬μ©μ κ²½νμ κ°μ ν μ μμ΅λλ€. Javaμμλ μΈμ μ λ€λ£¨κΈ° μν΄ λ€μν λ©μλλ₯Ό μ 곡ν©λλ€. μ΄λ² λΈλ‘κ·Έ ν¬μ€ν μμλ Javaμ μΈμ λ©μλμ λν΄ μμΈν μμλ³΄κ² μ΅λλ€.
μΈμ λ©μλ μκ°
Javaμμ μΈμ μ λ€λ£¨κΈ° μν΄ μ£Όμν λ©μλλ€μ μ΄ν΄λ³΄κ² μ΅λλ€.
setAttribute(String name, Object value)
μ΄ λ©μλλ μΈμ μ μ§μ λ μ΄λ¦μΌλ‘ κ°μ²΄λ₯Ό μ€μ νλ μν μ ν©λλ€. μΈμ μ μ΄λ¦-κ° μμ ννλ‘ λ°μ΄ν°λ₯Ό μ μ₯νλλ°, μ΄ λ©μλλ₯Ό ν΅ν΄ μΈμ μ λ°μ΄ν°λ₯Ό μΆκ°ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, μ¬μ©μμ μ΄λ¦μ΄ 'John'μ΄λΌλ©΄ λ€μκ³Ό κ°μ΄ νΈμΆν μ μμ΅λλ€.
session.setAttribute("username", "John");
getAttribute(String name)
μ΄ λ©μλλ μΈμ μμ μ§μ ν μ΄λ¦μ κ°μ²΄λ₯Ό λ°νν©λλ€. setAttribute() λ©μλλ‘ μ μ₯ν λ°μ΄ν°λ₯Ό λ€μ λΆλ¬μ€λ λ° μ¬μ©λ©λλ€. μλ₯Ό λ€μ΄, μμμ μ μ₯ν μ¬μ©μ μ΄λ¦μ λ€μκ³Ό κ°μ΄ κ°μ Έμ¬ μ μμ΅λλ€.
String username = (String) session.getAttribute("username");
invalidate()
μ΄ λ©μλλ μΈμ μ λΉμ°λ μν μ ν©λλ€. μ¬μ©μκ° λ‘κ·Έμμν λλ μΈμ μ μ μ₯λ λ°μ΄ν°λ₯Ό λͺ¨λ μμ νκ³ μΆμ λ μ¬μ©λ©λλ€.
session.invalidate();
setMaxInactiveInterval(int interval)
μ΄ λ©μλλ μΈμ μ νμμμμ μ μ(μ΄)λ‘ μ€μ νλ λ° μ¬μ©λ©λλ€. μΈμ μ μΌμ μκ° λ€μ μλμΌλ‘ λ§λ£λλλ°, μ΄ λ©μλλ₯Ό μ¬μ©νμ¬ λ§λ£ μκ°μ μ‘°μ ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, μΈμ μ 1μκ° λμ μ μ§νκ³ μΆλ€λ©΄ λ€μκ³Ό κ°μ΄ μ€μ ν μ μμ΅λλ€.
session.setMaxInactiveInterval(3600); // 3600μ΄ = 1μκ°
isNew()
μ΄ λ©μλλ μΈμ μ΄ μλ‘κ² μμ±λμλμ§ νμΈνλ μν μ ν©λλ€. μλ‘μ΄ μΈμ μ΄λΌλ©΄ trueλ₯Ό λ°ννκ³ , μ΄λ―Έ μ¬μ©λ μΈμ μ΄λΌλ©΄ falseλ₯Ό λ°νν©λλ€. μ΄λ₯Ό νμ©νμ¬ μ¬μ©μκ° λ°©λ¬Έν μ μ΄ μλμ§λ₯Ό νλ¨ν μ μμ΅λλ€.
boolean isNewSession = session.isNew();
μμΈ μ€λͺ
μΈμ λ©μλλ μΉ μ ν리μΌμ΄μ μμ μ¬μ©μμ μνλ₯Ό μ μ§νκ³ κ΄λ¦¬νλ λ° μ€μν κΈ°λ₯μ μ 곡ν©λλ€. μ΄μ κ° λ©μλλ€μ λν΄ λ μμΈν μμλ³΄κ² μ΅λλ€.
setAttribute(String name, Object value)
μΈμ μ λ°μ΄ν°λ₯Ό μ μ₯νλ λ°©λ² μ€ κ°μ₯ κΈ°λ³Έμ μΈ λ°©λ²μ setAttribute() λ©μλλ₯Ό μ΄μ©νλ κ²μ λλ€. μ΄ λ©μλλ μΈμ μ μ§μ λ μ΄λ¦μΌλ‘ κ°μ²΄λ₯Ό μ€μ ν©λλ€. μΈμ μ μ΄λ¦κ³Ό κ°μ μμΌλ‘ λ°μ΄ν°λ₯Ό μ μ₯νλλ°, μ΄λ¦μ λ°μ΄ν°λ₯Ό μλ³νκΈ° μν κ³ μ ν ν€(Key) μν μ ν©λλ€.
μλ₯Ό λ€μ΄, μ¬μ©μμ λ‘κ·ΈμΈ μ 보λ₯Ό μΈμ μ μ μ₯νκ³ μΆλ€λ©΄ λ€μκ³Ό κ°μ΄ μ¬μ©ν μ μμ΅λλ€.
String username = "John";
session.setAttribute("username", username);
μμ μ½λμμ "username"μ΄λΌλ μ΄λ¦μΌλ‘ μ¬μ©μ μ΄λ¦μΈ "John"μ΄ μΈμ μ μ μ₯λ©λλ€. μ΄λ κ² μ μ₯λ λ°μ΄ν°λ ν΄λΉ μΈμ μ μν λͺ¨λ νμ΄μ§λ μλΈλ¦Ώμμ μ¬μ©ν μ μμ΅λλ€.
getAttribute(String name)
μΈμ μ μ μ₯λ λ°μ΄ν°λ₯Ό λ€μ λΆλ¬μ€κΈ° μν΄μλ getAttribute() λ©μλλ₯Ό μ¬μ©ν©λλ€. μ΄ λ©μλλ μ§μ ν μ΄λ¦μ κ°μ²΄λ₯Ό μΈμ μΌλ‘λΆν° κ°μ Έμ΅λλ€. νμ§λ§ μ£Όμν΄μΌ ν μ μ getAttribute() λ©μλκ° λ°ννλ κ°μ Object ννμ΄κΈ° λλ¬Έμ, μ€μ λ‘ μ¬μ©νλ €λ λ°μ΄ν° ννλ‘ νλ³ν(Casting)ν΄μΌ ν©λλ€.
μλ₯Ό λ€μ΄, μμμ μ μ₯ν μ¬μ©μ μ΄λ¦μ λ€μ κ°μ Έμ€κ³ μΆλ€λ©΄ λ€μκ³Ό κ°μ΄ ν μ μμ΅λλ€.
String storedUsername = (String) session.getAttribute("username");
μμ μ½λμμλ Object νμ μΌλ‘ λ°νλ κ°μ StringμΌλ‘ νλ³ννμ¬ μ¬μ©νκ³ μμ΅λλ€. λ°λΌμ μ΄λ κ² νλ©΄ storedUsername λ³μμ "John"μ΄ ν λΉλ©λλ€.
invalidate()
μΈμ μ λΉμ°λ κ²μ λ‘κ·Έμμμ΄λ μΈμ μ μ μ₯λ λ°μ΄ν°λ₯Ό λͺ¨λ μμ νκ³ μΆμ λ μ μ©ν λ©μλμ λλ€. invalidate() λ©μλλ₯Ό νΈμΆνλ©΄ νμ¬ μΈμ μ μ μ₯λ λͺ¨λ λ°μ΄ν°κ° μμ λκ³ , μΈμ μ λ μ΄μ μ ν¨νμ§ μκ² λ©λλ€.
session.invalidate();
μμ μ½λλ νμ¬ μΈμ μ λΉμ°λ μν μ ν©λλ€. μ΄νμλ μλ‘μ΄ μΈμ μ΄ μμ±λμ΄μΌ μ¬μ©μμ μνλ₯Ό μ μ§ν μ μμ΅λλ€.
setMaxInactiveInterval(int interval)
μΈμ μ μΌμ μκ°μ΄ μ§λλ©΄ μλμΌλ‘ λ§λ£λ©λλ€. κΈ°λ³Έμ μΌλ‘ Javaμμλ μΈμ νμμμμ΄ 30λΆμΌλ‘ μ€μ λμ΄ μμ΅λλ€. νμ§λ§ setMaxInactiveInterval() λ©μλλ₯Ό μ¬μ©νμ¬ μ΄ νμμμ κ°μ μ‘°μ ν μ μμ΅λλ€. μ΄ λ©μλλ μΈμλ‘ μ μ(μ΄ λ¨μ)λ₯Ό λ°μ΅λλ€.
μλ₯Ό λ€μ΄, μΈμ μ 1μκ° λμ μ μ§νκ³ μΆλ€λ©΄ λ€μκ³Ό κ°μ΄ μ€μ ν μ μμ΅λλ€.
session.setMaxInactiveInterval(3600); // 3600μ΄ = 1μκ°
μμ μ½λλ₯Ό μ¬μ©νλ©΄ μΈμ μ 1μκ° λμ μ μ§λλ©°, μ¬μ©μκ° 1μκ° λμ μλ²μ μνΈ μμ©μ΄ μλ€λ©΄ μΈμ μ΄ μλμΌλ‘ λ§λ£λ©λλ€.
isNew()
isNew() λ©μλλ μΈμ μ΄ μλ‘κ² μμ±λμλμ§λ₯Ό νμΈνλ λ° μ¬μ©λ©λλ€. μλ‘μ΄ μΈμ μ΄λΌλ©΄ trueλ₯Ό λ°ννκ³ , μ΄λ―Έ μ¬μ©λ μΈμ μ΄λΌλ©΄ falseλ₯Ό λ°νν©λλ€.
boolean isNewSession = session.isNew();
μμ μ½λμμ isNewSession λ³μλ μΈμ μ΄ μλ‘κ² μμ±λμλμ§λ₯Ό λνλ΄λ κ°μ λλ€. μ΄λ₯Ό νμ©νμ¬ μ¬μ©μκ° λ°©λ¬Έν μ μ΄ μλμ§λ₯Ό νλ¨ν μ μμ΅λλ€.
μμ½
μ΄λ² ν¬μ€ν μμλ Javaμμ μ 곡νλ μΈμ λ©μλμ λν΄ μμ보μμ΅λλ€. μΈμ μ μΉ μ ν리μΌμ΄μ μμ μ¬μ©μμ μν μ 보λ₯Ό μ μ§νκ³ κ΄λ¦¬νλ λ° μ€μν κΈ°λ₯μ μ 곡ν©λλ€. setAttribute(), getAttribute() λ©μλλ₯Ό μ΄μ©νμ¬ μΈμ μ λ°μ΄ν°λ₯Ό μ μ₯νκ³ λΆλ¬μ€λ λ°©λ²μ νμ΅νμ΅λλ€. λν invalidate() λ©μλλ₯Ό μ¬μ©νμ¬ μΈμ μ λΉμΈ μ μμΌλ©°, setMaxInactiveInterval() λ©μλλ₯Ό μ΄μ©νμ¬ μΈμ μ νμμμ κ°μ μ‘°μ ν μ μμ΅λλ€. λ§μ§λ§μΌλ‘ isNew() λ©μλλ₯Ό ν΅ν΄ μΈμ μ΄ μλ‘κ² μμ±λμλμ§λ₯Ό νμΈνλ λ°©λ²μ μ΄ν΄λ³΄μμ΅λλ€.
μΈμ λ©μλλ₯Ό μ μ ν νμ©ν¨μΌλ‘μ¨ μΉ μ ν리μΌμ΄μ μ μ¬μ©μ κ²½νμ κ°μ ν μ μμΌλ©°, λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ κ΄λ¦¬ν μ μμ΅λλ€. Javaμμ μ 곡νλ μΈμ λ©μλλ€μ μ νμ©νμ¬ μΉ μ ν리μΌμ΄μ μ λ³΄λ€ μμ μ μ΄κ³ ν¨μ¨μ μΌλ‘ κ°λ°ν΄λ³΄μκΈ° λ°λλλ€.
μ°Έκ³ μλ£
μμ
λ€μμ λ‘κ·ΈμΈ νΌμ μ μΆνμ¬ μ¬μ©μ μ΄λ¦μ μΈμ μ μ μ₯νκ³ , λ€λ₯Έ νμ΄μ§μμ ν΄λΉ μ¬μ©μ μ΄λ¦μ λΆλ¬μ€λ μμ μ λλ€.
// λ‘κ·ΈμΈ νΌμ μ μΆνμ¬ μ¬μ©μ μ΄λ¦μ μΈμ
μ μ μ₯νλ μλΈλ¦Ώ
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
// μΈμ
κ°μ Έμ€κΈ° (μ μΈμ
μμ± κ°λ₯)
HttpSession session = request.getSession(true);
// μ¬μ©μ μ΄λ¦ μΈμ
μ μ μ₯
session.setAttribute("username", username);
// λ€λ₯Έ νμ΄μ§λ‘ 리λ€μ΄λ νΈ
response.sendRedirect("welcome.jsp");
}
}
// λ€λ₯Έ νμ΄μ§μμ μΈμ
μ μ μ₯λ μ¬μ©μ μ΄λ¦ λΆλ¬μ€λ μλΈλ¦Ώ
@WebServlet("/welcome")
public class WelcomeServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// μΈμ
κ°μ Έμ€κΈ° (κΈ°μ‘΄ μΈμ
μ¬μ©)
HttpSession session = request.getSession(false);
// μΈμ
μμ μ¬μ©μ μ΄λ¦ λΆλ¬μ€κΈ°
String username = (String) session.getAttribute("username");
// μ¬μ©μ μ΄λ¦μ νλ©΄μ μΆλ ₯
response.getWriter().println("Welcome, " + username + "!");
}
}
μ΄ μμ μμλ λ‘κ·ΈμΈ νΌμμ μ¬μ©μ μ΄λ¦μ μ λ ₯λ°μ μΈμ μ μ μ₯νκ³ , λ€λ₯Έ νμ΄μ§μμ ν΄λΉ μ¬μ©μ μ΄λ¦μ λΆλ¬μμ νλ©΄μ μΆλ ₯ν©λλ€. μ¬μ©μκ° λ‘κ·Έμμν λλ invalidate() λ©μλλ₯Ό νΈμΆνμ¬ μΈμ μ λΉμμ£Όλ©΄ λ©λλ€.
λκΈ