servlet下怎樣使用session

Session基於Cookie技術,Session保存在服務器端(一般會設置有效期),SessionID保存在客戶端.Session裏面保存!!若干個!!!"鍵-值"對,可以通過 void setAttribute(java.lang.String name, java.lang.Object value) 來修改/添加
HttpSession session = request.getSession();
session.setAttribute("abc",new Integer(567));//新增屬性 鍵:abc 值:new Integer(567)
session.setAttribute("jkl",new Person());//新增屬性 鍵:jkl 值:new Person()
session.setAttribute("abc",new Double(5.67));//已經存在 鍵abc,將會修改該鍵對應的值
Session本質上也是一組"鍵-值"對 其中的"鍵"保存在客戶端(鑰匙)是字符串 其中的"值"保存在服務器端(保險箱)可以是Object類型
sessionID與session的關係:鑰匙與銀行保險箱 鑰匙在客戶端 保險箱在服務器端
URL重寫:解決了關閉瀏覽器cookie產生的問題
!!!!!!!!!!!!!Session在關閉瀏覽器時會失效,在下次訪問時不能獲得同一個Session了

實例:
package chap03;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class GetSession extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException
{
response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();

String user = "";
//此處不新建session,只是去取已經創建的session
HttpSession session = request.getSession(false);
//如果session能夠取到,說明用戶已經登錄
if(session!=null)
{
user = (String)session.getAttribute("abc");
out.println("獲得創建的Session");
out.println("<BR>");
out.println("登錄名:"+user);
}
//否則,說明用戶沒有登錄,跳轉到登錄頁面讓用戶登錄
else
{
response.sendRedirect("../SessionLogin.htm");
}
}
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException
{
doGet(request,response);
}
}





package chap03;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class SaveInfo extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException
{
//驗證登錄者身份,驗證過程此處省略
//如果合法用戶就產生一個session來放置其登錄名


//如果用戶輸入了用戶名,則將其放在session中
if(request.getParameter("userName")!=null)
{
HttpSession session = request.getSession();//沒有Session就新建一個
session.setAttribute("abc",
request.getParameter("userName"));//在服務器端存儲"鍵-值對"
}
response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();
out.println("Session已經創建");
out.println("<BR>");
out.println("轉到其他<A HREF=/"chap03.GetSession/">頁面</A>");
}
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException
{
doGet(request,response);
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章