一、@Configuration + @Bean
1、注册Servlet,ServletRegistrationBean
我们自己的Servlet
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("Hello MyServlet");
}
}
注册Servlet
@Configuration
public class MyServletConfig {
//注册三大组件
//注册Servlet
@Bean
public ServletRegistrationBean myServlet() {
ServletRegistrationBean<Servlet> servlet = new ServletRegistrationBean<>(new MyServlet(),"/myServlet");
return servlet;
}
}
2、注册Filter,FilterRegistrationBean
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("MyFilter process ......");
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
@Configuration
public class MyServletConfig {
//注册三大组件
//注册Filter
@Bean
public FilterRegistrationBean myFilter() {
FilterRegistrationBean filter = new FilterRegistrationBean();
filter.setFilter(new MyFilter());
filter.setUrlPatterns(Arrays.asList("/hello","/myServlet"));
return filter;
}
}
3、注册Listener,ServletListenerRegistrationBean
public class MyListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("contextInitialized ... web应用启动");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("contextDestroyed ... web应用销毁");
}
}
@Configuration
public class MyServletConfig {
//注册三大组件
//注册Listener
@Bean
public ServletListenerRegistrationBean myListener() {
ServletListenerRegistrationBean<MyListener> listener = new ServletListenerRegistrationBean<>(new MyListener());
return listener;
}
}
二、@WebListener/@WebFilter/@WebServlet + @ServletComponentScan
1、Filter
@WebFilter
public class MyFilter2 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("MyFilter2 process ......");
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
@SpringBootApplication
@ServletComponentScan
public class SpringBoot04WebRestfulcurdApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBoot04WebRestfulcurdApplication.class, args);
}
}
2、Listener
@WebListener
public class MyListener2 implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("MyListener2 ==>> contextInitialized ... web应用启动");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("MyListener2 ==>> contextDestroyed ... web应用销毁");
}
}
@SpringBootApplication
@ServletComponentScan
public class SpringBoot04WebRestfulcurdApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBoot04WebRestfulcurdApplication.class, args);
}
}
3、Servlet
@WebServlet
public class MyServlet2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("Hello MyServlet2");
}
}
@SpringBootApplication
@ServletComponentScan
public class SpringBoot04WebRestfulcurdApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBoot04WebRestfulcurdApplication.class, args);
}
}

本文介绍了在SpringBoot中如何使用@Configuration + @Bean以及@WebListener/@WebFilter/@WebServlet + @ServletComponentScan来注册Servlet、Filter和Listener。详细讲解了ServletRegistrationBean、FilterRegistrationBean和ServletListenerRegistrationBean的用法。

4227

被折叠的 条评论
为什么被折叠?



