web-dev-qa-db-ja.com

JavaScriptを使用すると、HTMLページのサーブレットによって設定されたセッション属性から値を取得できます

リダイレクトを使用してHTMLページに転送するサーブレットがあります。私はhtmlページでajaxとphpを使用して他の機能を実行しているためです。 jspに変えることができます。名前を取得する方法はありますか-セッション属性でサーブレットで取得する「poNumber」私はそれを取得し、その価値を表示することでした。

プログラミングは初めてです。

これをjspで機能させることができます。

ただし、これをHTMLページで機能させる必要があります。 javascriptでできますか?

私が試してみました:

      <script type="text/javascript">
      var purchaseOrderNo = session.getAttribrute("pONumb");
      document.write("pONumb");
      </script> [

これは、HTMLページに値を出力しません。

試した:

       <script type="text/javascript">
       var purchaseOrderNo = (String) session.getAttribrute("pONumb");
           document.write("pONumb");
           </script> 

再びページに出力がありません。

試した:

            <script type="text/javascript">
            String purchaseOrderNo = (String) session.getAttribrute("pONumb");
            document.write("pONumb");
            </script> 

再びページに出力がありませんか?

他に試すことは考えられません。このHTMLページにリダイレクトするサーブレットは、セッション属性pONumbを作成および設定します。

30
user878195

いいえ、できません。 JavaScriptはクライアント側(ブラウザ)で実行され、セッションデータはサーバーに保存されます。

ただし、いくつかの方法でJavaScriptのセッション変数を公開できます。

  • 変数を値として格納し、DOM APIを介して読み取る非表示の入力フィールド
  • dOMを介して読み取ることができるHTML5データ属性
  • cookieとして保存し、JavaScript経由でアクセスする
  • インラインにある場合は、JSコードに直接挿入します

JSPでは、次のようなものがあります。

<input type="hidden" name="pONumb" value="${sessionScope.pONumb} />

または:

<div id="product" data-prodnumber="${sessionScope.pONumb}" />

次に、JSで:

// you can find a more efficient way to select the input you want
var inputs = document.getElementsByTagName("input"), len = inputs.length, i, pONumb;
for (i = 0; i < len; i++) {
    if (inputs[i].name == "pONumb") {
        pONumb = inputs[i].value;
        break;
    }
}

または:

var product = document.getElementById("product"), pONumb;
pONumb = product.getAttribute("data-prodnumber");

インラインの例は最も簡単ですが、JavaScriptコードを外部リソースとして保存したい場合( 推奨される方法 )は実行不可能です。

<script>
    var pONumb = ${sessionScope.pONumb};
    [...]
</script>
38
Alex Ciminian
<%
String session_val = (String)session.getAttribute("sessionval"); 
System.out.println("session_val"+session_val);
%>
<html>
<head>
<script type="text/javascript">
var session_obj= '<%=session_val%>';
alert("session_obj"+session_obj);
</script>
</head>
</html>
4
user2552572

以下のコードは、Javaスクリプト内でセッション属性を実現するのに役立ちます。

var name = '<%= session.getAttribute("username") %>';
3
<?php 
    $sessionDetails = $this->Session->read('Auth.User');

    if (!empty($sessionDetails)) {


        $loginFlag = 1;
        # code...
    }else{
        $loginFlag =  0;
    }


?>

<script type="text/javascript">

    var sessionValue = '<?php echo $loginFlag; ?>';
    if (sessionValue = 0) {

        //model show
    }
</script>
0