Response如何实现重定向
作者:一个很懒的人
这篇文章主要介绍了Response如何实现重定向方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
1.重定向
重定向 作用在客户端 ,客户端将请求发送给服务器后,服务器响应给客户端一个新的请求地址,客户端 重新发送新请求 。
重定向数据传递
重定向特点
- 重定向是客户端行为。
- 重定向是浏览器做了至少两次的访问请求。
- 重定向浏览器地址改变。
- 重定向两次跳转之间传输的信息会丢失(request范围)。
- 重定向可以指向任何的资源,包括当前应用程序中的其他资源、同一个站点上的其他应用程序中的资源、其他站点的资源。
重定向特点
当两个Servlet需要传递数据在 同一个站点上的其他应用程序中的资源 时,选择forward转发。
不建议使用sendRedirect进行传递
2.示例代码(A重定向到B)
AServlet:
@WebServlet(value = "/a") public class AServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //重定向及传递数据 resp.sendRedirect("/WebProject_war_exploded/b?username=tom"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req,resp); } }
BServlet:
@WebServlet(value = "/b") public class BServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //重定向通过请求方式获取数据 String username=req.getParameter("username"); System.out.println(username); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req,resp); } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。