私はちょっとしたピクルスにいます:
私はJavaのBeanに設定している多くの値を持っており、次のようなスクリプトレットを使用してJavaScriptとjspでそれらを取得しています:
My Bean.java で:
public void setListValue(String s) { listValue = s; }
public String getListValue() { return listValue; }
今私のjsp(javascript関数内)で:
input = $input({type:'hidden',id:'ListVal',name:'ListVal',
value: '<%= results.getListValue() %>'});
スクリプトレット コードを使用して jsp のパラメータを取得することもあります。
通常、パラメーターが Java ファイルから Java ファイルに、または JSP ファイルから JSP ファイルに渡される場合、次のようにネイティブ Java エンコーダーとデコーダーを使用します。
EncodedHere = URLEncoder.encode(encodedStr,"UTF-8");
DecodedHere = URLDecoder.decode(EncodedHere,"UTF-8");
これはこれらのシナリオでは問題なく機能しますが、Java で変数を設定してから、前述の方法のように JavaScript または JSP でそれらを取得しようとすると、失敗します。私はJSTLの方法も試しましたが、うまくいきませんでした.JSTLはjavascriptで値を取得するのには適していないようです. 現在、このスクリプトレットは多くの人からセキュリティ上の問題としてフラグが立てられています。これは巨大なコード ベースであるため、それを変更することも非常に困難です。
何らかの形でこのセキュリティ上の欠陥を回避するためのアイデアを持っている人はいますか? 言い換えれば、java で変数をエンコードし、エンコードされた文字列を jsp と javascript で取得してからデコードする方法はありますか?