1. 程式人生 > >SpringBoot定義三大元件Servlet,過濾器Filter,監聽器Listener

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 物件銷燬。。。。");
    }
}