步骤
- 定义一个Servelt、Filter、Listener
- 定义一个配置类@Configuration,@Bean 交给容器管理
1. 注册使用Servlet
MyServlet
public class LoginServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.service(req, resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().println("这个一个登录的servelt");
}
}
MyConfigurer
@Configuration
public class MyConfigurer implements WebMvcConfigurer {
@Bean
public ServletRegistrationBean<TestServlet> registerLoginServlet() {
// 一个Servelt封装类 - 封装请求模式、以及具体Servelt
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
servletRegistrationBean.setServlet(new LoginServlet());
// 可设置多个请求模式匹配这个Servelt
servletRegistrationBean.setUrlMappings(Arrays.asList("/login"));
return servletRegistrationBean;
}
}
2. 注册使用Filter
EncodingFilter.java - 统一编码过滤器
public class EncodingFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletResponse resp = (HttpServletResponse) response;
resp.setContentType("text/html;charset=utf-8");
chain.doFilter(request, response);
}
}
MyConfigurer.java
@Configuration
public class MyConfigurer implements WebMvcConfigurer {
@Bean
public FilterRegistrationBean registerEncodingFilter() {
// 封装成 请求过滤的模式、以及过滤器
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new EncodingFilter());
// 所有请求模式,都要经过这个过滤器
filterRegistrationBean.setUrlPatterns(Arrays.asList("/*"));
return filterRegistrationBean;
}
}
3. 注册使用Listener
public class MyServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("Web项目启动中");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("Web项目关闭中");
}
}
@Configuration
public class MyConfigurer implements WebMvcConfigurer {
@Bean
public ServletListenerRegistrationBean<ServletContextListener> registerServletContextListener() {
ServletListenerRegistrationBean servletListenerRegistrationBean = new ServletListenerRegistrationBean();
servletListenerRegistrationBean.setListener(new MyServletContextListener());
return servletListenerRegistrationBean;
}
}