溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Session如何使用

發(fā)布時間:2022-09-28 15:55:41 來源:億速云 閱讀:102 作者:iii 欄目:編程語言

這篇文章主要講解了“Session如何使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Session如何使用”吧!

Session是什么呢?簡單來說就是服務器給客戶端的一個編號。當一臺WWW服務器運行時,可能有若干個用戶瀏覽正在運正在這臺服務器上的網站。當每個用戶首次與這臺WWW服務器建立連接時,他就與這個服務器建立了一個Session,同時服務器會自動為其分配一個SessionID,用以標識這個用戶的唯一身份。這個SessionID是由WWW服務器隨機產生的一個由24個字符組成的字符串,我們會在下面的實驗中見到它的實際樣子。

這個唯一的SessionID是有很大的實際意義的。當一個用戶提交了表單時,瀏覽器會將用戶的SessionID自動附加在HTTP頭信息中,(這是瀏覽器的自動功能,用戶不會察覺到),當服務器處理完這個表單后,將結果返回給SessionID所對應的用戶。試想,如果沒有SessionID,當有兩個用戶同時進行注冊時,服務器怎樣才能知道到底是哪個用戶提交了哪個表單呢。除了SessionID,在每個Session中還包含很多其他信息。

1.設置session

java里面,可以給session添加自定義key,value(HttpServletRequest request作為方法的輸入參數)

HttpSession session = request.getSession();session.setAttribute("usrid", userid);

2.取得session

jsp里面可以這段來源自CSDN一個討論貼,自己時間后并沒有成功,報錯是session is undifiened,后來又找了資料說javascript不提供訪問session的功能。session只能通過動態(tài)程序操作,可以使用ajax給javascript返回值。

session.getAttribute("username");

java里面可以 (HttpServletRequest request 作為方法的輸入參數)

HttpSession session = request.getSession(); 
session.getAttribute("usrname");

一個使用session進行超時訪問控制的實例

(1)LoginServlet.java 在登錄時,設置session屬性

public void doPost(HttpServletRequest request, HttpServletResponse response)  
            throws IOException, ServletException {  
         
        String userid = request.getParameter("username");
        String pwd = request.getParameter("password");
        
        JSONObject json = new JSONObject();  
        
        AdminDAO adminDAO = new AdminDAO();
        List<Admin> userList = adminDAO.findByProperty("usrid", userid);        if(userList.get(0).getPassword().equals(pwd)){
             json.put("success", true);
             HttpSession session = request.getSession();
             session.setAttribute("usrid", userid);
        } else {
             json.put("success", false);
             json.put("meg", "sorry");
        }          
                 
        PrintWriter pw = response.getWriter();   
        pw.print(json.toString());  
        pw.close();  
    }

 (2)HomePage.java 在跳轉到相關頁面時,獲取并判斷session

public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        JSONObject json = new JSONObject();  
       
        HttpSession session = request.getSession(); 
        if(session==null||session.getAttribute("usrid")==null)
        {
             json.put("success", false);
             json.put("meg", "Time out,please login again!");
        }        else
        {
           ...
            json.put("jsonArray", array);     
        }    
        
           
        PrintWriter pw = response.getWriter();   
        pw.print(json.toString());  
        pw.close();
    }

 (3)homePage.html 頁面根據(2)的返回值判斷是否執(zhí)行跳轉操作

$(document).ready(function(){
            $.ajax({                url: "HomePageServlet",                type: "post",                dataType: "json",                success: function(data) {        
                if (data["success"]) {
                      ...
                } 
                else
                {
                    alert(data["meg"]);                    window.location.href="login.html";
                }                            
            }
                
        });
    });

感謝各位的閱讀,以上就是“Session如何使用”的內容了,經過本文的學習后,相信大家對Session如何使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI