zoukankan      html  css  js  c++  java
  • SpringBoot-web综合

    1. 自定义Filter
      public class MyFilter implements Filter {
      
          @Override
          public void init(FilterConfig filterConfig) throws ServletException {
              System.out.println("filter init");
          }
      
          @Override
          public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
              HttpServletRequest request = (HttpServletRequest) servletRequest;
              String uri = request.getRequestURI();
              System.out.println("filter uri : " + uri);
              filterChain.doFilter(servletRequest,servletResponse);
          }
      
          @Override
          public void destroy() {
              System.out.println("filter destroy");
          }
      }
      
    2. 自定义Listener
      /**
       * 描述:
       * 1.ServletContextListener -- 监听servletContext对象的创建以及销毁
       * 2.HttpSessionListener  -- 监听session对象的创建以及销毁
       * 3.ServletRequestListener -- 监听request对象的创建以及销毁
       * 4.ServletContextAttributeListener  -- 监听servletContext对象中属性的改变
       * 5.HttpSessionAttributeListener  --监听session对象中属性的改变
       * 6.ServletRequestAttributeListener  --监听request对象中属性的改变
       * @outhor ios
       * @create 2019-01-03 3:00 PM
       */
      public class MyListener implements ServletRequestListener {
      
          @Override
          public void requestDestroyed(ServletRequestEvent sre) {
              System.out.println("---------------------------->请求销毁");
          }
      
          @Override
          public void requestInitialized(ServletRequestEvent sre) {
              System.out.println("---------------------------->请求创建");
          }
      }
      
    3. 自定义interceptor
      public class MyInterceptor implements HandlerInterceptor {
      
          @Override
          public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
              System.out.println("拦截器 -- 请求处理之前");
              return false;
          }
      
          @Override
          public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
              System.out.println("拦截器 -- 请求处理之后,视图渲染之前");
          }
      
          @Override
          public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
              System.out.println("拦截器 -- 请求处理之后,视图渲染之后");
          }
      }
      
    4. 注册自定义的Filter,Listener,Intercetor
      @Configuration
      public class WebConfig implements WebMvcConfigurer {
      
          @Bean
          public FilterRegistrationBean filterRegistrationBean(){
              FilterRegistrationBean bean = new FilterRegistrationBean();
              bean.setFilter(new MyFilter());
              bean.setName("MyFilter");
              bean.addUrlPatterns("/*");
              return bean;
          }
      
          @Bean
          public ServletListenerRegistrationBean listenerRegistrationBean(){
              ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean();
              bean.setListener(new MyListener());
              return bean;
          }
      
          @Override
          public void addInterceptors(InterceptorRegistry registry) {
              registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");
          }
      }
      
  • 相关阅读:
    error和exception有什么区别?
    运行时异常与一般异常有何异同?
    由c++循环中局部变量地址不变而引发的思考
    Navicat连接Mysql数据库报错,但是命令行可以连接上
    git reset --hard HEAD^后显示more?的解决方案
    java基础易错、难理解、易混淆知识点复习
    More than one file was found with OS independent path 'assets/ap1.data'
    UML类图中方法(操作)的表示格式
    正则匹配以xx开头以xx结尾的单词
    运行PL/SQL时只输出anonymous block completed
  • 原文地址:https://www.cnblogs.com/king-peng/p/10214535.html
Copyright © 2011-2022 走看看