JAVAEE filter总结

时间:2022-09-09 07:40:14

1.  为什么需要filter?

filter相当于客户端和服务器端之间的一扇门,就像保安一样。作用:比如说设置字符集和权限控制等等。

2.  细节;

* . 只能对post请求起作用

*  .可以使用多种匹配模式:

*.jsp (*.后面带后缀名)           /servlet/* (某个路径下的所有请求)     /* (匹配所有)

*  注意:当客户端发出请求到服务器端才会被拦截(假如从servlet转发到另一个jsp页面,这个时候不会被拦截)

3. java代码:

package com.huxin.filter;

import java.io.IOException;
import javax.servlet.*;
public class SetCharacterEncodingFilter implements Filter {
private String encoding ="";
public void destroy() {}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding(encoding);
filterChain.doFilter(servletRequest, servletResponse);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.encoding = filterConfig.getInitParameter("encoding");
}
}
   <filter>
<filter-name>SetCharacterEncodingFilter</filter-name>
<filter-class>com.huxin.filter.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>

关于filter的生命周期问题:

当tomcat容器启动的时候,会加载这个filter,并且调用init()方法,给encoding赋初值。当生命周期结束,就调用destroy()的方法。

原理猜想:

应该也是一个递归实现的,类似于struts2的拦截器。

JAVAEE filter总结的更多相关文章

  1. javaWeb项目中web&period;xml的xsd( XML Schemas Definition)文件

    <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns="http://w ...

  2. web-app&lowbar;2&lowbar;5&period;xsd内容

    <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns="http://w ...

  3. django 操作数据库--orm&lpar;object relation mapping&rpar;---models

    思想 django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM). PHP:activerecord Java:Hibernate C#:Ent ...

  4. javaEE中错误提示 Exception starting filter BackServletFilter java&period;lang&period;ClassNotFoundException&colon; tmall&period;filter&period;BackServletFilter提示这个错误啊

    最近在学习javaEE的部署,不借助eclipse中的部署方式,而是通过修改server.xml文件的方式部署 添加Context路径 <Context path="/tm" ...

  5. JavaEE中Filter实现用户登录拦截

    实现思路是编写过滤器,如果用户登录之后session中会存一个user.如果未登录就为null,就可以通过过滤器将用户重定向到登陆页面,让用户进行登陆,当然过滤器得判断用户访问的如果是登陆请求需要放行 ...

  6. JAVAEE之--------过滤器设置是否缓存(Filter)

    在网页中.每次的client訪问server.有部分不用反复请求.如有些图片,视频等就没有必要每次都请求,这样会让server增大工作量.为了防止这样.我们採用过滤器来设置client是都缓存. 參考 ...

  7. &lbrack;Java面经&rsqb;干货整理&comma; Java面试题&lpar;覆盖Java基础&comma;Java高级&comma;JavaEE&comma;数据库&comma;设计模式等&rpar;

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  8. 利用filter过虑用户请求URI显示对应页面内容

    目的:只是想验证一下filter对URI的过滤 流程讲解:浏览器请求URI,所有请求都走过虑器,在过滤器中处理符合某种请求的URI然后显示对应的页面内容 有2个JSP页面: index.jsp: &l ...

  9. Filter&lpar;过滤器&rpar;学习

    一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态 ...

随机推荐

  1. 【转】实现ViewPager懒加载的三种方法

    方法一 在Fragment可见时请求数据.此方案仍预加载了前后的页面,但是没有请求数据,只有进入到当前Framgent时才请求数据. 优点:实现了数据的懒加载缺点:一次仍是三个Framgment对象, ...

  2. june 14

    Thank you for your applying for employment with our company. Your application is now being processed ...

  3. 随便聊聊 SOA &amp&semi; SOAP &amp&semi; WebService 的一些东西,以及客户端开发的代码逻辑解析

    http://blog.csdn.net/hikaliv/article/details/6459779 一天的时间调通了一个 WebService 的 Java 端的 C/S.一个 Android  ...

  4. border-radius几种写法的原理剖析

    border-radius:40px; border-radius:40px/20px; border-radius:40px 20px; border-radius:40px 20px 10px 5 ...

  5. 【BZOJ 1103】 &lbrack;POI2007&rsqb;大都市meg

    Description 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了.不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次编号为1..n ...

  6. Android 开发笔记&lowbar;&lowbar;&lowbar;登陆app

    package com.example.alimjan.hello_world; /** * Created by alimjan on 7/4/2017. */ import android.con ...

  7. 校园服务nabcd需求分析

    我们的团队是敲啥都队 口号是敲啥都队敲啥都对 1.你的创意解决了用户的什么需求?(N) 我们校园服务1主要为了节省学生所浪费的没必要的时间.当你还是大一新生的时候,你是否对大学的规划一无所知,你是否迷 ...

  8. 代码二次封装-xUtils(android)

    通常我们会引用很多lib 而且会出现lib 与我们的功能仅仅差一点点 这种情况我们最好不要去改动源代码 而是进行二次封装 举例我使用 xUtils的二次封装 此处说明我是搞ios的 这个是androi ...

  9. 查询各分类中最大自增ID

    假如现在有表结构: CREATE TABLE `msg_detail` ( `id` ) NOT NULL AUTO_INCREMENT COMMENT 'id', `title` ) NOT NUL ...

  10. 数据结构实习 - problem M 判断平衡二叉树

    writer:pprp date: 20171103 题目描述 给定一棵二叉树的中序和层序输出,判断是否为平衡二叉树的.如果是,输出YES如果不是输出NO. 输入 树结点个数 中序遍历序列 层序遍历序 ...