Spring Boot整合Servlet、Filter、Listener

整合 Servlet
 
方式一:
 
编写 servlet
package com.bjsxt.controller;

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 java.io.IOException;

@WebServlet(name = "Servelt",urlPatterns ="/servlet" )
public class Servelt extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Servelt.doGet........");
    }
}

 

编写启动类

package com.bjsxt;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

@SpringBootApplication
@ServletComponentScan//在springboot启动时会自动扫描@WebServlet注解的配置信息,并将它实例化
public class SpringBootRun {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootRun.class,args);
    }
}

 

方式二:

package com.bjsxt.controller;

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

public class Servelt2 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Servelt.doGet2........");
    }
}
@SpringBootApplication
public class SpringBootServletRun2 {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootServletRun2.class,args);
    }

    @Bean
    public ServletRegistrationBean getServletRegistrationBean(){
        ServletRegistrationBean<Servelt2> bean = new ServletRegistrationBean<>(new Servelt2());
        bean.addUrlMappings("/servlet2");
        return bean;
    }
}

 

整合Filter(也有俩种方式)

编写 Filter

package com.bjsxt.controller;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@WebFilter(filterName = "Filter1",urlPatterns = "/filter1")
public class Filter1 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("进入拦截器Filter1");
        filterChain.doFilter(servletRequest,servletResponse);
        System.out.println("离开拦截器Filter1");
    }

    @Override
    public void destroy() {

    }
}

 

编写启动类
package com.bjsxt;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

@SpringBootApplication
@ServletComponentScan//在springboot启动时会自动扫描@Web...注解的配置信息,并将它实例化
public class SpringBootFilterRun1 {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootFilterRun1.class,args);
    }
}

 

方式二

package com.bjsxt.controller;

import javax.servlet.*;
import java.io.IOException;

public class Filter2 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("进入拦截器Filter2");
        filterChain.doFilter(servletRequest,servletResponse);
        System.out.println("离开拦截器Filter2");
    }

    @Override
    public void destroy() {

    }
}
package com.bjsxt;

import com.bjsxt.controller.Filter2;
import com.bjsxt.controller.Servelt2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class SpringBootFilterRun2 {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootFilterRun2.class,args);
    }

    @Bean
    public ServletRegistrationBean getRegistrationBean(){
        ServletRegistrationBean<Servelt2> bean = new ServletRegistrationBean<>(new Servelt2());
        bean.addUrlMappings("/filter2");
        return bean;
    }

    @Bean
    public FilterRegistrationBean getFilterRegistrationBean(){
        FilterRegistrationBean<Filter2> bean = new FilterRegistrationBean<>(new Filter2());
        bean.addUrlPatterns("/filter2");
        return bean;
    }
}

 

 

编写 Listener
 @WebListener 
public class FirstListener implements ServletContextListener { 
  @Override 
  public void contextDestroyed(ServletContextEvent arg0) { 
       // TODO Auto-generated method stub 

  }

 @Override 
 public void contextInitialized(ServletContextEvent arg0) {
   System.out.println("Listener...init......"); 
  } 
}
编写启动类
package com.bjsxt;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

@SpringBootApplication
@ServletComponentScan//在springboot启动时会自动扫描@WebServlet注解的配置信息,并将它实例化
public class SpringBootRun {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootRun.class,args);
    }
}

 

方式二:

 @WebListener 
public class FirstListener implements ServletContextListener { 
  @Override 
  public void contextDestroyed(ServletContextEvent arg0) { 
       // TODO Auto-generated method stub 

  }

 @Override 
 public void contextInitialized(ServletContextEvent arg0) {
   System.out.println("Listener...init......"); 
  } 
}
package com.bjsxt;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

@SpringBootApplication
@ServletComponentScan//在springboot启动时会自动扫描@WebServlet注解的配置信息,并将它实例化
public class SpringBootRun {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootRun.class,args);
    }
}

 

posted @ 2019-12-11 08:56  sakura-yxf  阅读(348)  评论(0)    收藏  举报