1.使用servlet API
1.1 在主程序入口添加@ServletComponentScan(basePackages = "com.atguigu.admin")
注解,标注要扫描servlet的包
@ServletComponentScan(basePackages = "com.atguigu.admin")
@SpringBootApplication
public class Boot05WebAdminApplication {
public static void main(String[] args) {
SpringApplication.run(Boot05WebAdminApplication.class, args);
}
}
1.2 写自定义servlet类
package com.atguigu.admin.servlet;
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(urlPatterns = "/my")
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("666");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doGet(req, resp);
}
}
1.3 Filter
@WebFilter(urlPatterns = {"/css/*","/images/*"})//拦截的请求
public class MyFilter implements Filter {
1.4 Listener
@WebListener
public class MyServletContextListener implements ServletContextListener {
2.使用RegistrationBean
package com.atguigu.admin.servlet;
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;
@Configuration(proxyBeanMethods = true)//保证依赖的组件始终是单实例的
public class MyRegistConfig {
@Bean//注册Servlet
public ServletRegistrationBean myServlet(){
MyServlet myServlet = new MyServlet();
return new ServletRegistrationBean(myServlet,"/my","/my02");
};
@Bean
public FilterRegistrationBean myFilter(){
MyFilter myFilter = new MyFilter();
//方式1
// return new FilterRegistrationBean(myFilter,myServlet());//拦截myServlet()的路径
//方式2
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(myFilter);
filterRegistrationBean.setUrlPatterns(Arrays.asList("/my","/css/*"));
return filterRegistrationBean;
};
@Bean
public ServletListenerRegistrationBean myListener(){
MyServletContextListener myServletContextListener = new MyServletContextListener();
return new ServletListenerRegistrationBean(myServletContextListener);
};
}