public class MyFilter implements javax.servlet.Filter {

2 /**

3 * 初始化

4 */

5 @Override

6 public void init(FilterConfig arg0) throws ServletException {

7 }

8 /**

9 * 销毁

10 */

11 @Override

12 public void destroy() {

13 }

14 /**

15 * 过滤

16 */

17 @Override

18 public void doFilter(ServletRequest arg0, ServletResponse arg1,

19 FilterChain arg2) throws IOException, ServletException {

20 arg0.setCharacterEncoding("utf-8"); //设置request对象的字符集格式

21 arg2.doFilter(arg0, arg1); //继续执行 请求

22 }

23 }

这个是Filter实体的代码,在web.xml文件中我们需要对其需要拦截的请求配置监听范围,或者说过滤哪些url。

2 myfilter

3 com.mine.test.MyFilter

4

5

6 myfilter

7 /*

8

2. 拦截器  我们使用struts预定义过的拦截器时只需要做相应的配置即可,大多数常用的都会在default中有定义,而在struts.xml中不写就默认使用这个default。当我们自己创建了一个Intercepter对象时我们需要对其进行配置,具体配置的方法这里就不赘述了,戳此处 http://www.blogjava.net/brock/archive/2009/08/20/291919.html  。拦截器中有三个基本的方法对应其生命周期。

a.初始化  b.执行拦截  c.销毁。针对action请求进行处理,脱离了servlet API,不处理一般的url请求。

3. Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener接口的服务器端程序,它也是随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。主要是在服务器启动时加载

主要作用是:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。

package com.lzw.filter.demo;

import javax.servlet.ServletContext;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

public class InitDataListener implements ServletContextListener {

private static ServletContext servletContext;

public static ServletContext getServletContext() {

return servletContext;

}

@Override

public void contextInitialized(ServletContextEvent contextEvent) {

servletContext = contextEvent.getServletContext();

//final ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);

System.out.println("服务器启动完毕!");

System.out.println(servletContext);

}

@Override

public void contextDestroyed(ServletContextEvent sce) {}

}

web.xml

index.html

index.htm

index.jsp

default.html

default.htm

default.jsp

com.lzw.filter.demo.InitDataListener

控制台结果:

信息: Starting service Catalina

2013-10-31 15:13:55 org.apache.catalina.core.StandardEngine startInternal

信息: Starting Servlet Engine: Apache Tomcat/7.0.42

服务器启动完毕!

org.apache.catalina.core.ApplicationContextFacade@7966340c

2013-10-31 15:13:56 org.apache.coyote.AbstractProtocol start

信息: Starting ProtocolHandler ["http-apr-8080"]

2013-10-31 15:13:56 org.apache.coyote.AbstractProtocol start

信息: Starting ProtocolHandler ["ajp-apr-8009"]

2013-10-31 15:13:56 org.apache.catalina.startup.Catalina start

信息: Server startup in 402 ms

php8拦截器,Web中的监听器 过滤器 拦截器相关推荐

  1. java web.xml 监听器_【JAVA 核心技术】java web 中的监听器

    为什么要有监听器? 监听器是用来处理一系列事件的java类,可被配置在java web项目中. 既然如此,为什么不用代码直接调用监听器? 这可能是因为J2EE规范规定的项目工程标准,用web.xml指 ...

  2. python装饰器 property_python中property和setter装饰器用法

    作用:调用方法改为调用对象, 比如 : p.set_name() 改为 p.set_name 区别:前者改变get方法,后者改变set方法 效果图: 代码: class Person: def __i ...

  3. (29) JavaWeb中使用filter过滤器拦截请求、权限检查,过滤响应。

    Filter 过滤器 一.Filter 什么是过滤器 二.Filter 过滤器的使用步骤: 三.Filter 的生命周期 四.FilterConfig 类 五.FilterChain 过滤器链 六.F ...

  4. python数独解题器,Python中最短的数独求解器 – 它是如何工作的?

    那么,通过修正语法,可以使事情变得更容易: def r(a): i = a.find('0') ~i or exit(a) [m in[(ij)%9*(i/9^j/9)*(i/27^j/27|i%9/ ...

  5. 监听器和监听器过滤器常见应用GUl中理解

    实现一个监听器的接口:(有N种) 1.编写一个监听器 实现监听器的接口 //统计网上在线人数:统计Session public class olinejqt implements HttpSessio ...

  6. Java Web中的Filter和Interceptor的区别

    2019独角兽企业重金招聘Python工程师标准>>> 1.问题的来源 项目中使用了Filter,进行白名单的控制,同时使用了Filter进行了跨域请求的控制,使用了Intercep ...

  7. python装饰器函数执行后日志_python 装饰器理解

    在理解装饰器之前,先应该对闭包有个概念:所谓闭包,就是将组成函数的语句和这些语句的执行环境打包在一起时得到的对象,它的主要作用是封存上下文.这一特性可以巧妙的被用于现有函数的包装,从而为现有函数添加功 ...

  8. java中过滤器、监听器、拦截器的区别

    1.过滤器:所谓过滤器顾名思义是用来过滤的,在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的actio ...

  9. Servlet,过滤器,监听器,拦截器的区别

    由于最近两个月工作比较清闲,个人也比较"上进",利用工作空余时间,也继续学习了一下,某天突然想起struts2和struts1的区别的时 候,发现为什么struts1要用servl ...

  10. 【转载】Spring Boot 过滤器、监听器、拦截器的使用

    关注"Java后端技术全栈" 回复"面试"获取全套大厂面试资料 在开发中用到过滤器.监听器.拦截器的场景非常多,今天就来聊聊这三者在日常开发中是如何使用的. 概 ...

最新文章

  1. 用价值锚定革掉股市的命!
  2. vue函数如何调用其他函数?_从源码中学Vue(一)生命周期中的钩子函数的那点事儿...
  3. java关键字整理_【java基础知识整理】java基础语法之关键字
  4. TIOBE 3月榜单:新功能将加入,C语言仍高居榜首
  5. 责任链模式在Android中的应用
  6. nodejs笔记--Events篇(二)
  7. python-format函数
  8. 前端为什么有的接口明明是成功回调却执行了.catch失败回调_前端战五渣学JavaScript——Promise...
  9. 对皮尔逊相关系数进行假设检验
  10. Github Desktop for macos_zh 汉化
  11. IC基础知识3-输入阻抗和输出阻抗
  12. 由南非世界杯想到IDC
  13. python 下载 M3U8 视频
  14. ODT,ZQ校准,OCT,TDQS
  15. python浪漫告白源代码_python七夕浪漫表白源码
  16. 使用anaconda安装opencv包
  17. 10个有趣且易上手的AI项目(附Python源代码)
  18. recon-ng模块安装与基本使用(国内环境)
  19. 第二章 软件测试基础
  20. easyui 简单风格的遮罩

热门文章

  1. hypermesh 复合材料_HyperMesh复合材料建模
  2. LintCode—合并两个排序链表(165)
  3. 在GridView中,设置字符超出单元格部分的内容用“...”表示
  4. ceph luminous 版本 osd掉线处置
  5. RDS PG如何安装DTS需要的增量迁移插件?
  6. 利用console.time优化js代码
  7. WAN killer
  8. 前端性能优化--图片懒加载(lazyload image)
  9. 【转】ASP.net2。0中解决无法获取 GridView 隐藏列值问题
  10. 触发器的创建及相关知识