Filter(过滤器/拦截器)
来源:互联网 发布:linux 进城kill不掉 编辑:程序博客网 时间:2024/05/21 22:44
Filter 可以分别在请求处理前和处理后执行相应的操作
生命周期:随着服务器的启动创建,随着服务器的关闭销毁
构造函数 –> init –> doFilter –> … –> destroy
chain.doFilter(request, response);
上边代码:拦截请求
下边代码:拦截响应
需要在 web.xml 进行配置
<filter> <display-name>LoginFilter</display-name> <filter-name>LoginFilter</filter-name> <filter-class>com.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/second.jsp</url-pattern> </filter-mapping>
多个 filter 组成了过滤器链(filter chain),执行顺序由在 web.xml 中的配置顺序决定
拦截到请求后需要使用 chain.doFilter(request, response); 进行放行交给下一个对象进行处理
登录判断:
1. 登录后把账号存入 session
2. 进行登录判断就是判断 session 有无账号信息
有:登录过
无:没有登录过
如果对每个页面都写代码进行登录判断比较麻烦也不利于后期的维护和扩展,通常我们会使用过滤器简化这个操作
字符编码:
tomcat 8 之前 get 请求的参数都是采用 iso-8859-1 方式,之后都是 utf-8
如果编码和解码方式不一致,就会产生乱码
tomcat7:
编码:iso-8859-1
解码:utf-8
修改 tomcat 插件编码方式:
<configuration> <uriEncoding>utf-8</uriEncoding> </configuration>
无论是哪个版本的 tomcat post 请求参数在请求体中都是 iso-8859-1,我们需要在取中文参数之前设置请求体的编 `request.setCharacterEncoding("utf-8");`通常会使用过滤器对所有的请求进行拦截,设置编码方式为 utf-8,就不用每次都写这行代码了。这个过滤器通常不需要我们自己写,tomcat 和 springmvc 都提供的有,我们只需要拿来配置,即可使用。
<filter> <filter-name>setCharacterEncodingFilter</filter-name> <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>setCharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
设置输入出的内容是 html,采用的编码格式是 utf-8
response.setContentType("text/html; charset=UTF-8"); response.getWriter().println("get = " + account);
阅读全文
0 0
- Filter(过滤器/拦截器)
- 过滤器(filter)、拦截器(interceptor)、监听(listener)
- 过滤器(filter)和拦截器(intercept)的区别
- 过滤器(filter)和拦截器(interceptor)区别
- 过滤器(filter)和拦截器(interceptor)区别
- Filter(过滤器)与Interceptor(拦截器)的区别
- 过滤器(filter)和拦截器(interceptor)区别
- 过滤器(filter)和拦截器(interceptor)区别
- 过滤器(filter)和拦截器(interceptor)区别
- Filter过滤器(拦截器)实现AOP思想
- Filter(过滤器/拦截器)的作用
- filter过滤器 和拦截器的区别?
- 过滤器(Filter)、拦截器(Interceptor)、监听器(Listener)
- 过滤器(Filter)、拦截器(Interceptor)、监听器(Listener)
- Filter(过滤器)和Interceper(拦截器)区别
- 拦截器Interceptor 与过滤器 Filter
- filter(过滤器)与拦截器(AOP)区别
- 拦截器与过滤器Filter的区别
- MariaDB高可用架构之MHA
- 手动部署和使用工具(Cloudera Manager、Ambari)部署Hadoop对比
- 你所不了解的React Native
- centos7安装mariadb
- SVG-Android(资源替代详解)源码详解
- Filter(过滤器/拦截器)
- Win7+Ubuntu双系统,如何卸载Ubuntu系统?
- html5手机app开发Echarts手机全屏展示
- Android Material Design:使用Palette优化界面色彩搭配。
- 做了44年保洁员,一生只会5个字,她却成为香港大学院士
- 最著名的数学家一般也是最著名的力学家
- 【Oracle】10g查看trace生成文件位置及文件名称
- 数据结构基本概念
- 【SSH网上商城】SSH框架简介