文档章节

Spring Boot Servlet Filter Listener

zheng875
 zheng875
发布于 2017/01/17 16:56
字数 317
阅读 61
收藏 0

在spring boot中添加自己的Servlet有两种方法,代码注册Servlet和注解自动注册(Filter和Listener也是如此)。

1.通过代码注册Servlet

代码注册通过ServletRegistrationBean、 FilterRegistrationBean 和 ServletListenerRegistrationBean 获得控制。也可以通过实现 ServletContextInitializer 接口直接注册。

2.使用注解注册Servlet

在 SpringBootApplication 上使用@ServletComponentScan 注解后,Servlet、Filter、Listener 可以直接通过 @WebServlet、@WebFilter、@WebListener 注解自动注册,无需其他代码。

application.java

@SpringBootApplication
@ServletComponentScan
public class SpringbootSampleApplication {

    /**
     * 使用代码注册MyServlet1
     * @return
     */
    @Bean
	public ServletRegistrationBean servletRegistrationBean(){
        return new ServletRegistrationBean(new MyServlet1(),"/servlet1/*");
    }

	public static void main(String[] args) {
		SpringApplication.run(SpringbootSampleApplication.class, args);
	}
}

 

Myservlet1.java

public class MyServlet1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("-------------<doGet>---------------");
        doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("-------------<doPost>---------------");
        PrintWriter out = resp.getWriter();
        out.println("success");
    }
}

Myservlet2.java

@WebServlet(urlPatterns = "/servlet2/*",description = "servlet2")
public class MyServlet2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("-------------<doGet>---------------");
        doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("-------------<doPost>---------------");
        PrintWriter out = resp.getWriter();
        out.println("success2");
    }
}

效果:

 

 

Filter的注册

filter可以像servlet那样用着两种方式注册,但是在我尝试中,还有一种方式,

在不修改application.java的情况下,自定义一个filter实现Filter接口,在类上使用@Component注解,

也同样可以注册filter。

listener的注册

同上

© 著作权归作者所有

zheng875
粉丝 11
博文 46
码字总数 22528
作品 0
无锡
程序员
私信 提问
Spring Boot 学习系列(08)—自定义servlet、filter及listener

此文已由作者易国强授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 传统的filter及listener配置 在传统的Java web项目中,servlet、filter和listener的配置很简单...

网易云
2018/11/01
0
0
Spring Boot 注册 Servlet 的三种方法,真是太有用了!

本文栈长教你如何在 Spring Boot 注册 Servlet、Filter、Listener。 你所需具备的基础 什么是 Spring Boot? Spring Boot 核心配置文件详解 Spring Boot 开启的 2 种方式 Spring Boot 自动配置...

Java技术栈
05/07
71
0
急求:spring mvc3.1访问url报错:org.springframework.web.servlet.PageNotFound

启动tomcat,访问web应用报如下错误: [org.springframework.web.servlet.PageNotFound] - No mapping found for HTTP request with URI [/v20/activity/test/] in DispatcherServlet with ......

曾鹏
2014/06/03
49.1K
12
关于web.xml中配置listener的问题

web.xml文件如下: contextConfigLocation classpath:/spring-*.xml spring监听器 org.springframework.web.context.ContextLoaderListener spring mvc servlet springmvc org.springframewo......

gondor
2016/02/23
3.6K
4
Spring管理filter和servlet

在使用spring容器的web应用中,业务对象间的依赖关系都可以用context.xml文件来配置,并且由spring容器来负责依赖对象 的创建。如果要在filter或者servlet中使用spring容器管理业务对象,通常...

加油_张
2013/04/25
456
1

没有更多内容

加载失败,请刷新页面

加载更多

vue入门--简单路由配置

本文转载于:专业的前端网站➜vue入门--简单路由配置   在初始化vue init webpack <工程名>时,有一步是询问是否安装vue-router,选择yes,如果没有安装的话,后面需要自己安装。然后在目录...

前端老手
12分钟前
2
0
怎么给视频配音

很多刚开始尝试视频制作的小伙伴,帮助到怎么给制作完成的视频配音,其实给视频配音的方法非常简单,在手机上可以进行制作,下面一起来看看给视频配音的方法吧! 具体步骤如下: 1、首先在手...

白米稀饭2019
21分钟前
1
0
windows批处理bat脚本编写

什么是bat脚本 .bat结尾的文件其实就是windows上的批处理脚本,Windows中的bat文件相当于 Linux中shell编程的.sh脚本,批量执行DOS命令。 其最简单的例子,是逐行书写在命令行中会用到的各种...

孙幼凌
29分钟前
1
0
华为手机翻译功能怎么使用?这三种方法请务必收藏

华为手机翻译功能怎么使用?在我们的生活中会经常遇到翻译问题,许多外语不好的朋友该怎么办呢?华为手机已经为我们解决了这个问题,今天小编就教大家学会使用华为手机中的三种翻译技巧,需要...

翻译小天才
37分钟前
4
0
企业服务软件开发中需要注意的三个问题

在开发企业服务软件时,我们需要分为:业务需求、用户需求、产品需求,三大需求层次,三个层次互相关联,企业服务软件开发首先要服务业务,需要满足业务的需求,再关注用户体验,也就是用户需...

积木创意科技
40分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部