• 05 SpringBoot注册Web组件


    目录

    一、SpringBoot注册web组件_注册Servlet

     注册方式一:全注解方式@WebServlet

     注册方式二:配置类注册Servlet

    二、SpringBoot注册web组件_注册Filter

      注册方式一:全注解方式@WebFilter

     注册方式二:配置类注册Filter

    三、SpringBoot注册web组件_注册Listener

    注册方式一:全注解方式@WebListener

    注册方式二:配置类注册Listener

    四、知识点整理:


    一、SpringBoot注册web组件_注册Servlet

     注册方式一:全注解方式@WebServlet

    1.编写Firstservlet

    1. @WebServlet("/first")
    2. public class FirstServlet extends HttpServlet {
    3. @Override
    4. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    5. System.out.println("first Servlet......");
    6. }
    7. }

    2.启动类添加@ServletComponentScan注解扫描web组件

    1. @SpringBootApplication
    2. //SpringBoot启动时扫描注册注解标注的Web组件
    3. @ServletComponentScan
    4. public class Springbootdemo2Application {
    5. public static void main(String[] args) {
    6. SpringApplication.run(Springbootdemo2Application.class, args);
    7. }
    8. }

    @ServletComponentScan可以扫描Servlet、Filter、Listen三个组件

    3.运行结果:后台打印出“first Servlet.....” 

     注册方式二:配置类注册Servlet

    1.编写SecondServlet

    1. public class SecondServlet extends HttpServlet {
    2. @Override
    3. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    4. System.out.println("Second Servlet......");
    5. }
    6. }

    2.编写配置类ServletConfig注册Servlet

    1. @SpringBootConfiguration
    2. public class ServletConfig {
    3. //ServletRegistrationBean可以注册Servlet组件,将其放入Spring容器即可注册Servlet组件
    4. @Bean
    5. public ServletRegistrationBean getServletRegistrationBean(){
    6. //注册Servlet组件
    7. ServletRegistrationBean bean = new ServletRegistrationBean(new SecondServlet());
    8. //添加Servlet访问路径
    9. bean.addUrlMappings("/second");
    10. return bean;
    11. }
    12. }

    3.运行结果:后台打印出“Second Servlet.....” 

     

    二、SpringBoot注册web组件_注册Filter

      注册方式一:全注解方式@WebFilter

    1.编写FirstFilter

    1. @WebFilter(urlPatterns = "/first")
    2. public class FirstFilter implements Filter {
    3. @Override
    4. public void init(FilterConfig filterConfig) throws ServletException {
    5. }
    6. @Override
    7. public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    8. System.out.println("进入first Filter");
    9. filterChain.doFilter(servletRequest,servletResponse);
    10. System.out.println("离开first Filter");
    11. }
    12. @Override
    13. public void destroy() {
    14. }
    15. }

    2.启动类中的@ServletComponentScan注解扫描web组件

    1. @SpringBootApplication
    2. //SpringBoot启动时扫描注册注解标注的Web组件
    3. @ServletComponentScan
    4. public class Springbootdemo2Application {
    5. public static void main(String[] args) {
    6. SpringApplication.run(Springbootdemo2Application.class, args);
    7. }
    8. }

    3.运行结果:访问localhost:8080/first 

     注册方式二:配置类注册Filter

    1.编写SecondFilter

    1. public class SecondFilter implements Filter {
    2. @Override
    3. public void init(FilterConfig filterConfig) throws ServletException {
    4. }
    5. @Override
    6. public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    7. System.out.println("进入Second Filter");
    8. filterChain.doFilter(servletRequest,servletResponse);
    9. System.out.println("离开Second Filter");
    10. }
    11. @Override
    12. public void destroy() {
    13. }
    14. }

    2.编写配置类FilterConfig注册Filter

    1. @SpringBootConfiguration
    2. public class FilterConfig {
    3. //ServletRegistrationBean可以注册Servlet组件,将其放入Spring容器即可注册Servlet组件
    4. @Bean
    5. public FilterRegistrationBean getFilterRegistrationBean(){
    6. //注册Filter组件
    7. FilterRegistrationBean bean = new FilterRegistrationBean(new SecondFilter());
    8. //添加Filter过滤路径
    9. bean.addUrlPatterns("/second");
    10. return bean;
    11. }
    12. }

    3.运行结果:访问localhost:8080/second

     

    三、SpringBoot注册web组件_注册Listener

    注册方式一:全注解方式@WebListener

     1.编写FirstListener

    1. @WebListener
    2. public class FirstListener implements ServletContextListener {
    3. @Override
    4. public void contextInitialized(ServletContextEvent sce) {
    5. System.out.println("First Listener Init....");
    6. }
    7. @Override
    8. public void contextDestroyed(ServletContextEvent sce) {
    9. }
    10. }

    2.运行结果:

    注册方式二:配置类注册Listener

     1.编写SecondListener

    1. public class SecondListener implements ServletContextListener {
    2. @Override
    3. public void contextInitialized(ServletContextEvent sce) {
    4. System.out.println("Second Listener Init....");
    5. }
    6. @Override
    7. public void contextDestroyed(ServletContextEvent sce) {
    8. }
    9. }

    2.编写配置类ListenerConfig注册Listener

    1. @Configuration
    2. public class ListenerConfig {
    3. @Bean
    4. public ServletListenerRegistrationBean getServletListenerRegistrationBean(){
    5. ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean(new SecondListener());
    6. return bean;
    7. }
    8. }

    3.运行结果:

     

    四、知识点整理:

    1. SpringBoot启动类 中,扫描 web组件的注解是 @ServletComponentScan
    2. SpringBoot 中,自动扫描 Servlet 组件需要在 Serlvet类上添加 @WebServlet 注解
    3. SpringBoot 中,自动扫描 Filter 组件需要在 Filter类上添加 @WebFilter 注解
    4. SpringBoot 中,自动扫描 Listener 组件需要在 Listener 类上添加 @WebListener 注解
  • 相关阅读:
    Go,从命名开始!Go的关键字和标识符全列表手册和代码示例!
    两种解法解决 LeetCode 27. 移除元素【C++】
    Spring事务的嵌套的详细理解,以及事务失效的场景解惑
    HR应用在线人才测评,给企业招聘带来的好处
    Mediacodec 如何硬件解码到纹理的
    【千锋Python2205班10.20笔记-day04-接口和常见反爬(一阶段)】
    CLIP Surgery论文阅读
    致敬最美抗击疫情的逆行者 DIV布局大学生抗疫感动专题网页设计作业模板 疫情感动人物静态HTML网页模板下载
    基于open3D点云的SLAM系统教程
    Adobe Photoshop 2022v23.4.2.603茶末余香增强版
  • 原文地址:https://blog.csdn.net/m0_51697147/article/details/127041801