最近學習ajax技術,前端改成了HTML靜態網頁來編寫,那要如何取得登陸的使用者名稱呢?大家首先想到的一定是利用Cookie和Session,在JSP頁面這樣做可以,但是靜態HTML頁面就不行了。
首先Cookie和session是什麼呢?首先大家都知道,HTTP協定是無狀態的協定。一旦資料交換完畢,客戶端與伺服器端的連線就會關閉,再次交換資料需要建立新的連線。這就意味著伺服器無法從連線上追蹤會話。這時候就出現了cookie會話追蹤技術。 給客戶端們頒發一個通行證吧,每人一個,無論誰訪問都必須攜帶自己通行證。這樣伺服器就能從通行證上確認客戶身分了。這就是Cookie的工作原理,是儲存在客戶端上的。 Session是伺服器端使用的一種記錄客戶端狀態的機制,相當於在伺服器端建立一份使用者檔案表,只需要在檔案表中進行查詢,判斷與目前客戶是否匹配。 Session也是一種key-value的屬性對,透過getAttribute(Stringkey)和setAttribute(String key,Object value)方法讀寫客戶狀態資訊。 Servlet裡透過request.getSession()方法取得該客戶的Session。
HTML取得登陸使用者名稱session是JSP的九大內建物件之一。對於HTML不太友好,那靜態資源又如何取得呢?一是建立一個過渡的Servlet,保存使用者session,進行取得。第二個是透過後台把路徑+使用者名稱進行拼接透過ajax傳到前台,前台獲取url對其進行操作。
$.ajax({ url: '/login', data: { username: username, password: password }, type: 'GET', success: function (result) { if (result.code === 0) { if(val == num){ layer.msg("登入成功", function () { window.location.href = "index1.html?"+$("#username").val()+""; }) }else{ layer.msg('驗證碼錯誤') } } else { layer.msg("登入失敗," + result.msg, {icon: 2}) } } }) }
重要的是window.location.href = "index.html?"+$("#username").val()+"";這一句,其中$("#username").val()取得使用者名稱的值,username為使用者名稱的id.
先定義一個接收使用者名稱的id
<p id = "name"></p>
再透過JS進行獲取
<script type="text/javascript"> var url = location.href; //alert(url); var num =url.indexOf("?"); var str = url.substr(num+1); $("#name").html("歡迎" +str); </script>
在最後不要忘了添加
<script type="text/javascript" src="./layui/js/jquery.min.js"></script>
到這篇關於Html獲取登陸用戶名的範例程式碼的文章就介紹到這了,更多相關Html獲取登陸用戶名內容請搜尋downcodes.com以前的文章或繼續瀏覽下面的相關文章,希望大家以後多多支援downcodes.com!