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;
}
}