2009-06-11 4 views
0

入力タイプが隠されていて奇妙な問題が発生しています。私は約2MBのデータをカンマで区切った形式で隠しフィールドに保存しています。そのデータをjspにポストしてヘッダを設定するだけです(出力はExcelファイルとして認識されます)。そしてデータをエコーし​​ます。入力タイプ「隠し」とテキストエリア

このデータを保持する変数がjsp側に空であることがわかりましたが、サーバーに投稿されていることがわかりましたが(私はHTTPスニファで見ています)、すべてのデータはそうです隠しフィールドに正しく含まれています(私は火かぶ虫でそれを見ています)。ただし、オブジェクトタイプをテキストエリアに変更すると、サーバー側でデータが正しく受信されます。

私が観察しているもう一つの奇妙なことは、データにURLエンコーディングを使用すると、テキスト領域を使用しても何もサーバーに到達しないということです。 URLエンコードを使用していないのに非表示のフィールドがある場合、フィールドには何も保存されません(ファイヤーバグでチェックすると空になります)。どちらか理解できません...

隠しフィールドが大量のデータをTomcat Webサーバーにポストするのを防ぐ特別なセキュリティ設定があるのだろうかと思います。誰かがそれについて何か知っていますか?

それはどんな違いをした場合、私は、フォーム上の既定のENCTYPEを使用していますが(アプリケーション/ x-www-form-urlencodedで)

私は現在、「テキストをされている使用して、視認性にスタイルを設定しています隠された "しかし、何が起こっているのか分からないことが気になります。...一言お願いします。

+0

に置き換えることにより、二重引用符をエスケープする必要が

<input type="hidden" value="Double " quote" /> 

はPOSTに設定され、フォームのメソッドですか? – RedFilter

答えて

4

私は隠しフィールドに2MBのデータを持たせても間違いではないかと思います。あなたは、セッション状態の一部としてサーバー上にそのような種類のものを格納し、実行中にサーバーとユーザーの間で前後に送信しないようにしてください。代わりに、2MBのデータを検索するために使用されるセッション変数*には、隠しフィールドまたはクッキーを使用します。

※これは絶対に行わないでください。 JSPはすでにセッション状態をサポートしています。

0

サーバーは、テキストエリアとテキストボックスの違いを認識できません。すべてのフォーム要素は、単に名前と値のペアとして掲載されます。

おそらく、隠れた入力要素のvalue属性を終了するデータのどこかに二重引用符があります。例えば:あなたは&quot;

<input type="hidden" value="Double &quot; quote" /> 
関連する問題