特点

1)Filter是依赖于Servlet容器,属于Servlet规范的一部分,在Servlet API中定义了三个接口类:Filter, FilterChain, FilterConfig。

2)基本功能是对 调用 Servlet 的过程进行拦截,从而在 Servlet 进行响应处理的前后实现一些特殊的功能。

3)需要在 web.xml 文件中进行注册和设置它所能拦截的资源。

编码

public class UserNoFilter implements Filter { 

	private FilterConfig filterConfig; //获取参数配置

	public void init(FilterConfig fConfig) throws ServletException {
this.filterConfig = fConfig;
} /**
* 业务逻辑判断
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { String initUser = filterConfig.getInitParameter("userNo");
String userNo = request.getParameter("userNo");//从提交请求获取用户账号 if(!initUser.equals(userNo)){
request.setAttribute("message", "用户名不正确");
request.getRequestDispatcher("/index.jsp").forward(request, response);
return;
} chain.doFilter(request, response);
} public void destroy() { } }

web.xml参数

	<!-- 配置过滤器 -->
<filter>
<display-name>UserNoFilter</display-name>
<filter-name>UserNoFilter</filter-name>
<filter-class>com.demo.filter.UserNoFilter</filter-class>
<init-param>
<param-name>userNo</param-name>
<param-value>admin</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UserNoFilter</filter-name>
<url-pattern>/hello.jsp</url-pattern>
</filter-mapping>

  

应用

   1)指定编码格式

request.setCharacterEncoding(encoding);
filterChain.doFilter(request, response);

  2)用户是否登录、用户能否访问菜单

String userId=(String) session.getAttribute("userId");
if (userId ==null){
}

  

Servlet 过滤器Filter的更多相关文章

  1. Servlet过滤器Filter用法

    1 Servlet 过滤器方法 过滤器是一个实现了 javax.servlet.Filter 接口的 Java 类.javax.servlet.Filter 接口定义了三个方法:public void ...

  2. Servlet基础知识(四)——Servlet过滤器Filter

    一.什么是过滤器: 政府大楼的安检保安,它既能对进入政府大楼的人员进行检查,只允许检查符合要求的进入:同时他也负责对出大楼的人进行检查,看他带出的东西是否符合要求. 同样的,Servlet中的过滤器既 ...

  3. Servlet过滤器Filter和监听器

    一.Servlet过滤器的概念: *********************************************************************************** ...

  4. servlet过滤器Filter(理论篇)

    为了减少servlet容器在服务器端对信息的判断量,产生了servlet过滤器. servlet过滤器是在java servlet规范2.3中定义的,他能够对servlet容器的请求和响应对象进行检查 ...

  5. JavaWeb学习篇之----Servlet过滤器Filter和监听器

    首先来看一下Servlet的过滤器内容: 一.Servlet过滤器的概念: ************************************************************** ...

  6. Servlet过滤器----Filter

    JavaEE的Servlet规范描述了三种技术:Servlet,Filter,Listener (一)过滤器简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过F ...

  7. Servlet 过滤器 Filter

    过滤器是一个实现了 javax.servlet.Filter 接口的 Java 类.javax.servlet.Filter 接口定义了三个方法: 下面是对所有编码过滤器 package filter ...

  8. servlet过滤器Filter使用之DelegatingFilterProxy类

    正常情况下,我们需要添加一个过滤器,需要实现javax.servlet.Filter接口,再在web.xml中配置filter,如下: package cc.eabour.webapp.securit ...

  9. Servlet过滤器和监听器

    1,Servlet过滤器 <filter> <filter-name>charset</filter-name> <filter-class>org.g ...

随机推荐

  1. Error occurred during initialization of VM Incompatible initial and maximum heap sizes specified

    双击Tomcat server在eclipse弹出的Tomcat配置项里面选择open launch configuration 选择arguments在 vm arguments 里面添加 -Xms ...

  2. JS一直是单线程,异步(定时器,ajax请求等)是由浏览器来实现的!(转)

    原文地址:https://www.cnblogs.com/woodyblog/p/6061671.html 1.自己画的一张示意图 2.DOM一变化,界面就立刻重新渲染,效率必然很低,所以浏览器的机制 ...

  3. vue 图片地址错误处理

    <img src="/logo.png" :onerror="defaultImg"> data() { return { defaultImg: ...

  4. vue学习(二)

  5. 《剑指offer》二叉树的深度

    本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:

  6. 怎么给PDF去除页眉页脚

    PDF文件我们现在都会使用到,但有时需编辑PDF文件的时候,小伙伴们都知道该怎么操作吗,不知道的小伙伴不用担心,今天小编就来跟大家分享一下怎么删除PDF文件的页眉页脚,我们一起来看看下面的文章吧 操作 ...

  7. layer.open()利用代码实现伪阻塞

    今天在项目中遇到需要弹框处理的问题,,当用户点击某个单选框时,需要进行确认操作,,常规的情况下,因为layer.open()和layer.confirm()都是异步执行的, 在点击单选框之后单选框会立 ...

  8. Build 2019 彩蛋

    N久没写过博客了… 最近在玩 APEX 但是手残党表示打到15级了,至今杀敌 4 人… 当快递员是越来越顺手了… 今年巨硬的 Build 大会会在 5 月 6-8 号召开 新发布的 Hololens ...

  9. php ReflectionClass类遍历类中包含元素的方法

    ReflectionClass 类 类内容 class MyClass { const myconst1 = 100000001; const myconst2 = [ 1 => '开始时间', ...

  10. 局域网IP地址

    A类: 10.X.X.X是私有地址(私有地址就是在互联网上不使用,而被用在局域网络中的地址). 127.X.X.X是保留地址,用做循环测试用的. B类: 172.16.0.0---172.31.255 ...