1. ホーム
  2. Web制作
  3. html5

htmlページでsessionの値を取得する方法

2022-01-12 05:31:17

1.まず、セッションのキー値は、サーバーに存在する、ブラウザのHTMLページが直接セッションの値を取得する方法はありません、唯一のHTMLでは、jesessionidまたはそのようなjsを介して何かを得ることができます。

1.1、データ量が少ない場合は、クッキーに入れ、クライアントに渡し、htmlでjsで取得することも検討できます。
1.2、データ量が多い場合は、別途jspやサーブレットを作成し、渡されたセッションのキーに応じて、セッションの値をシリアライズして返すなど、jsonなどでhtmlをajaxで取得することを検討することができます。この方法は、少し複雑で、複数のリモートアクセスが必要ですが、柔軟で便利です。
のように utf-8 2.もしくはバックエンドを通さないと取得できない、セッションはサーバー側に存在する、クッキーを使えばjsで取得できる。

問題:セッションがUserInfoオブジェクトを保持しており、ログイン成功後、htmlに「Welcome xxx」と表示される。  

解決策 ajax、jsonでUserInfoのデータを取得し、表示する。

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("Request failed");
            }
        });
    });
</script>

2.ページ

<html>
<head>
<title>admin page</title>
</head>
<body>
     <table>
            <tr>
                        <td width="74%" height="38" class="admin_txt">admin:<b></b> Hello, thanks for logging in and using! </td>
 
                    </tr>
                </table>
</body>
</html>

3. エンティティ ユーザー情報

public class UserInfo {
    private int UserInfoId;
    private String userInfoName;
    private String UserInfoPsw;
    // omit 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. 使用方法 {コード 以下のJSメソッドを使用します。

のように

response.sendRedirect("a.html?param=hello");

上記のメソッドは、htmlページ内のセッションにある値を取得します。 

概要

htmlページでsessionの値を取得する方法は、この記事で全てです。htmlページでsessionの値を取得する方法については、Script Houseの過去記事を検索していただくか、以下の関連記事を引き続きご覧ください。