Spring Boot学习笔记(一):注册Servlet三大组件(Servlet、Filter、Listener)

    技术2022-07-10  100

    这篇博客是最近学习SpringBoot总结出来的,仅为我个人的学习总结,不足之处,敬请指正。

    注册方式一:ServletRegistrationBean 第一步:创建MyServlet类,实现HttpServlet抽象类

    import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class MyServlet extends HttpServlet { //快捷键ctrl+o //选择doGet方法和doPost方法进行重写 @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 { //项目运行成功之后,会在页面上打印出"Hello MyServlet" resp.getWriter().write("Hello MyServlet"); } }

    第二步:在配置类中进行实例化

    @Configuration public class MyServerConfig { //注册三大组件 @Bean public ServletRegistrationBean myServlet(){ ServletRegistrationBean registrationBean=new ServletRegistrationBean(new MyServlet(),"/myServlet"); return registrationBean; }

    运行结果: 注册方式二:FilterRegistrationBean 第一步:创建MyFilter类,实现Filter接口

    import javax.servlet.*; import java.io.IOException; //注意,在继承Filter接口时,选择javax.servlet包下的Filter接口 public class MyFilter implements Filter { //(IDEA)ctrl+o快捷键 //重写Filter的init、destory、doFilter三个方法 @Override public void init(FilterConfig filterConfig) throws ServletException {} @Override public void destroy() {} @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { //注册成功之后,在控制台输出MyFilter processed success... System.out.println("MyFilter processed success..."); filterChain.doFilter(servletRequest, servletResponse); } }

    第二步:在配置类中进行实例化

    import java.util.Arrays; @Configuration public class MyServerConfig { //用FilterRegistrationBean方式注册 @Bean public FilterRegistrationBean myFilter(){ FilterRegistrationBean registrationBean=new FilterRegistrationBean(); registrationBean.setFilter(new MyFilter()); //拦截/myServlet之后生效 registrationBean.setUrlPatterns(Arrays.asList("/myServlet")); return registrationBean; } }

    运行结果(控制台输出): 注册方式三:ServletListenerRegistrationBean 第一步:创建MyListener,实现ServletContextListener接口

    import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class MyListener implements ServletContextListener { //重写contextInitialized、contextDestroyed方法 @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 MyServerConfig { //用ServletListenerRegistrationBean方式注册 @Bean public ServletListenerRegistrationBean myListener(){ ServletListenerRegistrationBean<MyListener> registrationBean=new ServletListenerRegistrationBean<>(new MyListener()); return registrationBean; }

    运行结果:

    Processed: 0.014, SQL: 9