请求的重定向和请求分派
来源:互联网 发布:删除Linux的引导启动项 编辑:程序博客网 时间:2024/05/19 18:10
请求的重定向和请求分派
重定向
– HttpServletRequest接口提供的sendRedirect()方法用于生成302响应码和Location响应头,从而通知客户端去重新访问Location响应头中指定的URL,其完整的定义语法如下:
• public void sendRedirect(String location) throws IOException;
– 其中的location参数指定了重定向的URL,它可以使用绝对URL和相对URL,Servlet容器会自动将相对URL转换成绝对URL后,再生成location头字段。
请求分派
– Servlet API中定义了一个RequestDispatcher接口,俗称请求分派器。它定义了如下两个方法:
• public void forward(ServletRequest request, ServletResponse response)
• throws ServletException,IOException;
• public void include(ServletRequest request, ServletResponse response)
• throws ServletException,IOException;
– 获取RequestDispatcher实例的方式主要有两种:
• 调用ServletContext接口提供的getRequestDispatcher(String url)方法。
• 调用ServletRequest接口提供的getRequestDispatcher(String url)方法。
重定向和请求分派的比较
HttpServletResponse的sendRedirect()方法实现的重定向和RequestDispatcher的forward()方法实现的请求转发的比较:
1、请求分派只能将请求转发给同一个Web应用中的其他组件;而重定向不仅可以定向到当前应用程序中的其他资源,也可以重定向到其他站点的资源上。
2、重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;而请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。
3、请求分派的发起者和被调用者之间共享相同的request实例和response实例,它们属于同一个“请求/响应”过程;而重定向的发起者和被调用者使用各自的request实例和response实例,它们各自属于独立的“请求/响应”过程。
利用请求域属性传递对象数据
HttpServletRequest接口中提供了几个方法用来操作请求实例中存储的对象:
(1)public void setAttribute(String name, Object obj):将对象存储进HttpServletRequest实例中。
(2)public Object getAttribute(String name):检索存储在HttpServletRequest实例中的对象。
(3)public Enumeration getAttributeNames():返回包含HttpServletRequest实例中的所有属性名的Enumeration对象
(4)public void removeAttribute(String name):从HttpServletRequest实例中删除指定名称的属性。
- 请求的重定向和请求分派
- 重定向和请求分派的比较
- 重定向和请求分派的比较
- 重定向和请求分派
- 重定向和请求分派
- 重定向和请求分派
- 重定向和请求分派
- 重定向和请求分派
- Servlet中的重定向和请求分派
- 重定向、请求分派、ServletConfig和ServletContext
- 重定向和请求分派区别
- Servlet中,重定向和请求分派的区别!!!
- servlet的重定向与请求分派
- 重定向与请求分派的比较
- 重定向与请求分派
- servlet之路(大学)---请求分派和重定向
- Servlet的自我理解之5:请求分派和重定向对比测试实现
- 浅谈servlet中重定向与请求分派
- 我思故我在系列—数据结构面试NO.15(题目搜集整理者JULY,非常感谢!!)
- Hadoop源代码分析(MapReduce概论)
- 纯JAVA压缩解压缩 - cntinker的使用
- 调用windows播放器
- Servlet的应用--- ServletConfig和ServletContext
- 请求的重定向和请求分派
- ELF文件备忘
- 实战技巧:精进Vim的使用(一)
- Hadoop源代码分析(包org.apache.hadoop.mapreduce)
- linux下的动态链接库(DLL)
- s3c2440的SD/MMC的应用
- 学习笔记-- IPhone 中使用Sqlite 保存数据
- Hadoop源代码分析(包mapreduce.lib.input)
- ajax异步原理