要求の転送
ブラウザの要求は、の受信に応答して、一度だけ発行され
、直接に搬送されたデータを要求することができるリソース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");