Springboot整合Web(Servlet,Filter,Listener)

Springboot整合Web
一:Springboot整合Servlet
1通过注解扫描完成Servlet组件的注册

package com.lidadaibiao.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 方式一 注解扫描
 * @WebServlet(name="SpringbootServletTest1",urlPatterns="/test1")
 * name=servlet-name
 * urlPatterns=url-pattern
 * <servlet>
 *  	<servlet-name>SpringbootServletTest1</servlet-name> 
 * 		<servlet-class>com.lidadaibiao.servlet.SpringbootServletTest1</servlet-class>
 * </servlet>
 * <servlet-mapping>
 * 		<servlet-name>SpringbootServletTest1</servle
 * 		<url-pattern>/test1</url-pattern> 
 * </servlet-mapping>
 * @author ASUS
 *
 */
@WebServlet(name="SpringbootServletTest1",urlPatterns="/test1")
public class SpringbootServletTest1 extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("SpringbootServletTest1--------------");
	}
}

启动类:

package com.lidadaibiao;

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


@SpringBootApplication
@ServletComponentScan //在 springBoot 启动时会扫描@WebServlet,并将该类实例 化 
public class App {
	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
}

2通过方法完成Servlet组件的注册

package com.lidadaibiao.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SpringbootServletTest2 extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("SpringbootServletTest2-----------");
	}
}

启动类

package com.lidadaibiao;

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;

import com.lidadaibiao.filter.SpringbootFilterTest2;
import com.lidadaibiao.servlet.SpringbootServletTest2;

@SpringBootApplication
public class App2 {
	public static void main(String[] args) {
		SpringApplication.run(App2.class, args);
	}
	/**
	 * 注册Servlet
	 * @return
	 */
	@Bean
	public ServletRegistrationBean getServletRegistrationBean(){
		ServletRegistrationBean bean = new ServletRegistrationBean(new SpringbootServletTest2());
		bean.addUrlMappings("/test2");
		return bean;
	}
	}

二:Springboot整合Filter
1通过注解扫描完成Filter组件的注册

package com.lidadaibiao.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
/**
 * SpringBoot 整合 Filter 方式一
 * @WebFilter(filterName="SpringbootFilterTest1",urlPatterns="/test1")注解扫描
 * filterName=filter-name
 * urlPatterns=url-pattern
 *  <filter> 
 * 		<filter-name>SpringbootFilterTest1</filter-name> 
 *  	<filter-class>com.lidadaibiao.filter.SpringbootFilterTest1</filter-class> 
 *  </filter> 
 *  <filter-mapping> 
 *  	<filter-name>SpringbootFilterTest1</filter-name>
 *  	<url-pattern>/test1</url-pattern
 * </filter-mapping> 
 * @author ASUS
 *
 */
@WebFilter(filterName="SpringbootFilterTest1",urlPatterns="/test1")
public class SpringbootFilterTest1 implements Filter{

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		// TODO Auto-generated method stub
		System.out.println("进入SpringbootFilterTest1");
		chain.doFilter(request, response);
		System.out.println("退出SpringbootFilterTest1");
	}
	
}

启动类

package com.lidadaibiao;

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


@SpringBootApplication
@ServletComponentScan //在 springBoot 启动时会扫描@WebServlet,并将该类实例 化 
public class App {
	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
}

2通过方法完成Filter组件的注册

package com.lidadaibiao.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class SpringbootFilterTest2 implements Filter{

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		// TODO Auto-generated method stub
		System.out.println("进入SpringbootFilterTest2----");
		chain.doFilter(request, response);
		System.out.println("退出SpringbootFilterTest2----");
	}

}

启动类

package com.lidadaibiao;

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;

import com.lidadaibiao.filter.SpringbootFilterTest2;
import com.lidadaibiao.servlet.SpringbootServletTest2;

@SpringBootApplication
public class App2 {
	public static void main(String[] args) {
		SpringApplication.run(App2.class, args);
	}
	/**
	 * 注册Servlet
	 * @return
	 */
	@Bean
	public ServletRegistrationBean getServletRegistrationBean(){
		ServletRegistrationBean bean = new ServletRegistrationBean(new SpringbootServletTest2());
		bean.addUrlMappings("/test2");
		return bean;
	}
	/**
	 * 注册Filter
	 * @return
	 */
	@Bean
	public FilterRegistrationBean getFilterRegistrationBean(){
		FilterRegistrationBean bean = new FilterRegistrationBean(new SpringbootFilterTest2());
		bean.addUrlPatterns("/test2");
		return bean;
	}
}

一:Springboot整合Listener
1通过注解扫描完成Listener组件的注册

package com.lidadaibiao.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

/**
 * 通过扫描注解
 * <listener>
 * <listener-class>com.lidadaibiao.listener.SpringbootListenerTest1</listener-class> 
 * </listener>
 * @author ASUS
 *
 */
@WebListener
public class SpringbootListenerTest1 implements ServletContextListener{

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		System.out.println("SpringbootListenerTest1---------");
	}

	@Override
	public void contextDestroyed(ServletContextEvent sce) {

	}

}

启动类同Servlet App
2通过方法完成Listener组件的注册

package com.lidadaibiao.listener;

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

public class SpringbootListenerTest2 implements ServletContextListener{

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		System.out.println("SpringbootListenerTest2-----------");
	}

	@Override
	public void contextDestroyed(ServletContextEvent sce) {
		
	}
	
}

启动类

package com.lidadaibiao;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.context.annotation.Bean;

import com.lidadaibiao.listener.SpringbootListenerTest2;

@SpringBootApplication
public class App4 {
	public static void main(String[] args) {
		SpringApplication.run(App4.class, args);
	}
	/**
	 * 注册listener
	 * @return
	 */
	@Bean
	public ServletListenerRegistrationBean getServletListenerRegistrationBean(){
		ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean(new SpringbootListenerTest2());
		return bean;
	}
}

发布了20 篇原创文章 · 获赞 17 · 访问量 1791

猜你喜欢

转载自blog.csdn.net/qq_42534991/article/details/104216672