Tomcat5.x スクリプトレットを使用禁止に!
Tomcat5.xから、JSPでのスクリプトレットの使用を禁止に出来るみたい。
web.xml
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <el-ignored>false</el-ignored> <page-encoding>Windows-31J</page-encoding> <scripting-invalid>true</scripting-invalid> </jsp-property-group> </jsp-config>
scripting-invalidをtrueに設定してやると、スクリプトレットを使用禁止にできます。
ディフォルトは、false。
Tomcatでは、確認済み。(ほかのAPサーバも有効になるんだろうか。。。)
el-ignoredをtrueにすると、EL式が書けなくなります。${hoge}とかそのまま表示されます。
注意点。
JSPファイルの方に、pageディレクティブが存在すると、上書きされるので注意しましょう。
<%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%>
と書くのが当たり前になりすぎていて、気づきませんでした。
上記例だと、scripting-invalidがfalseで宣言されているのと同等なので、web.xmlに記述しただけではスクリプトレットが動きます。
scripting-invalidを直接pageディレクティブに記述しても、スクリプトレットを禁止できます。
尚、scripting-invalidをtrueに設定して、スクリプトレットを記述すると、Exceptionが発生しますので。
前回のGETパラメータの文字化け確認しました。
ついでに、server.xmlの設定が有効になるのも確認しました。
サーブレット・JSPを勉強したい方へお勧めの本。
- 作者: 宮本信二
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2005/09/27
- メディア: 単行本
- 購入: 1人 クリック: 3回
- この商品を含むブログ (6件) を見る
よい本です。