- Javaファイルにセッション変数があります。(TestConnection.java)
session.setAttribute("CONNECTION_DBNAME", dbName);
- CONNECTION_DBNAMEの値をjavascriptファイルに読み込む方法(utility.js)
session.setAttribute("CONNECTION_DBNAME", dbName);
First access the variable in scriptlet.
<%
String param= (String)session.getAttribute("CONNECTION_DBNAME");
%>
Then use like this.
<script>
var X = '<%=param%>';
</script>
その後、x を使用して名前にアクセスできます。
Scriptlets were OUTLAWED more than a decade ago!
A better way... in jsp, include the values in a hidden div:
<div id="javaValues" style="display: none;">
<div id="employee">${employee}</div>
<div id="dept">${dept}</div>
</div>
Use <div>
's rather than <input type="hidden">
, since they will not interfere with your form-postings.
In javascript (assuming jQuery) you can then access the values, for example:
var employee = $("#employee").html().trim();
var dept = $("#dept").html().trim();
クライアントからセッション内の変数にアクセスすることはできません。クライアントが値を動的に取得するように Ajax 呼び出しを提供するか、スクリプト ブロックに設定された値を残すことができます。
JSF:
<script>var dbName = "#{myBean.value}";</script>
(文字通りセッションから、重要なのは、文字列の場合は引用符が必要です):
<script>var dbName = "#{session.getAttribute('CONNECTION_DBNAME')}";</script>
ただし、このようなメカニズムを介して JavaScript にデータベースへのアクセスを許可することはほとんど意味がないため、この方向に進む前に再検討する必要があります。データベースが公に公開されていない限り、データベース接続の詳細を公開する道をたどっているように見えますが、これはクライアントが必要としない、または持つべきではありません。サーバー/ページは、この情報を取得するためのリレーとして機能する必要があります。
これが管理コンソールである場合、おそらく JavaScript でそれを使用する必要はありませんが、設定を表示することは問題ありません。とにかく、接続の詳細がユーザー固有のものでない限り、セッションでそれらを必要としない可能性があります。