jsp同一使用者的不同頁面共用資料

來源:互聯網
上載者:User

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();
   }
   
  }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.