Java 请求转发和重定向的区别以及JavaWeb三大作用域
2024-09-05 04:56:25
学习总结
1. 转发和重定向
转发
转发原理图
转发方法
1)request对象与转发相关方法
request.getRequestDispatcher("/要跳转的地址").forward(request,response);
重定向
重定向原理图
重定向方法
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三大作用域的详细介绍了,代码仅供参考,欢迎讨论交流。
最新文章
- 体验最火的敏捷——SCRUM(厦门,2014.1.4)
- phpstudy配置ssl
- hbase 问题记录
- Dlib is a modern C++ toolkit(非常全面的类库)
- 【Pro ASP.NET MVC 3 Framework】.学习笔记.8.SportsStore:管理
- poj2194Stacking Cylinders
- OpenCV坐标体系的初步认识
- 移动端 meta 标签笔记
- 主机控制器接口(HCI)
- NeHe OpenGL教程 第十二课:显示列表
- JQuery上传插件uploadify整理(Events)
- 新一代分布式任务调度框架:当当elastic-job开源项目的10项特性
- 一个页面多个iframe赋值
- SQL语句case when then的用法
- My third homework
- python类的内建方法
- 项目配置linux上, 配置文件访问不到
- 机器学习 第五篇:分类(kNN)
- 纯CSS方块转化梯形动画
- sysroot和prefix
热门文章
- 扩展我们的分析处理服务(Smartly.io):使用 Citus 对 PostgreSQL 数据库进行分片
- ASP.NET Core 6框架揭秘实例演示[18]:HttpClient处理管道
- OA办公软件篇(一)—组织架构
- tp限制访问频率
- java基础复习记录
- 软件工程homework-001
- Django基础二静态文件和ORM
- .NET6: 开发基于WPF的摩登三维工业软件 (10) - 机器人
- python3生成10个成绩列表,求其平均分
- python3输出“水仙花数”