servlet的重定向(response.sendRedirect())

来源:互联网 发布:比特币挖矿软件最新版 编辑:程序博客网 时间:2024/05/24 07:12

重定向的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.csdn.net/?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");}}

阅读全文
0 0
原创粉丝点击