Spring Boot Servlet Filter Listener

本文介绍了在Spring Boot中注册Servlet的两种方法:代码注册和注解自动注册。此外,文章还提到了Filter和Listener的注册方法,并提供了具体的代码示例。

在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");
    }
}

效果:

155400_MckM_2942412.png155413_rpzC_2942412.png

 

 

Filter的注册

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

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

也同样可以注册filter。

listener的注册

同上

转载于:https://my.oschina.net/zk875/blog/826596

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值