サーブレット要求の転送とリダイレクト

要求の転送

ブラウザの要求は、の受信に応答して、一度だけ発行され
、直接に搬送されたデータを要求することができるリソース2に対して転送要求
リクエスト路3ブラウザのアドレスバーは、ユーザによって提出された
4のみをリソース現在適用されているにジャンプ
にservlet1

		request.setCharacterEncoding("utf-8");
		String name = request.getParameter("name");
		String age = request.getParameter("age");
		System.out.println(name);
		System.out.println(age);
		request.getRequestDispatcher("other").forward(request, response);

servlet2

		String name=request.getParameter("name");
		String age = request.getParameter("age");
		System.out.println("name="+name+" age="+age);
		response.setContentType("text/html;charset=utf-8");
		response.getWriter().write(name+age+"this is pages");

リダイレクト

ブラウザの要求は、二回発行の2つの応答を受信した
データに直接リクエストを提出2.リソースをユーザーにリダイレクトすることができない
、ブラウザのアドレスバーは、ユーザーが要求を提出するのではなく、リダイレクトされたリクエスト路3パス。あなたは、重複送信フォームを防ぐことができます。
4.リダイレクトを使用すると、他のアプリケーションのリソースにジャンプすることができ、他のリソースに現在のアプリケーションだけでなく、ジャンプすることができます。
5.リダイレクトサーバは、リソースの消費を減らすことができます。
1つのサーブレット

request.setCharacterEncoding("utf-8");
		String name = request.getParameter("name");
		String age = request.getParameter("age");
		System.out.println(name);
		System.out.println(age);
		name = URLEncoder.encode(name, "utf-8");//解决重定向时的乱码问题:编码
		response.sendredircect("other");

他のServet

		String name=request.getParameter("name");
		String age = request.getParameter("age");
		name = URLDecoder.decode(name, "utf-8");//解码
		System.out.println("name="+name+" age="+age);
		response.setContentType("text/html;charset=utf-8");
		response.getWriter().write(name+age+"this is pages");
公開された114元の記事 ウォンの賞賛8 ビュー5489

おすすめ

転載: blog.csdn.net/OVO_LQ_Start/article/details/104730570