重定向的2个servlet中的request、response是不同的对象
重定向就相当于:浏览器向服务器的一个地址请求,服务器向浏览器发送一个新的地址,浏览器重新向新的地址请求
package cn.hncu.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RedirOneServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("RedirOneServlet....Get....");
String name=request.getParameter("name");
String age=request.getParameter("age");
//这里如果前端请求中文,这里需要使用String转码
System.out.println(name+","+age);
//如果想要向重定向的servlet传输参数,可以下面的方式传输---这种方式不能隐藏地址名,以及参数内容
response.sendRedirect("/ServletDemo4/RedirTwoServlet?name="+name+"&age="+age);
//向第2个servlet传参
// response.sendRedirect(getServletContext().getContextPath()+"/RedirOneServlet");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("RedirOneServlet....Post....");
String name=request.getParameter("name");
String age=request.getParameter("age");
//这里如果前端请求中文,这里需要使用String转码
System.out.println(name+","+age);
//通过重定向,request、response不共享,是重新new出来的内存---数据不共享.使用通过request.setAttribute(arg0, arg1)也不可以传输数据
//因为是不同的request对象
// response.sendRedirect("/ServletDemo4/RedirTwoServlet");
// response.sendRedirect("http://my.youkuaiyun.com/?ref=toolbar");--访问站外的地址,必须要加http://头
//访问站外的地址只能通过重定向来访问
}
}
package cn.hncu.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RedirTwoServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("RedirTwoServlet....Get....");
String name=request.getParameter("name");
String age=request.getParameter("age");
//这里如果前端请求中文,这里需要使用String转码
System.out.println(name+","+age);
// response.sendRedirect("/"+getServletContext()+"/RedirOneServlet");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("RedirTwoServlet....Post....");
// response.sendRedirect("/ServletDemo4/RedirOneServlet");
}
}