web初學之request,session與application

request瀏覽器

(1)requestsetAttribute()getAttribute()方法通常都是成對出現,首先經過setAttribute()方法設置屬性與屬性值,而後經過getAttribute()方法根據屬性獲取到與該屬性對應的對象值。setAttribute()getAttribute()方法都是在服務器端內部執行,客戶端並不清楚。(注意:getAttribute()以後須要進行向下類型轉換,將屬性值轉換爲真正的對象)服務器

(2)requestgetParameter()方法是獲取到客戶端經過表單或url請求參數所發送過來的參數值,是客戶端與服務器之間的交互,服務器要想獲取到客戶端發送過來的數據,就須要使用getParameter()方法來獲取。沒有與之對應的setParameter()方法。session

Sessionapp

(1)session也存在setAttribute()和與之對應的getAttribute()方法。但與request不一樣的是,session對象內數據的存活範圍也就是session對象的存活範圍(只要瀏覽器不關閉,session對象就會一直存在),所以,在同一個瀏覽器窗口中,不管向服務器端發送多少個請求,session對象只有一個。jsp

(2)Request對象內數據的存活範圍就是在request對象的存活範圍內,當客戶端向服務器端發送一個請求,服務器向客戶端返回一個響應後,該請求對象就被銷燬了;以後再向服務器發送新的請求時,服務器會建立新的request對象,該request對象與以前的request對象鎖存放的對象無任何關係,所以也沒法得到在它以前的request對象所存放的數據。網站

Applicationurl

(1)存活範圍最大的對象,只要服務器沒有關閉,application對象中的數據就會一直存在。在整個服務器運行過程當中application只有一個。spa

聯繫與區別:requestsession以及application3個對象的範圍是逐個增長的;request只在一個請求範圍內;session是在瀏覽器串口的範圍內;application則是在整個服務器的運行過程當中。3d

 

示例:實現一個網頁計數器來模擬三種對象做用範圍。code

request.jsp

<%
            if (request.getAttribute("counter") == null)
            {
               request.setAttribute("counter", "1");
            }
            else
            {
                System.out.println("else");
                String strnum = null;
                strnum = (String)request.getAttribute("counter");
                int icount = 0;
                icount = Integer.valueOf(strnum).intValue();
                icount++;
                
                request.setAttribute("counter", Integer.toString(icount));
            }
        %>
        
        您是第<%= request.getAttribute("counter") %> 位訪問者!

 

request對象下,刷新網站,計數器保持不變。(每刷新一次request對象即請求一次,服務器返回一個響應後即銷燬。)

將代碼中的request對象通通改成session對象。再次運行。

關閉瀏覽器以前:                                                                         

                                                                                                 

    

    更換瀏覽器再此運行,session對象的存活範圍在關閉瀏覽器或更換瀏覽器後便失效。

      

最後更改代碼中session對象爲application對象。運行。此時服務器並無關閉,啓用兩款瀏覽器,發現依然有效

                                                                                        

相關文章
相關標籤/搜索