記事ディレクトリ
1. お願い
HttpServletRequest は、HTTP 環境でのサーブレット リクエストを表します。
1.1 一般的な方法
方法 | 説明する |
---|---|
文字列 getParameter(文字列名) | フォームコンポーネント名に基づいて送信データを取得します (注: サーバーはデータを受信するときに均一にデータを受信するために文字列を使用します) |
String[ ] getParameterValues(文字列名) | フォームコンポーネントが複数の値に対応する場合のリクエストデータを取得する |
void setCharacterEncoding(文字列文字セット) | 各リクエストのエンコーディングを指定します(ポストリクエストでのみ機能します) |
RequestDispatcher getRequestDispatcher(文字列パス) | ページにジャンプし、RequestDispatcher オブジェクトを返します。このオブジェクトの forward() メソッドは、リクエストの転送に使用されます。 |
request.setAttribute(“キー”,値); | 価値を保存する |
request.getAttribute(“キー”); | 値を取得した後、下向きに変換します |
1.2 クライアントがサーバーにデータを送信する
- フォームから送信 get/post
- タグを介してデータを送信 (送信を取得)
- アドレスバーから直接 splice -get リクエストを実行します
- js送信データ取得リクエスト
<a href="请求名?key=value&key=value&key=value...">
key=表单元素的控件名
value=表单中控件的value属性值
注:第一个参数使用?拼接,之后的参数使⽤&拼接,获取数据还是通过 String name=request.getParameter("name");
1.3 get と post の違い
得る | 役職 | |
---|---|---|
データ送信 | GETリクエストのデータをURLに付加してURLを分割して送信し、複数のパラメータを&で繋いでアドレスバーにデータを公開します。 | 要求されたデータを HTTP 要求パケットの本文に配置すると、データは公開されません。 |
転送データサイズ | 送信データは URL の長さによって制限されます (HTTP 仕様では URL の長さと送信データのサイズに制限はありませんが、実際の開発プロセスでは、GET の場合、特定のブラウザーとサーバーがURLの長さの制限) | 各サーバーは、POST 送信データのサイズに関する制限を規定します (Apache と IIS には独自の構成があります)。 |
安全性 | 低 (情報は URL で公開され、ログイン ページではブラウザのキャッシュとブラウザの履歴を通じてアカウントのパスワードが表示される可能性があり、GET リクエストによって送信されたデータもクロスサイト リクエストのフロジェリ攻撃を引き起こす可能性があります) | 高い |
- | URL エンコード形式では uniclde ではなく ASCII エンコードが使用されるため、非 ASCII 文字はすべて送信前にエンコードする必要があります。 | - |
2. 対応
サービス API では、HttpServletResponse インターフェイスが定義されています。これは、ServletResponse インターフェイスから継承され、HTTP 応答メッセージをカプセル化するために使用されます。
HttpServletResponse インターフェイスは、応答ステータス コード、メッセージ ヘッダー、およびメッセージ本文をクライアントに送信するためのメソッドを定義します。
2.1 一般的な方法
方法 | 説明する |
---|---|
void addCookie(Cookie var1) | 応答に Cookie を追加する |
void sendRedirect(String var1) | 応答コードを送信してブラウザを指定された場所にジャンプします |
PrintWriter getWriter() | 文字ストリームを取得し、文字ストリームの write(String s) によって文字列を応答バッファに設定すると、Tomcat は応答バッファの内容を Http 応答に組み立ててブラウザに返します。 |
setContentType() | 応答内容の種類を設定する |
2.2 リダイレクトと転送
どちらもページにジャンプするために使用されます
リダイレクト | フォワード |
---|---|
応答.sendRedirect() | request.getRequestDispatcher("…/success.jsp").forward(リクエスト,レスポンス) |
アドレス バーが変更され、リクエストに保存されたデータが失われます。 | アドレスバーにはリクエストページのアドレスが表示され、リクエストデータを保存できます。 |
2 つのリクエスト (アドレス バーが 2 回変更された) と 2 つの応答 | 1 つのリクエストと 1 つの応答 |