原生Servlet
在spring boot主程序类上加@ServletComponentScan(basePackages “com.lin.boot”) 扫描原生servlet组件
原生@WebServlet(urlPatterns = “/my”)注解,相当于springMVC中的控制器controller的 @RequestMapping
@WebServlet(urlPatterns = "/my")
public class myservlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("hello servlet");
}
}
原生servlet过滤器@WebFilter(urlPatterns = {“/my”}),相当于springMVC的拦截器
@Slf4j
@WebFilter(urlPatterns = {"/my"}) //原生servlet过滤器,相当于springMVC的拦截器
public class myfilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
log.info("MyFilter初始化完成");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
log.info("MyFilter工作");
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
log.info("MyFilter销毁");
}
}
原生servlet监听器@WebListener
@Slf4j
@WebListener
public class mylistener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
log.info("ServletContextListener监听到项目初始化完成");
ServletContextListener.super.contextInitialized(sce);
}
}
不用组件扫描,用配置类,注释掉@WebServlet(urlPatterns = “/my”)、@WebFilter(urlPatterns = {“/my”}) 、@WebListener
//proxyBeanMethods = true 保证依赖的组件始终是单实例的
@Configuration(proxyBeanMethods = true)
public class myservletConfig {
// 代替了@WebServlet(urlPatterns = "/my")
@Bean
public ServletRegistrationBean myservlet(){
myservlet myservlet = new myservlet();
return new ServletRegistrationBean(myservlet,"/my");
}
//代替@WebFilter(urlPatterns = {"/my"}) 原生servlet过滤器,相当于springMVC的拦截器
@Bean
public FilterRegistrationBean myFilter(){
myfilter myfilter = new myfilter();
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(myfilter);
filterRegistrationBean.setUrlPatterns(Arrays.asList("/my"));
return filterRegistrationBean;
}
//监听器
@Bean
public ServletListenerRegistrationBean myLister(){
mylistener mylistener = new mylistener();
return new ServletListenerRegistrationBean(mylistener);
}
}