Java サーバーサイド開発 - サーブレット: 202、サーブレット実行プロセスの紹介: get リクエストと post リクエスト、エンコーディングなど。

免責事項: このチュートリアルには料金はかかりません。転載は歓迎です。著者の労働結果を尊重し、商業目的で使用してはなりません。侵害については調査する必要があります。

記事ディレクトリ

4. リクエストの取得とリクエストの投稿

(1) ブラウザはどのような状況で get リクエストを送信しますか?

(2) ブラウザはどのような状況でポストリクエストを送信しますか?

(3) getリクエストの特徴

(4) 投稿リクエストの特徴

5. リクエストパラメータ値を取得するにはどうすればよいですか?

6. コーディング関連の問題

(1) サーブレットはどのように中国語を出力しますか?

a、文字化け問題の原因

b、解決策

(2) フォームに中国語パラメータが含まれていますが、どのように対処すればよいでしょうか?

a、文字化け問題の原因

b、解決策:

7. 常識: エンコード、デコード、Unicode エンコード

8. 練習:

9. 初心者向けの注意事項:


 

4. リクエストの取得とリクエストの投稿

(1) ブラウザはどのような状況で get リクエストを送信しますか?

a, ブラウザのアドレスバーにアドレスを直接入力します。

b、リンクをクリックします

c、フォームのデフォルトの送信方法

(2) ブラウザはどのような状況でポストリクエストを送信しますか?

a、フォームメソッドを「post」に設定します。

(3) getリクエストの特徴

a、リクエスト パラメータはリクエスト リソース パスの末尾に追加されます。

少数のパラメータ (リクエスト行には 1 行しかないため、約 2K しか保存できません)

左右のデータ)。

b、リクエストパラメータがブラウザのアドレスバーに表示されます(ルーターは記録します)

リクエストアドレス)。

(4) 投稿リクエストの特徴

a、リクエストパラメータはエンティティコンテンツに追加され、多くのパラメータを追加できます。

パラメータ。

b、比較的安全ですが、ポストリクエストはリクエストパラメータを変更しません。

暗号化処理(httpsプロトコルを使用してデータのセキュリティを確保できます)。

5. リクエストパラメータ値を取得するにはどうすればよいですか?

1) 文字列 request.getParameter(String paramName);

注: paraName に対応する値が存在しない場合は、null を返します。

2) String[] request.getParameterValues(String paramName);

同じ名前のパラメータが複数ある場合にこのメソッドを使用します。

6. コーディング関連の問題

(1) サーブレットはどのように中国語を出力しますか?

a、文字化け問題の原因

デフォルトでは、out.println は「iso-8859-1」を使用します。

エンコードします。

b、解決策

response.setContentType("text/html;charset=utf-8");

エンコード形式は中国語のみをサポートする必要があることに注意してください。たとえば、gbk に設定することもできます。

このコード行は次の 2 つのことを行います。

機能 1:メッセージ ヘッダー (コンテンツ タイプ) を生成して伝える

ブラウザとサーバーから返されるデータ型とエンコード形式

機能2: out.printlnが出力する際に​​使用するエンコード形式も設定します。

(2) フォームに中国語パラメータが含まれていますが、どのように対処すればよいでしょうか?

知らせ:

ここで話しているのは、フォームに中国語パラメータが含まれていることと、フォームの post/get 送信メソッドのエンコード処理の問題です。

初心者にも簡単で、中国語のようなアドレスを直接書いてブラウザ上でテストできます。

http://localhost:8080/web02/hello?name=yyh_handsome 華

それは違います、同じものではありません。

a、文字化け問題の原因

フォームが送信されると、ブラウザはフォーム内で中国語を使用します。

フォームが配置されているページをブラウザが開くときのエンコード形式がエンコードされます。

b、解決策:

方法 1:

ステップ 1、フォームが配置されているページが指定されたエンコード形式に従って開かれていることを確認します。

<meta http-equiv="コンテンツ タイプ"

content="text/html;charset=utf-8">

ステップ 2、指定されたエンコード形式に従ってサーバーにデコードさせます。

 request.setCharacterEncoding("utf-8");

投稿リクエストの場合のみ有効です。

方法 2:

ステップ1、上記と同じ。

ステップ2、

名前 = 新しい文字列(

name.getBytes("iso-8859-1"),"utf-8");

7. 常識: エンコード、デコード、 Unicode エンコード

a、Java 言語はメモリ内で Unicode 形式 (文字セット) でエンコードされます。

キャラクターを保存します。

b、エンコーディング: Unicode エンコーディング形式に対応するバイト配列を次のように変換します。

特定のローカル エンコード形式 (gbk、utf-8、gb2312) に対応するバイト

配列。

c、デコード: ローカルのエンコード形式に対応するバイト配列を次のように変換します。

Unicode エンコード形式に対応するバイト配列。

8. 練習:

9. 初心者向けの注意

  1. サーブレット内のコードを変更するために tomact を再起動する必要はありませんが、再デプロイする必要があります。
  2. プロジェクト名を変更します: プロジェクト名、プロパティ、MyEclipse、Web、Web Context-root、「/現在のプロジェクト名」
  3. アドレスをテストし、ブラウザ上で試してください。MyEclipse に参加しないでください
  4. System Editor で開くと、「Light and Shadow Viewer」などのソフトウェアが開きます [表示、編集、コピー&ペーストが簡単]
  5. Web プロジェクト: パッケージ名に中国語の文字とアンダースコアが含まれていますが、エラーは報告されません

おすすめ

転載: blog.csdn.net/YuDBL/article/details/126615326