0

私は一般的に Java を使用した Web 開発は初めてですが、Java プログラミングのバックグラウンドがあるため、App Engine の Java バージョンを選択しました。それ以前は、PHP を含む Web プロジェクトしかありませんでした。

App Engine で、サーブレットに送信された HTML フォームを処理して適切にエスケープするエレガントな方法はありますか? App Engine ドキュメントの例では、ユーザーに情報を表示する JSP での XML のエスケープのみを参照していますが、偶発的なエラーを最小限に抑えるために、DataStore で XML を使用せずにクリーン テキストを使用したいと考えています。

現在、Apache Commons パッケージの StringEscapeUtils を使用していますが、アプリで commons-jars をデプロイする必要があるため、App Engine に含まれるソリューションを希望します。自分で正規表現を使用して文字列を解析する唯一の方法はありますか?

4

1 に答える 1

0

ユーザーが送信したものをエスケープしないでください。そのままにして、そのままデータベースに格納します。このデータは正当な理由で XML である可能性があり、そのデータは HTML エスケープを気にしない Web アプリケーション以外の何かによって使用される可能性があります。また、Web アプリケーションでも、HTML エスケープが不要な JSON オブジェクトの一部として送信できます。

このデータを含む HTML ページを生成する場合、HTML 特殊文字をエスケープして、すべてが正しく表示されるようにする必要があります。StringEscapeUtils は問題なく、アプリに jar をバンドルすることは完全に正常です。JSP を使用して HTML マークアップを生成する場合は、JSTL<c:out>タグまたは JSTLfn:escapeXml()関数を使用します。

commons-lang ライブラリを埋め込まずに Java で作りたい場合は、自分でフィルタリングを実装してください。<>'"および&を対応する HTML エンティティに置き換えるだけです。難しすぎてはいけません。

于 2012-08-07T09:37:55.170 に答える