jsp 會話

session和cookie的區別:
一、session是保存在服務器端,cookie是保存在客戶端。
二、session能夠保存任何對象,cookie只能保存字符串對象。
三、session更安全,cookie不安全,不能存儲敏感數據,對保存的數據進行加密處理。
四、session默認過時時間30分鐘,cookie默認過時時間關閉瀏覽器後。
五、session適合保存客戶狀態,cookie適合保存持久化的數據狀態。java

 

1.Session對象web

session機制是一種服務器機制,在服務器保存信息,當程序接收到客戶端的請求時,服務器首先會檢查這個客戶端是否已經建立了Session.瀏覽器

session保存數據:tomcat

session.setAttribute(String key,Object value)安全

session中讀取數據:服務器

(Object)session.getAttribute(String key)cookie

 

方法                 返回值類型                                            說明                          
setAttribute(String key,Object value) void 以key-vlaue的形式保存對象值
getAttribute(String key) Object 經過key獲取對象值
getId() String 獲取sessionID
Invalidate void 設置session對象失效
setMaxInactiveInterval(int interval) void 設置session的有效期
removeAttribute(String key) void 移除session中的屬性

註冊頁面session

    if(username.equals("admin")){
            //不容許註冊,返回註冊頁面
            request.setAttribute("mess", "註冊失敗,請使用其餘用戶名");
            //response.sendRedirect("login.jsp");//返回註冊頁面沒有任何提示信息(實現頁面跳轉)
            request.getRequestDispatcher("login.jsp").forward(request, response);//返回註冊頁面並提示信息
        }else{
            //註冊成功
            session.setAttribute("user", username);//session保存數據
            response.sendRedirect("newsDetail.jsp");
        }

註冊成功 後跳轉到的頁面app

        <%     Object o=session.getAttribute("user");
            if(o==null){
                //顯示用戶名密碼,可在此登錄(java代碼和HTML代碼結合使用狀況)
            %>    
            <label>用戶名</label><input type="text" name="uname" /><label>密碼</label><input type="text" name="upassword" /><button>登陸</button>
            <%
            }else{
                //顯示「歡迎你,xxx」
                out.print("歡迎你,"+o.toString());
            }
        %>

 session有效期的設置jsp

if(username.equals("admin")){
            //不容許註冊,返回註冊頁面
            request.setAttribute("mess", "註冊失敗,請使用其餘用戶名");
            //response.sendRedirect("login.jsp");//返回註冊頁面沒有任何提示信息(實現頁面跳轉)
            request.getRequestDispatcher("login.jsp").forward(request, response);//返回註冊頁面並提示信息
        }else{
            //註冊成功
            session.setAttribute("user", username);//session保存數據
            //session.setMaxInactiveInterval(10);//設置有效期爲10秒
            response.sendRedirect("newsDetail.jsp");
        }
    <%     Object o=session.getAttribute("user");
            if(o==null){
                //顯示用戶名密碼,可在此登錄(java代碼和HTML代碼結合使用狀況)
            %>    
            <label>用戶名</label><input type="text" name="uname" /><label>密碼</label><input type="text" name="upassword" /><button>登陸</button>
            <%
            }else{
                //顯示「歡迎你,xxx」
                out.print("歡迎你,"+o.toString());
                
                %>
                &nbsp;<a href="userLogout.jsp">註銷</a>//建立註銷連接
                <% 
            }
        
        %>

tomcat中wed.xml設置失效(這裏10表示10分鐘)

   </welcome-file-list>
        <session-config>
            <session-timeout>10</session-timeout>
        </session-config>
</web-app>

 Cookie:

Cookie由服務器端 生成,發送給客戶端瀏覽器,瀏覽器會將其保存成某個目錄下的文本文件。

Cookie的應用

1.建立Cookie對象

Cookie cookieName=new Cookie(String key,Object value);

CookieName爲Cookie對象的名稱(本身定義);

String key:Cookie的名稱

value:Cookie所包含的值

2.寫入Cookie

Cookie建立後,須要將其添加到頁面中,調用response對象的public void addCookie(Cookie cookie)方法寫入。

response.addCookie(CookieName);

例子

  //註冊成功後
Cookie cookie=new Cookie("user",username); response.addCookie(cookie);    cookie.setMaxAge(60*60);//設置保存時間單位秒
response.sendRedirect(
"userLoginOk.jsp"); }

3.讀取Cookie
Cookie[] cookies=request.getCookie();

例子

<%    
    //讀取Cookie頁面
    Cookie[] cookies=request.getCookies();
    String user="";
    for(int i=0;i<cookies.length;i++){
        if(cookies[i].getName().equals("user")){
            user=cookies[i].getValue();
        }
    }
%>
<label>用戶名</label><input type="text" name="uname" value="<%=user%>"/>
<%

 當在首頁點擊「註銷」按鈕後,用戶名會自動顯示在「用戶名」文本框中。

application

application對象相似於全家變量,每一個Web項目都有application對象,能夠在整個Web項目中共享數據.

setAttribute(String key,Object value) 返回類型void,能夠以key-value形式保存對象值

getAttribute(String key) Object類型,經過key獲取對象值

統計網站訪問人數:

<%
    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.print("訪問次數"+icount.intValue()+"次");
%>
相關文章
相關標籤/搜索