http://blog.163.com/yangzhanghui_job/blog/static/17957506220127273348178/
Cookie:伺服器在用戶端儲存使用者的資訊,比如登入名稱,密碼等,就是cookie.
用途:
1.儲存使用者名稱、密碼,在一定時間不用重新登入。
2.記錄使用者訪問網站的喜好(比如有無背景音樂)。
3.網站的個人化。
sendRedirct()方法:通過該方法將資訊傳送到下一個頁面。
sendRedirct("welcome?uname=shunping");的形式:
注意點:1.welcome代表你要跳轉的那個servlet的url
2.servlet url名和變數之間有?號
3.如要傳遞兩個以上的值,它們間要用&號分開。
4.如果要傳遞的是中文,那你將得到亂碼,需要處理一下。
通過sendRedirect()可以將一個頁面資訊,傳遞給另外的頁面.
例子:登陸判斷頁面添加代碼如下
//接收使用者名稱和密碼
String u=req.getParameter("username");
String p=req.getParameter("password");
//跳轉到welcome
res.sendRedirect("welcome?uname="+u+"&upass="+p);
welcome頁面添加代碼如下:
//得到從loginCl傳遞的使用者名稱
String u=req.getParameter("uname");
String p=req.getParameter("upass");
//輸出到網頁
//中文亂碼處理
res.setContentType("text/html;charset=gbk");
PrintWriter pw=res.getWriter();
pw.print("歡迎登陸"+u+" pass="+p);
通過隱藏表單來共用資料
形式如下:
<form action=login>
<input type=hidden name=a value=b>
</form>
session:當使用者開啟瀏覽器,訪問某個網站時,伺服器就會在伺服器的記憶體為該瀏覽器分配一個空間,給空間被這個瀏覽器獨佔。這個空間就是session空間。預設儲存時間30min.
用途:
1.網上商城中的購物車
2.儲存登陸使用者的資訊
3.將某些資料放到session中供同一使用者的各個頁面使用
4.防止使用者非法登陸到某個頁面
......
可以把session看做一張表,它有兩列,一列是屬性名稱,一列是屬性值。
session的使用:
1.得到session
HttpSession hs=request.getSession(true);
2.向session添加屬性
hs.setAttribute(String name,Object val);
3.從session得到某個屬性
String name=hs.getAttribute(String name);
4.從session刪除某個屬性
hs.removeAttribute(String name);
session處理位置,在xml檔案中:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
注意:
1.當某個瀏覽器訪問網站時,伺服器會給瀏覽器分配一個唯一的session id,以此來區別不同的瀏覽器。
2.它的各個屬性都會佔用記憶體,所以迫不得已時才用。
例子:
防止非法使用者登陸
loginCl.java添加代碼
//將驗證成功的資訊寫入session
//得得session
HttpSession hs=req.getSession(true);
//修改session存在時間
hs.setMaxInactiveInterval(20);
//將屬性和值寫入session
hs.setAttribute("pass","ok");
welcome.java添加代碼
//得到session
HttpSession hs=req.getSession(true);
String val=(String)hs.getAttribute("pass");
//判斷
if(val==null)
{
try
{
//非法登陸
res.sendRedirect("login");
}catch(Exception e)
{
e.printStackTrace();
}
}