SpringBoot定義三大元件Servlet,過濾器Filter,監聽器Listener
阿新 • • 發佈:2018-12-08
SpringBoot定義三大元件Servlet,過濾器Filter,監聽器Listener
1.定義元件的配置類:
com.example.mybatis2018.config.MyServletConfig
package com.example.mybatis2018.config; import com.example.mybatis2018.filter.myFilter; import com.example.mybatis2018.listener.myListener; import com.example.mybatis2018.servlte.MyServlet; 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; import java.util.Collections; @Configuration public class MyServletConfig { //註冊Servlet @Bean public ServletRegistrationBean MyServlet(){ ServletRegistrationBean<MyServlet> myServletServletRegistrationBean = new ServletRegistrationBean<MyServlet>(new MyServlet(), "/myServlet"); return myServletServletRegistrationBean; } //註冊過濾器 @Bean public FilterRegistrationBean myFilter(){ FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); filterRegistrationBean.setFilter(new myFilter());//新增過濾器 filterRegistrationBean.setUrlPatterns(Arrays.asList("/myServlet")); //設定過濾路徑 return filterRegistrationBean; } //註冊監聽器 public ServletListenerRegistrationBean myListener(){ ServletListenerRegistrationBean servletListenerRegistrationBean = new ServletListenerRegistrationBean(); servletListenerRegistrationBean.setListener(new myListener());//新增過濾器 return servletListenerRegistrationBean; } }
2.建立servlet
com.example.mybatis2018.servlte.MyServlet
package com.example.mybatis2018.servlte; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; 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 { PrintWriter witer = resp.getWriter(); witer.write("hello servler!"); } }
3.過濾器Filter
com.example.mybatis2018.filter.myFilter
package com.example.mybatis2018.filter; import javax.servlet.*; import java.io.IOException; import java.util.logging.LogRecord; 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("過濾器執行並放行!"); filterChain.doFilter(servletRequest,servletResponse);//放行 } @Override public void destroy() { } }
4.監聽器Listener
com.example.mybatis2018.listener.myListener
package com.example.mybatis2018.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class myListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("servletContext 物件建立。。。。");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("servletContext 物件銷燬。。。。");
}
}