htmlページでセッションの値を取得する

2791 ワード

1.まずsessionのkey-valueはすべてserverが存在して、ブラウザのHTMLページは直接sessionの中の値を取得することができなくて、htmlの中でjsを通じてjsessionidなどのものを手に入れることができます.
1.1、データ量が小さい場合は、クッキーに入れてクライアントに転送し、htmlでjsで入手できることを考えることができます.
1.2、データ量が大きい場合は、jspまたはservletを単独で作成し、伝達されたセッションのkeyに基づいて、jsonなどのシーケンス化されたセッションの値を返すことを考慮することができる.htmlではjsでajaxで取得します.この方法は複雑で、リモートアクセスは1回以上ありますが、柔軟で便利です.
次のようになります.
2.あるいはバックグラウンドで取得しなければなりません.sessionはサーバー側に存在します.クッキーを使うとjsで取得できます.
问题详述:セッションにはUserInfoオブジェクトが保存されています.ログインに成功すると、htmlに「ようこそxxx」と表示されます.
解決方法:ajax,jsonでUserInfoデータを取得し、再表示する
1.js



    $(function() {
        $.ajax({
            type : "get",
            url : "login!getLoginName.action",
            dataType : "text",
            success : function(result) {
                document.getElementsByTagName('b')[0].innerHTML=result;
            },
            error : function() {
                alert("    ");
            }
        });
    });

2.ページ


    


     
, !

3.エンティティ: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ページでsessionの値を取得する.