新手入门:web项目控制台显示信息教程(对于新手开发,本地测试都很有用)

web项目控制台显示信息教程(对于新手开发,本地测试都很有用)

效果如图显示:新手入门:web项目控制台显示信息教程(对于新手开发,本地测试都很有用)

环境 spring mvc 框架底下实现

(1)首先创建一个类代码如下:

package com.wmc.web.interceptor;
import java.util.Arrays;
import java.util.Date;
import java.util.Map;
import java.util.Map.Entry;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;



public class MethodFilter extends HandlerInterceptorAdapter  {
   private final static Logger logger = LoggerFactory.getLogger(MethodFilter.class);

   public void afterCompletion(HttpServletRequest arg0,
         HttpServletResponse arg1, Object arg2, Exception arg3)
         throws Exception {
   }

   public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
         Object arg2, ModelAndView arg3) throws Exception {
      try {
         long XY_RunStartTime = (Long) arg0.getAttribute("XY_RunStartTime");
         long XY_RunEndTime = System.currentTimeMillis();
         long XY_ExecuteTime = XY_RunEndTime - XY_RunStartTime;
         if (arg2 instanceof HandlerMethod) {
            logger.info("耗时时间:{}ms", XY_ExecuteTime);
         }
      } catch (Exception e) {
         logger.warn("", e);
      }
   }
   public boolean preHandle(HttpServletRequest request, HttpServletResponse arg1,
         Object arg2) throws Exception {

      try {
         long XY_RunStartTime = System.currentTimeMillis();
         request.setAttribute("XY_RunStartTime", XY_RunStartTime);

         if (arg2 instanceof HandlerMethod) {
            HandlerMethod h = (HandlerMethod) arg2;

            if(h.getBean().getClass().getName().indexOf("$")>0){
               logger.info("请求类:{}", h.getBean().getClass().getName().substring(0, h.getBean().getClass().getName().indexOf("$")));
            }else{
               logger.info("请求类:{}", h.getBean().getClass().getName());
            }
            logger.info("请求参数:{}", getParamString(request.getParameterMap()));
         }
         logger.info("请求方法:{}", request.getServletPath());
      } catch (Exception e) {
         logger.warn("", e);
      }

      return true;
   }
   private String getParamString(Map<String, String[]> map) {
             StringBuilder sb = new StringBuilder();
              for(Entry<String,String[]> e:map.entrySet()){
                      sb.append(e.getKey()).append("=");
                    String[] value = e.getValue();
                     if(value != null && value.length == 1){
                             sb.append(value[0]).append("\t");
                         }else{
                             sb.append(Arrays.toString(value)).append("\t");
                        }
                  }
              return sb.toString();
           }
   
   
}

(2)配置一个过滤器 在Spring mvc xml文件中,代码如下

<mvc:interceptors>

<!--使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求--><mvc:interceptor><mvc:mappingpath="/**"/>

<mvc:exclude-mappingpath="/static/**"/>

<beanclass="com.wmc.web.interceptor.MethodFilter"/></mvc:interceptor>


</mvc:interceptors>

 (3)重新启动服务器就好了。 这个时候你会在控制台看到你所调用的URL,传递参数等一系列你想要信息


 希望能帮到大家。大家如果有兴趣可以来我的网站看看:www.jiegelo.com