App下載

有幾種獲取session值的方法在html頁(yè)面中?方法總結(jié)!

猿友 2021-08-05 15:46:48 瀏覽數(shù) (18283)
反饋

對(duì)于session大家可以不會(huì)比較陌生,那么下面是有關(guān)于“有幾種獲取session值的方法在html頁(yè)面中?”這個(gè)問(wèn)題的講解,相信大家在閱讀完之后對(duì)于session這方面的內(nèi)容也會(huì)有不少的了解!

1.首先呢session的key-value都是存在server的,瀏覽器HTML頁(yè)面是沒(méi)有辦法直接取得session中的值,只有在html里能通過(guò)js拿到j(luò)esessionid之類(lèi)的東西。

1.1、數(shù)據(jù)量如果小,可以考慮放到cookie里,傳到客戶端,html里用js就可以拿到。
1.2、如果數(shù)據(jù)量大,可以考慮單獨(dú)做一個(gè)jsp或servlet,根據(jù)傳來(lái)的session的key,返回序列化的session的值,比如json之類(lèi)的。html里用js通過(guò)ajax獲取。這種方式復(fù)雜了點(diǎn),多一次遠(yuǎn)程訪問(wèn),但是靈活方便。
:<input type="text" value='<%#Session["username"]%>'>
2.或者得通過(guò)后臺(tái)才能獲取,session是存在服務(wù)器端的,如果你用cookie的話,可以通過(guò)js獲取。

問(wèn)題描述:session中保存著UserInfo對(duì)象,成功登錄后,在html中顯示“歡迎xxx”  

解決方法:通過(guò)ajax,json獲取UserInfo數(shù)據(jù),再顯示

1.js

<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
 
<script type="text/javascript">
    $(function() {
        $.ajax({
            type : "get",
            url : "login!getLoginName.action",
            dataType : "text",
            success : function(result) {
                document.getElementsByTagName('b')[0].innerHTML=result;
            },
            error : function() {
                alert("請(qǐng)求失敗");
            }
        });
    });
</script>

2.頁(yè)面:

<html>
<head>
<title>管理頁(yè)面</title>
</head>
<body>
     <table>
            <tr>
                        <td width="74%" height="38" class="admin_txt">管理員:<b></b>您好,感謝登陸使用!</td>
 
                    </tr>
                </table>
</body>
</html>

3.實(shí)體:UserInfo

public class UserInfo {
    private int UserInfoId;
    private String userInfoName;
    private String UserInfoPsw;
    //省略get,set

4.LoginAction中:

public void getLoginName() {
        System.out.println("getLoginUser");
        HttpServletResponse response = ServletActionContext.getResponse();
        response.setContentType("text/plain;charset=UTF-8");
        PrintWriter out;
        try {
            String userName = ((UserInfo) ActionContext.getContext()
                    .getSession().get("user")).getUserInfoName();
            System.out.println(userName);
            out = response.getWriter();
            out.print(userName);
            out.flush();
            out.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 
    }

3.用response.sendRedirect("a.html?param=hello");用下面的JS方法

如:

var v=getUrlParameter('param');
function getUrlParameter( name ){
name = name.replace(/[
]/,"[").replace(/[
]/,"\]");
var regexS = "[\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec(window.parent.location.href );
if( results == null ) return ""; else {
return results[1];

}
}

以上幾種方法在html頁(yè)面中取得session中的值. 

總結(jié)

在文中通過(guò)代碼的解釋和分析,我們對(duì)于“有幾種獲取session值的方法在html頁(yè)面中?”這個(gè)問(wèn)題有了解決的方法,那么更多有關(guān)于html中的內(nèi)容我們都可以在W3Cschool中進(jìn)行學(xué)習(xí)和了解! 

0 人點(diǎn)贊