SpringBoot定义三大组件Servlet,过滤器Filter,监听器Listener

SpringBoot定义三大组件Servlet,过滤器Filter,监听器Listener

1.定义组件的配置类:

com.example.mybatis2018.config.MyServletConfig

package com.example.mybatis2018.config;

import com.example.mybatis2018.filter.myFilter;
import com.example.mybatis2018.listener.myListener;
import com.example.mybatis2018.servlte.MyServlet;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Arrays;
import java.util.Collections;

@Configuration
public class MyServletConfig {

    //注册Servlet
    @Bean
    public ServletRegistrationBean MyServlet(){
        ServletRegistrationBean<MyServlet> myServletServletRegistrationBean = new ServletRegistrationBean<MyServlet>(new MyServlet(), "/myServlet");
    return myServletServletRegistrationBean;
    }

    //注册过滤器
    @Bean
    public FilterRegistrationBean  myFilter(){
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new myFilter());//添加过滤器
        filterRegistrationBean.setUrlPatterns(Arrays.asList("/myServlet")); //设置过滤路径
            return filterRegistrationBean;
    }

   //注册监听器
   public ServletListenerRegistrationBean myListener(){
       ServletListenerRegistrationBean servletListenerRegistrationBean = new ServletListenerRegistrationBean();
       servletListenerRegistrationBean.setListener(new myListener());//添加过滤器
       return servletListenerRegistrationBean;
   }




}

2.创建servlet

com.example.mybatis2018.servlte.MyServlet

package com.example.mybatis2018.servlte;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class MyServlet extends HttpServlet{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter witer = resp.getWriter();
        witer.write("hello servler!");
    }
}

3.过滤器Filter

com.example.mybatis2018.filter.myFilter

package com.example.mybatis2018.filter;


import javax.servlet.*;
import java.io.IOException;
import java.util.logging.LogRecord;

public class myFilter 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("过滤器执行并放行!");
        filterChain.doFilter(servletRequest,servletResponse);//放行
    }

    @Override
    public void destroy() {

    }
}

4.监听器Listener

com.example.mybatis2018.listener.myListener

package com.example.mybatis2018.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class myListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("servletContext 对象创建。。。。");

    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("servletContext 对象销毁。。。。");
    }
}

猜你喜欢

转载自blog.csdn.net/qq_15204179/article/details/84659958