学习总结

1. 转发和重定向

转发

  1. 转发原理图

  2. 转发方法
    1)request对象与转发相关方法
      request.getRequestDispatcher("/要跳转的地址").forward(request,response);

重定向

  1. 重定向原理图

  2. 重定向方法
    1)response对象与重定向相关方法
      response.sendRedirect("/要跳转的地址");

转发和重定向的区别:

区别 转发 forward 重定向 redirect
地址栏不同 不会发生变化 会发生变化
根目录 包含项目访问地址 没有项目访问地址
跳转位置 服务器端进行的跳转,不可访问站外资源 浏览器端进行的跳转,可以访问站外资源
请求对象(域)中数据 请求域数据不会丢失,因为是同一个请求 请求域数据会丢失,因为不是同一个请求
是否可以访问WEB-INF下面的资源 可以访问WEB-INF下面的资源(包含静态和动态) 不可以访问WEB-INF下面的资源(包含静态和动态)

什么时候用转发什么时候用重定向

  • 问:什么时候使用转发,什么时候使用重定向?
    1)如果要保留请求域中的数据,使用转发,否则使用重定向。以后访问数据库,增删改使用重定向,查询使用转发。

  • 问:转发和重定向后面的代码是否还会执行
    1)无论转发或重定向后续的代码都会执行

三大作用域

作用域类型

作用域 类型 作用范围 操作
请求域 HttpServletRequest 只在同一次请求中起作用 request.setAttribute(String key, Object value);
request.getAttribute(String key);
会话域 HttpSession 同一个回话中起作用
一次会话是从浏览器打开开始,到关闭浏览器结束
request.getSession().setAttribute(String key, Object value);
request.getSession().getAttribute(String key);
上下文域 ServletContext 同一应用中起作用
上下文域也称application应用程序域,application作用范围为程序开始运行到运行停止
request.getServletContext().setAttribute(String key, Object value);
request.getServletContext().getAttribute(String key);

作用域方法

  • 哪个作用域对象调用方法就操作对应的作用域数据
作用域相关方法 作用
Object setAttribute(“键”) 从中得到一个值
void setAttribute(“键”, Object数据) 向作用域中存储键值对数据
void removeAttribute(“键”) 删除作用域种的键值对数据

如何选择作用域

  • 先考虑作用范围小的作用域,如果小作用范围的作用域能满足需求就使用小作用范围的作用域
  • 由小到大的考虑顺序:请求域 --> 会话域 --> 上下文域

总结

以上就是对请求转发和JavaWeb三大作用域的详细介绍了,代码仅供参考,欢迎讨论交流。

最新文章

  1. 体验最火的敏捷——SCRUM(厦门,2014.1.4)
  2. phpstudy配置ssl
  3. hbase 问题记录
  4. Dlib is a modern C++ toolkit(非常全面的类库)
  5. 【Pro ASP.NET MVC 3 Framework】.学习笔记.8.SportsStore:管理
  6. poj2194Stacking Cylinders
  7. OpenCV坐标体系的初步认识
  8. 移动端 meta 标签笔记
  9. 主机控制器接口(HCI)
  10. NeHe OpenGL教程 第十二课:显示列表
  11. JQuery上传插件uploadify整理(Events)
  12. 新一代分布式任务调度框架:当当elastic-job开源项目的10项特性
  13. 一个页面多个iframe赋值
  14. SQL语句case when then的用法
  15. My third homework
  16. python类的内建方法
  17. 项目配置linux上, 配置文件访问不到
  18. 机器学习 第五篇:分类(kNN)
  19. 纯CSS方块转化梯形动画
  20. sysroot和prefix

热门文章

  1. 扩展我们的分析处理服务(Smartly.io):使用 Citus 对 PostgreSQL 数据库进行分片
  2. ASP.NET Core 6框架揭秘实例演示[18]:HttpClient处理管道
  3. OA办公软件篇(一)—组织架构
  4. tp限制访问频率
  5. java基础复习记录
  6. 软件工程homework-001
  7. Django基础二静态文件和ORM
  8. .NET6: 开发基于WPF的摩登三维工业软件 (10) - 机器人
  9. python3生成10个成绩列表,求其平均分
  10. python3输出“水仙花数”