Servlet中的转发与重定向的区别
Posted 64byte
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet中的转发与重定向的区别相关的知识,希望对你有一定的参考价值。
转发
为request对象、在服务器端执行的
代码: request.getRequestDispatcher("/login.html").forward(request, response);
转发中的url, 写/与不写都是一样的. 推荐写
客户端的url不会改变
重定向
为response对象、在客户端执行
代码: response.sendRedirect("/hello/BServlet");
重定向写/开头, 一定需要写: /项目名/资源 绝对路径 推荐写
- 直接在地址栏输入一个url访问某个资源, 就是一个重定向
- 通过超链接,表单提交的方式,也是一个重定向
请求转发与重定向比较
l 请求转发是一个请求,而重定向是两个请求;
l 请求转发后浏览器地址栏不会有变化,而重定向会有变化,因为重定向是两个请求;
l 请求转发的目标只能是本应用中的资源,重定向的目标可以是其他应用;
l 请求转发对AServlet和BServlet的请求方法是相同的,即要么都是GET,要么都是POST,因为请求转发是一个请求;
l 重定向的第二个请求一定是GET;
l 请求转发是在服务端内部执行的,而重定向是在客户端执行的.
小技巧: 成功: 一般使用重定向进行跳转,
如果从request域获取数据, 一定使用转发
以上是关于Servlet中的转发与重定向的区别的主要内容,如果未能解决你的问题,请参考以下文章