Spring Boot 系列博客】

(0)前言【从零开始学Spring Boot】 :

http://412887952-qq-com.iteye.com/blog/2291496

(1)spring boot起步之Hello World【从零开始学Spring Boot】:

http://412887952-qq-com.iteye.com/blog/2291500

(2)Spring Boot返回json数据【从零开始学Spring Boot】

http://412887952-qq-com.iteye.com/blog/2291508

(16)Spring Boot使用Druid(编程注入)【从零开始学Spring Boot】

http://412887952-qq-com.iteye.com/blogs/2292376

(17)Spring Boot普通类调用bean【从零开始学Spring Boot】:

http://412887952-qq-com.iteye.com/blog/2292388

更多查看博客:http://412887952-qq-com.iteye.com/blog

上一篇文章已经对定义Servlet 的方法进行了说明,过滤器(Filter)和监听器(Listener)的注册方法和 Servlet 一样,不清楚的可以查看下上一篇文章(20): 本文将直接使用@WebFilter和@WebListener的方式,完成一个Filter 和一个 Listener;使用注解

@ServletComponentScan//这个就是扫描相应的Servlet包;

过滤器(Filter)文件

com.kfit.filter.MyFilter.java

package com.kfit.filter;

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.annotation.WebFilter;

/**

*

* 使用注解标注过滤器

* @WebFilter将一个实现了javax.servlet.Filter接口的类定义为过滤器

* 属性filterName声明过滤器的名称,可选

* 属性urlPatterns指定要过滤的URL模式,也可使用属性value来声明.(指定要过滤的URL模式是必选属性)

* @author Angel(QQ:412887952)

* @version v.0.1

*/

@WebFilter(filterName="myFilter",urlPatterns="/*")

publicclass MyFilter implements Filter{

@Override

publicvoid init(FilterConfig config) throws ServletException {

System.out.println("过滤器初始化");

}

@Override

publicvoid doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException {

System.out.println("执行过滤操作");

chain.doFilter(request, response);

}

@Override

publicvoid destroy() {

System.out.println("过滤器销毁");

}

}

ServletContext监听器(Listener)文件

com.kfit.listener.MyServletContextListener:

package com.kfit.listener;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

import javax.servlet.annotation.WebListener;

/**

* 使用@WebListener注解,实现ServletContextListener接口

*

* @author Angel(QQ:412887952)

* @version v.0.1

*/

@WebListener

public class MyServletContextListener implements ServletContextListener {

@Override

public void contextDestroyed(ServletContextEvent arg0) {

System.out.println("ServletContex销毁");

}

@Override

public void contextInitialized(ServletContextEvent arg0) {

System.out.println("ServletContex初始化");

}

}

ServletContext监听器(Listener)文件(HttpSessionListener

MyHttpSessionListener.java

package com.kfit.listener;

import javax.servlet.annotation.WebListener;

import javax.servlet.http.HttpSessionEvent;

import javax.servlet.http.HttpSessionListener;

/**

* 监听Session的创建与销毁

*

*/

@WebListener

publicclassMyHttpSessionListenerimplementsHttpSessionListener {

@Override

publicvoid sessionCreated(HttpSessionEvent se) {

System.out.println("Session 被创建");

}

@Override

publicvoid sessionDestroyed(HttpSessionEvent se) {

System.out.println("ServletContex初始化");

}

}

注意不要忘记在 SpringBootSampleApplication.java 上添加 @ServletComponentScan 注解。

启动的过程中我们会看到输出:

ServletContex初始化

过滤器初始化

服务启动后,随便访问一个页面,会看到输出:

执行过滤操作
Session 被创建

为什么无法看到session的过程:http://zhidao.baidu.com/link?url=EP-wlLvKpo8zI5NaIZrESzCdivq3Xg8VgOWQOvfpSLl3opTgvESerpo4wsG6tOs_dm6cQQMF_kQ6THNjNzr2Nq

至于如何使用代码的方式注册Filter和Listener,请参考上一篇文章关键Servlet的介绍。不同的是需要使用 FilterRegistrationBean 和 ServletListenerRegistrationBean 这两个类。

最新文章

  1. windows多线程编程实现 简单(1)
  2. 解决pip安装超时
  3. Mac OS X 中快速访问系统根目录的四种方法
  4. XSS 初识
  5. Singleton Pattern单例模式
  6. 利用PHP读取文件
  7. Laravel学习笔记(六)数据库 数据库填充
  8. js 合并数组
  9. 网站建设中HTTP状态码的奥秘
  10. SqlServer调用外部程序实现数据同步
  11. 快速获取Windows系统上的国家和地区信息
  12. leetcode 3Sum python
  13. Delphi 模拟网站验证码(酷,把随机文字写道图片上)
  14. vector查找元素
  15. git 客户端提交
  16. Java解决Hanoi问题
  17. Apache Traffic Server服务搭建
  18. mysql常见的优化需要注意的点
  19. hibernate入门-基本配置及简单的crud操作
  20. 中标麒麟(linux)下Qt调用python数据转换

热门文章

  1. Spring源代码解析和配置文件载入
  2. mysql中DATETIME类型与TIMESTAMP的区别
  3. Android+Jquery Mobile学习系列(4)-页面转场及参数传递
  4. 洛谷P1040 加分二叉树(区间dp)
  5. ubuntu 软件桌面图标创建
  6. DOM 介绍
  7. ACM_小明滚出去?(求逆序数)
  8. POI合并单元边框问题解决方法
  9. 9 在C#控制台程序(console)中让用户输入
  10. # --with-http_stub_status_module模块