2012-02-09 13 views
0

Javaサーブレットを使用してユーザーが(フォームを使用して)投稿したデータストアにメッセージを保存するアプリケーションエンジンアプリケーションがあります。"enter"の問題を引き起こすJSP文字列

String content = req.getParameter("message"); 
message.setProperty("content", content); 

後でJSPでメッセージを処理すると、ユーザーがメッセージを入力するときに「Enter」を押すと実行時エラーが発生します。

messageArray[<%=i%>]= { 
        content: "<%=message.getProperty("content")%>", 

どのように私はこの問題を解決するのですか?メッセージを正しく表示するために「入力」を保存したいと思います。

ありがとうございます!

+0

実行時エラーが表示されますが、最初に試してみてください。 "%% message.getProperty(" content ")。replace("/n "、" "%>" _ – tartak

答えて

1

JSONエンコーディングのようなものを使用して、JavaScriptソースに組み込むために文字列を安全にする必要があります。とにかく、明らかなXSS攻撃を防ぐためにこれを行うべきです。

JavaScriptでは、文字列定数に生の改行文字は使用できません。あなたが望むなら、あなた自身のEL関数を作成して文字列を消毒し、印刷できない文字を\uXXXXエスケープに変換し、埋め込み引用符がバックスラッシュで始まることを確認することができます。

+0

ありがとうございます。 JSONエンコーディングに関するいくつかの詳細を共有できますか?これは私がサーバー側かJavaScript経由で行うべきものですか? – user1152327

+0

これはサーバー側で行う必要があります。直接使用することも、あなた自身のEL機能で包むこともできる[Googleツールキット](http://code.google.com/p/json-simple/)があります。 – Pointy

+0

文字列をJSONオブジェクトとしてエンコードして、.String()で抽出するだけで十分ですか? – user1152327

関連する問題