只要客戶端一旦連接上服務器,服務器就會自動產生Session;
一個連接對應一個session,session可以在一個會話中傳遞信息;
通過setAttribute設置值。
通過getAttribute獲得值。
由服務器端控制,服務器如果重啓了,信息就會丟失!
public class SessionTest extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//解決亂碼問題:
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
//Session由服務器自動創建,如何獲得session
//HttpSession 得到的sessioin對象
HttpSession session = req.getSession();
//得到sessionID,一次會話,一個seesionID;
String id = session.getId();
resp.getWriter().println("獲得的sessionId:\n"+id);
String name = "qinjiang";
//向session中存入一個值;
session.setAttribute("name",name);
resp.getWriter().println("存入信息成功:"+name);
}
}
//獲得session存入的值
public class SessionTest2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//解決亂碼問題:
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
//獲得
HttpSession session = req.getSession();
System.out.println("得到的SessionID:"+session.getId());
String name = (String) session.getAttribute("name");
resp.getWriter().println("得到的session存入的信息"+name);
//Servlet < Seesion < WebContext
}
}
會話註銷方法一:
- session.invalidate();//通過代碼註銷會話
會話註銷方法二:
2.<!--session-config可以設置會話自動過期,時間分鐘爲單位--> <session-config> <session-timeout>1</session-timeout> </session-config>