2

HTTP アップロード サーブレット (http-post) があり、ユーザーはいくつかのフォーム フィールドと共に XML ファイルをアップロードできます。不正なリクエスト (null 値など) があったかどうかを確認するために、いくつかの検証チェックを行いました。そこで、次のコードチャンクを使用してそれを実行しました。

String myID = request.getParameter("ID");
if (myID .equalsIgnoreCase("")|| myID ==null)
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
else
myBean.setMyId(myID );

response.setStatus を設定したので、response.getStatus がどのようになるかを確認したかったのですが、HttpServletResponse クラス (私の応答は HttpServletResponse) にステータスを表示できるメソッドが見つかりませんでした。アップロードへの応答として、ステータスを Server Response というフィールドとして出力する必要がありました。提案を手伝ってください。

4

2 に答える 2

0

「ステータスをフィールドとして出力する」とは、ステータスコードをHTMLで表示することを意味します。これをウェブアプリで行う一般的な方法は、リクエスト処理ロジック(コントローラー)がステータスコードをどこかに(モデル)保存して、 HTML(ビュー)を作成するメカニズム、つまりMVCパターンで取得および表示できます。ビューをレンダリングするために必要なデータを格納する場所としてHttpServletResponseを考慮しないでください。それはユーザーへのあなたの導管に他なりません。ビューのレンダリングに必要なデータは、おそらくリクエスト属性など、別の場所に配置する必要があります。

于 2011-09-13T01:34:39.450 に答える
0

サーブレット API はこれを直接行う方法を提供していませんが、これを行う方法はいくつかあります。

  • クリーンな方法は、 を作成して、を取得できるラッパー クラスでFilter実際のオブジェクトをラップすることです。HttpServletResponsestatus

  • ハック/移植性のない方法は、の実際の実装クラスをHttpServletResponse見て、追加のパブリックメソッドがあるかどうかを確認することです。(または、反射的にアクセスできる非公開のメソッドまたはフィールドでさえ...それは本当に悪い考えですが、IMO)

于 2011-09-12T22:44:24.367 に答える