关于java web中Filter和Servlet的一些理解
2013-10-10 00:00
633 查看
做java web开发 无论是新手还是老手 都不可避免的要接触到filter和servlet 乃至于很多情况下都要自定义filter和servlet 他们都是有生命周期的 基本的类似初始化方法和销毁方法比较好理解 不再赘述。
filter 是拦截器 过滤器的意思 当客户端发起一个请求的时候 请求信息以request对象的方法传入到服务端 在web.xml中 可以自定义很多filter web容器 将他们组织成类似一个锁链(chain)的东西 对请求进行拦截。如果你看过spring中aop部分的ProxyFactoryBean的源码 会发现里面的模式和filter几乎是一样的
这个里面的chain即是一个链 对调用某目前对象方法进行相应的拦截
但是在javax.servlet.Filter中 还有个dispatcher参数 这个参数的取值为REQUEST,FORWARD,INCLUDE和ERROR 表示该请求方式 默认情况下是REQUEST 也即浏览器发起的请求。 其它方式 比如request.getRequestDispatcher("xx").forward(request, response);这种方式 该filter是不进行拦截的。其它几个也是类似。
servlet你可以理解为一个处理动作 通过servlet-mapping中的url-pattern对请求路径进行相应的拦截 它是没有类似filter中的dispatcher参数的。
我们目前接触的比较多的filter有 CharacterEncodingFilter: 对请求内容进行统一编码
FilterDispatcher:struts2中的核心控制器
Servlet比较出名是springMVC中的DispatcherServlet 是一个标准的干净的MVC框架
filter 是拦截器 过滤器的意思 当客户端发起一个请求的时候 请求信息以request对象的方法传入到服务端 在web.xml中 可以自定义很多filter web容器 将他们组织成类似一个锁链(chain)的东西 对请求进行拦截。如果你看过spring中aop部分的ProxyFactoryBean的源码 会发现里面的模式和filter几乎是一样的
invocation = new ReflectiveMethodInvocation(proxy, target, method, args, targetClass, chain); // Proceed to the joinpoint through the interceptor chain. retVal = invocation.proceed();
这个里面的chain即是一个链 对调用某目前对象方法进行相应的拦截
但是在javax.servlet.Filter中 还有个dispatcher参数 这个参数的取值为REQUEST,FORWARD,INCLUDE和ERROR 表示该请求方式 默认情况下是REQUEST 也即浏览器发起的请求。 其它方式 比如request.getRequestDispatcher("xx").forward(request, response);这种方式 该filter是不进行拦截的。其它几个也是类似。
servlet你可以理解为一个处理动作 通过servlet-mapping中的url-pattern对请求路径进行相应的拦截 它是没有类似filter中的dispatcher参数的。
我们目前接触的比较多的filter有 CharacterEncodingFilter: 对请求内容进行统一编码
FilterDispatcher:struts2中的核心控制器
Servlet比较出名是springMVC中的DispatcherServlet 是一个标准的干净的MVC框架
相关文章推荐
- Java web 中关于Servlet的一些总结
- javaweb_关于Servlet一些基础知识笔记
- 关于servlet+jsp+java实现Web登陆页界面的一些笔记(一)
- 关于JAVAEE servlet filter listener 的作用以及在整个WEB响应过程中所处的位置和功能
- 关于servlet+jsp+java实现Web登陆页界面的一些笔记(二)
- 关于servlet+jsp+java实现Web登陆页界面的一些笔记(四)
- 关于servlet+jsp+java实现Web登陆页界面的一些笔记(三)
- 关于javaweb中servlet的理解。
- 关于WEB服务器与应用服务器的一些理解和区别
- java web.xml listener filter servlet
- java关于ServletConfig FilterConfig什么用
- 从Servlet到Spring:JavaWeb的一些MVC总结
- windows下关于使用eclipse开发web服务器后台项目完整配置(jsp+javabean+servlet)
- 关于Java 8 的一些理解
- 关于启动Tomcat出现异常:java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter
- java web hello world(二)基于Servlet理解监听
- java web 中 filter 与 servlet的关系
- java-web三大组件(Servlet/Filter/Listener)
- 关于java中一些代码的理解
- java web中servlet的概念理解之我见(纯为新手理解概念而写)