JavaWeb学习——页面跳转方式

摘要:本文主要学习了请求转发和响应重定向,以及两者之间的区别。

请求转发

相关方法

使用HttpServletRequest对象的 getRequestDispatcher(String path) 方法获取RequestDispatcher类型的转发器。

使用RequestDispatcher转发器的 forward(ServletRequest request, ServletResponse response) 方法进行转发。

实例

 @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("/test.html").forward(req, resp);
}

响应重定向

相关方法

使用HttpServletResponse对象的 sendRedirect(String location) 方法进行重定向到其他资源。

实例

 @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.sendRedirect("/HelloWorld/test.html");
}

请求转发和响应重定向的区别

发送次数

转发只发送一次请求。

重定向发送两次请求。

地址栏变化

转发地址栏没有变化,执行刷新相当于重新发送信息到原页面。

重定向地址栏有变化,执行刷新将发给新页面。

访问限制

转发可以访问WEB-INF下的资源。

重定向不可以访问WEB-INF下的资源。

发生位置

转发发生在服务器内部。

重定向发生在浏览器端。

跳转地址

转发不能跳转到本应用外的URL。

重定向可以跳转到任意URL。

访问属性

通过 request.setAttribute(); 设置的属性,如果让下一个页面访问,只能通过转发。

通过 session.setAttribute(); 设置的属性,如果让下一个页面访问,转发和重定向都可以,建议使用转发。

最新文章

  1. mysql授权登录用户
  2. pdo调用
  3. 窗口移动--基类(BaseForm)
  4. HDU1002大数加法
  5. Mybatis源码解析(一)(2015年06月11日)
  6. 勾股数组及其应用uva106
  7. 做一个常规的banner图——负边距的使用、banner图的拼法
  8. 【20171025晚】alert(1) to win 第五题 正则表达式过滤
  9. SQL练习题题目
  10. Redis持久化之RDB
  11. 阿里云 ECS centos java timer进程异常/混乱......的解决方法
  12. SQL Server查询优化器的工作原理
  13. springcloud 服务调用的两种方式
  14. open '/dev/hwlog_switch' fail -1, 13. Permission denied
  15. oracle-闪回技术2
  16. linux软连接(转)
  17. MFC控件之Combo Box
  18. JAVA实现概率计算(数字不同范围按照不同几率产生随机数)
  19. par函数bty参数-控制绘图边框
  20. 洛谷 P4585 [FJOI2015]火星商店问题 解题报告

热门文章

  1. 2019-9-28:渗透测试,phpstudy后门,利用复现
  2. (四十六)golang--网络编程(简易的聊天系统)
  3. JAVA合并多个word文档根据文章标题生成目录
  4. Docker 遇到的一些错误
  5. mac 下面 vim 编辑器 开启语法高亮
  6. php: $$str
  7. jQuery九宫格抽奖
  8. PHP经典面试题目汇总
  9. Jest测试框架入门
  10. 不服跑个分:ARM鲲鹏云服务器实战评测——华为云鲲鹏KC1实例 vs. 阿里云G5实例【华为云技术分享】