JSP實現數據保存(web基礎學習筆記四)


session對象:

 

//服務端設置Session屬性
session.setAttribute("user", username);
//客戶端接收Session
Object obj = session.getAttribute("user");
    //判斷是否為空,不是空就輸出
    if(obj==null){
        //如果為空就提示用戶登錄
        %>
                   <%}else{
            //不為空就輸出用戶名,和歡迎信息
            out.println("歡迎您"+obj.toString());
    }
    %>

 

Session清理機制

在服務端設置過期時間

//設置服務器端session過期日期(單位為:秒),如設置為10秒
       session.setMaxInactiveInterval(10);

在客戶端中設置

<%
  //在客戶端設置session,如點擊注銷之后,直接設置session過期
  //第一種刪除session中的數據
session.removeAttribute("user");
//第二種 或者直接使用session過期
 session.invalidate();
//以2選一
  //重定向主頁
  response.sendRedirect("index.jsp");

%>

在tomcat中直接設置,在tomact中設置時間為分鍾conf/web.xml中

<!--在最下方的</webapp>之前添加,並設置為10分種-->
<session-config>
  <session-timeout>10</session-timeout>
  </session-config>
</web-app>

 Session過程

 

cookie

 

在服務端設置Cookie

//聲明cookie變量,並添加要保存的參數和值如:用戶名
       Cookie cookie = new Cookie("user",username);
       //設置cookie的有效時間以秒為單位60秒*60秒int類型的值
       cookie.setMaxAge(60*60);
       //將cookies對象發回客戶端
       response.addCookie(cookie);

在客戶端接收cookie,

//接收cookies返回值為cookies的數組
       Cookie [] cookies = request.getCookies();
        //聲明字符串變量用來接收cookies的值
        String user="";
        for(int i=0;i<cookies.length;i++){
            //獲取cookies的名字,並判斷如果是服務端的名稱
            if(cookies[i].getName().equals("user")){
                //將cookes的值賦為字符串變量
                user=cookies[i].getValue();
            }
            
        }

Application對象

計數器的實現原理

<%  //計數器
//取出application屬性中的count值為object值
 Object count = application.getAttribute("count");
//判斷是否為空
if(count==null){
    //如果是空,表示第一次訪問將值設置為1
    application.setAttribute("count", new Integer(1));
}else{
    //不是空,則將結果+1
    Integer i=(Integer)count;
    application.setAttribute("count", i.intValue()+1);
}
Integer iCount=(Integer)application.getAttribute("count");
out.println("訪問:&nbsp;"+iCount+"次");

%>
<%
//獲取application對象的count屬性值
 Object count = application.getAttribute("count");
//判斷是否為空
if(count==null){
    //為空就設置為1
    application.setAttribute("count", new Integer(1));    
}else{
    //不空就取值+1
    application.setAttribute("count", (Integer)count+1);
}
 Integer icount = (Integer)application.getAttribute("count");
 out.println("訪問了: "+icount+"次");
%>

 

Request、Session和Application的區別

Request:中存儲的數據僅在一個請求中可用

Session:中存儲的數據在一個會話有效期內可用

Application:中存儲的數據在整個WEB項目中可用,直到WEB服務器停止運行

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM