方法一:
1 要在类上加@WebServlet(urlPatterns = “/my”)//效果直接响应,没有Spring拦截
2 要配合扫描包使用在含有main的类中Boot05AdminApplication加上@ServletComponentScan(“com.ysj.admin”)//指定原生的servlet在哪里
3 使用Filter以及监听器Listener都要配合@ServletComponentScan(“com.ysj.admin”)使用
- @WebFilter(urlPatterns = “/css/*”)//过滤器
- @WebListener
使用servlet
1 要在类上加@WebServlet(urlPatterns = “/my”)//效果直接响应,没有Spring拦截
/**
* @author ysj
* @createTime 2021/9/3 9:56 下午
* @description
*/
@WebServlet(urlPatterns = "/my")
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("666");
}
}
2 要配合扫描包使用在含有main的类中Boot05AdminApplication加上@ServletComponentScan(“com.ysj.admin”)//指定原生的servlet在哪里
@SpringBootApplication
@ServletComponentScan("com.ysj.admin")
public class Boot05AdminApplication {
/**
*
* @param args
*/
public static void main(String[] args) {
SpringApplication.run(Boot05AdminApplication.class, args);
}
}
使用Filter以及监听器Listener
@WebFilter(urlPatterns = “/css/*”)//过滤器
@WebListener
方法二:
ServletRegistrationBean, FilterRegistrationBean, and ServletListenerRegistrationBean
package com.ysj.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;
/**
* @author ysj
* @createTime 2021/9/3 10:28 下午
* @description
*/
@Configuration//是一个配置类
public class MyRegistConfig {
@Bean
public ServletRegistrationBean myServlet() {
MyServlet myServlet = new MyServlet();
return new ServletRegistrationBean(myServlet, "/my", "/my02");//使用过后面的访问
}
@Bean
public FilterRegistrationBean myFilter() {//过滤是让你执行
MyFilter myFilter = new MyFilter();
// return new FilterRegistrationBean(myFilter,myServlet());
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);
}
}
扩展:DispatchServlet 如何注册进来
- 容器中自动配置了 DispatcherServlet 属性绑定到 WebMvcProperties;对应的配置文件配置项是 spring.mvc。
- 通过 ServletRegistrationBean 把 DispatcherServlet 配置进来。
- 默认映射的是 / 路径。
- Tomcat-Servlet;
多个Servlet都能处理到同一层路径,精确优选原则
A: /my/
B: /my/1