SpringBoot关于Servlet

Spring Boot在Controller中的常用注解

  1. @RestConctroller

    相当于@Controller+@ResponseBody,返回return()内容。

  2. @GetMapping

    @RequestMapping(method = RequestMethod.GET)

  3. @PostMapping

    @RequestMapping(method = RequestMethod.POST)

  4. @PutMapping

    @RequestMapping(method = RequestMethod.PUT)

  5. @DeleteMapping

    @RequestMapping(method = RequestMethod.DELETE)

Servlet整合

1. 注解扫描
  1. 新建servlet包和Servlet类。

    注意注解@WebServlet(name = "", urlPatterns = "")

    /**
     * 整合Servlet方式一
     */
    @WebServlet(name = "FirstServlet", urlPatterns = "/first")
    public class FirstServlet extends HttpServlet {
        public void doGet(HttpServletRequest request, HttpServletResponse response) {
            System.out.println("First Servlet...");
        }
    }
    
  2. 主程序中添加注解@ServletCompoentScan,在SpringBoot启动时会扫描@WebServlet注解并将其实例化。

2. 通过方法注册

相较于方法1对于多个Servlet来说并不方便。

  1. 新建Servlet类。

  2. 新建config包和ServletConfig类。

    也可以放在启动类中。

    @Configuration
    public class ServletConfig {
        /**
         * 完成Servlet组件的注册
         */
        @Bean
        public ServletRegistrationBean getServletRegistrationBean() {
            ServletRegistrationBean bean = new ServletRegistrationBean(new SecondServlet());
            bean.addUrlMappings("/second");
            return bean;
        }
    }
    

Filter整合

1.注解扫描
  1. 新建filter包和Filter类。

    注意注解@WebFilter(name = "", urlPatterns = "")

    alt+enter快速实现方法。

    /**
     * 整合Filter方式一
     */
    //@WebFilter(filterName = "FirstFilter", urlPatterns = {"*.do", "*.jsp"})
    @WebFilter(filterName = "FirstFilter", urlPatterns = "/first")
    public class FirstFilter implements Filter {
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
    
        }
    
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            System.out.println("进入First Filter.");
            filterChain.doFilter(servletRequest, servletResponse);
            System.out.println("离开First Filter.");
        }
    
        @Override
        public void destroy() {
    
        }
    }
    
  2. 主程序中添加注解@ServletCompoentScan,在SpringBoot启动时会扫描@WebFilter注解并将其实例化。

2. 通过方法注册

方法可以写在之前的配置方法中(例如ServletConfig)。

  1. 新建Filter类。

  2. 新建config包和FilterConfig类。

    也可以放在启动类中。

    @Configuration
    public class FilterConfig {
        @Bean
        public FilterRegistrationBean getFilterRegistrationBean() {
            FilterRegistrationBean bean = new FilterRegistrationBean(new SecondFilter());
            //bean.addUrlPatterns(new String[] {"*.do", "*jsp"});
            bean.addUrlPatterns("/second");
            return bean;
        }
    }
    

Listener整合

1.注解扫描
  1. 新建listener包和Listener类。

    注意注解@WebListener

    /**
     * 整合Listener方式一
     */
    @WebListener
    public class FirstListener implements ServletContextListener {
        public void contextDestroyed(ServletContextEvent event) {
    
        }
    
        public void contextInitialized(ServletContextEvent event) {
            System.out.println("Listener init...");
        }
    }
    
    
  2. 主程序中添加注解@ServletCompoentScan,在SpringBoot启动时会扫描@WebListener注解并将其实例化。

2. 通过方法注册

方法可以写在之前的配置方法中(例如ServletConfig)。

  1. 新建Filter类。

  2. 新建config包和FilterConfig类。

    也可以放在启动类中。

    @Configuration
    public class ListenerConfig {
        @Bean
        public ListenerRegistrationBean getListenerRegistrationBean() {
            ListenerRegistrationBean bean = new ListenerRegistrationBean (new SecondListener());
            return bean;
        }
    }
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值