Servlet中forward和redirect(sendRedirect)有什么区别以及filter(过滤器)是什么?
来源:互联网 发布:幼儿英语网络课程 编辑:程序博客网 时间:2024/05/21 16:54
在设计Web应用程序时,经常需要把一个系统进行结构化设计,即按照模块进行划分,让不同的Servlet来实现不同的功能,例如可以让其中一个Servlet接收用户的请求,另外一个Servlet来处理用户的请求。为了实现这种程序的模块化,就需要保证在不同的Servlet之间可以相互跳转,而Servlet中主要有两种实现跳转的方式:forward与redirect方式。
forward是服务器内部的重定向,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,而客户端并不知道,因此在客户端浏览器的地址栏中不会显示转向后的地址,还是原来的地址。由于在整个定向的过程中用的是同一个Request,因此forward会将Request的信息带到被定向的JSP或Servlet中使用。
redirect则是客户端的重定向,是完全的跳转,即客户端浏览器会获取到跳转后的地址,然后重新发送请求,因此浏览器中会显示跳转后的地址。同事,由于这种方式比forward方式多了一次网络请求,因此其效率要低于forward方式。需要注意的是,客户端的重定向可以通过设置特定的HTTP头或改写JavaScript脚本实现。
下图可以更好的说明二者的区别:
鉴于以上的区别,一般当forward方式可以满足需求时,尽可能地使用forward方式。但在有些情况下,例如,需要跳转到下一个其他服务器上的资源,则必须使用redirect方式。
引申:filter的作用是什么?主要实现什么方法?
filter使用户可以改变一个request并且修改一个response。filter不是一个Servlet,它不能产生一个response,但它能够在一个request到达Servlet之前预处理request,也可以在离开Servlet时处理response。filter其实是一个“Servlet Chaining”(Servler 链)。
一个filter的作用包括以下几个方面:
1)在Servlet被调用之前截获
2)在Servlet被调用之前检查Servlet Request
3)根据需要修改Request头和Request数据
4)根据需要修改Response头和Response数据
5)在Servlet被调用之后截获
- Servlet中forward和redirect(sendRedirect)有什么区别以及filter(过滤器)是什么?
- sendRedirect()和forward()方法有什么区别?
- Servlet中 forward 和 redirect的区别
- Servlet中forward和redirect的区别
- Servlet中forward和redirect的区别
- Servlet中forward和redirect的区别
- Servlet中forward和redirect的区别
- Servlet中forward和redirect的区别
- Servlet中forward和redirect的区别
- Servlet中forward和redirect的区别
- Servlet中FORWARD和redirect的区别
- Servlet中forward和redirect的区别
- Servlet中forward和redirect的区别
- Servlet 中 forward 和 redirect 的区别
- Servlet中forward和redirect的区别
- 使用forward和sendRedirect进行重定向有什么区别
- servlet中 redirect ,forward区别
- servlet forward和redirect区别
- Spark源码学习笔记2-JobProgressListener
- 关于vector
- linux安装node源码
- Java字符串与01串的转换
- 高级数据结构一书中的内容来源
- Servlet中forward和redirect(sendRedirect)有什么区别以及filter(过滤器)是什么?
- node_debug调试代码
- node-NPM常用命令
- mysql存储过程
- 541. Reverse String II
- [面试算法] 01背包 && 完全背包
- Java HashSet TreeSet LinkedHashSet 三种Set接口实现的比较
- SQL SELECT
- 剑指Offer面试题28字符串的排列组合(递归和栈)