SpringBoot 从零开始学习(二) 之整合servlet/filter/listener
2020-03-08 12:25
477 查看
Servlet:
这里的servlet 继承的是: javax.servlet.http.HttpServlet;
一.通过注解扫描方式注册servlet
package com.cz.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @WebServlet(name = "MyServlet",urlPatterns = "/servlet") public class MyServlet extends HttpServlet { private static final Logger log = LoggerFactory.getLogger(MyServlet.class); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub log.info("进入doGet方法"); super.doGet(req, resp); } }
启动类:
package com.cz; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @SpringBootApplication @ServletComponentScan//springBoot 启动时会扫描web*的组件,并将该类进行实例化 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
执行截图:
二.通过方法完成Servlet组建的注册
package com.cz.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyServletExtend extends HttpServlet { private static final Logger log = LoggerFactory.getLogger(MyServletExtend.class); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub log.info("进入 方法注册的 doGet方法"); super.doGet(req, resp); } }
启动类代码:
package com.cz; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import com.cz.filter.MyFIlterExtend; import com.cz.listener.MyListenerExtend; import com.cz.servlet.MyServletExtend; @SpringBootApplication public class ApplicationExtend { public static void main(String[] args) { SpringApplication.run(ApplicationExtend.class, args); } @Bean //这个注解主要用来springboot 启动的时实例化对象 ServletRegistrationBean<MyServletExtend> getServletBean(){ ServletRegistrationBean bean = new ServletRegistrationBean<MyServletExtend>(new MyServletExtend()); bean.addUrlMappings("/servletExtend"); return bean; }
执行截图:
Filter:
这里的servlet 继承的是: javax.servlet.http.HttpFilter;
一.通过注解扫描方式注册Filter
package com.cz.filter; import java.io.IOException; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @WebFilter(filterName = "MyFIlter",urlPatterns = "/filter") public class MyFIlter extends HttpFilter { private static final Logger log = LoggerFactory.getLogger(MyFIlter.class); @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub super.doFilter(request, response, chain); log.info("MyFIlter doFilter "); } @Override protected void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub super.doFilter(request, response, chain); log.info("MyFIlter doFilter"); } }
启动类:
package com.cz; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @SpringBootApplication @ServletComponentScan//springBoot 启动时会扫描web*的组件,并将该类进行实例化 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
执行效果:
二.通过方法完成Filter组建的注册
package com.cz.filter; import java.io.IOException; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyFIlterExtend extends HttpFilter { private static final Logger log = LoggerFactory.getLogger(MyFIlterExtend.class); @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub super.doFilter(request, response, chain); log.info("MyFIlterExtend doFilter "); } @Override protected void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub super.doFilter(request, response, chain); log.info("MyFIlterExtend doFilter"); } }
启动类:
package com.cz; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import com.cz.filter.MyFIlterExtend; import com.cz.listener.MyListenerExtend; import com.cz.servlet.MyServletExtend; @SpringBootApplication public class ApplicationExtend { public static void main(String[] args) { SpringApplication.run(ApplicationExtend.class, args); } @Bean FilterRegistrationBean getFilterBean(){ FilterRegistrationBean bean = new FilterRegistrationBean(new MyFIlterExtend()); bean.addUrlPatterns("/filterExtend"); return bean; } }
执行效果:
Listener
这里的servlet 实现的是: javax.servlet.ServletContextListener;
Listener和上面两个区别的地方就是不需要name+pattern。
一.通过注解扫描方式注册Listener
package com.cz.listener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @WebListener() public class MyListener implements ServletContextListener{ private static final Logger log = LoggerFactory.getLogger(MyListener.class); @Override public void contextInitialized(ServletContextEvent sce) { // TODO Auto-generated method stub ServletContextListener.super.contextInitialized(sce); log.info("MyListener contextInitialized"); } @Override public void contextDestroyed(ServletContextEvent sce) { // TODO Auto-generated method stub ServletContextListener.super.contextDestroyed(sce); log.info("MyListener contextDestroyed"); } }
启动类:
package com.cz; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @SpringBootApplication @ServletComponentScan//springBoot 启动时会扫描web*的组件,并将该类进行实例化 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
二.通过方法完成Listener组建的注册
package com.cz.listener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyListenerExtend implements ServletContextListener{ private static final Logger log = LoggerFactory.getLogger(MyListenerExtend.class); @Override public void contextInitialized(ServletContextEvent sce) { // TODO Auto-generated method stub ServletContextListener.super.contextInitialized(sce); log.info("MyListenerExtend contextInitialized"); } @Override public void contextDestroyed(ServletContextEvent sce) { // TODO Auto-generated method stub ServletContextListener.super.contextDestroyed(sce); log.info("MyListenerExtend contextDestroyed"); } }
启动类:
package com.cz; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import com.cz.filter.MyFIlterExtend; import com.cz.listener.MyListenerExtend; import com.cz.servlet.MyServletExtend; @SpringBootApplication //@ServletComponentScan public class ApplicationExtend { public static void main(String[] args) { SpringApplication.run(ApplicationExtend.class, args); } @Bean ServletListenerRegistrationBean<MyListenerExtend> getListenerBean(){ ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean(new MyListenerExtend()); return bean; } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Spring Boot 学习(7)springboot 整合三大组件(Servlet、Filter、Listener)
- spring boot学习笔记之与servlet、Filter、Listener集成
- spring boot整合servlet、filter、Listener等组件方式
- SpringBoot学习教程 - 03 - 配置Servlet、Filter、Listener
- SpringBoot(四)-- 整合Servlet、Filter、Listener
- SpringBoot学习(三)--整合filter
- SpringBoot整合web时报错Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter
- Spring Boot使用Servlet、Filter或Listener的方式
- servlet3.0 新特性和springboot Listener和filter案例
- 1.SpringBoot整合Filter和Servlet
- Spring Boot 2.X(十):自定义注册 Servlet、Filter、Listener
- SpringBoot 配置 Servlet、Filter、Listener
- SpringBoot 配置 Servlet、Filter、Listener
- SpringBoot初始教程之Servlet、Filter、Listener配置详解
- SpringBoot初始教程之Servlet、Filter、Listener配置(七)
- Spring Boot 编写Servlet、Filter、Listener、Interceptor的方法
- SpringBoot如何注册Servlet、Filter、Listener的几种方式
- SpringBoot初始教程之Servlet、Filter、Listener配置(七)
- Spring Boot - Web 应用开发 - Servlet, Filter, Listener
- SpringBoot 从零开始学习(七) 之视图层技术整合thymeleaf