package com.tiamaes.dep.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Debug {
boolean value() default true;
}
package com.tiamaes.dep.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface StringResult {
String value();
}
package com.tiamaes.dep.interceptor;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import com.tiamaes.dep.annotation.Debug;
import com.tiamaes.dep.annotation.StringResult;
public class DebugInterceprot implements HandlerInterceptor {
private boolean debug = true;
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
//首先判断是否是Debug模式(全局),如果否则使拦截器失效
if(!this.debug) return true;
if(handler instanceof HandlerMethod){
HandlerMethod method = (HandlerMethod)handler;
Debug isDebug = method.getMethodAnnotation(Debug.class);
StringResult stringResult = method.getMethodAnnotation(StringResult.class);
//如果没有@StringResult注解则跳过拦截
//判断方法上注解的Debug值,如果否则不拦截
if(stringResult==null||(isDebug !=null && isDebug.value() == false)){
return true;
}else{
//拦截方法,并将stringResult中的内容返回给前台
PrintWriter out = response.getWriter();
out.print(stringResult.value());
}
}
return false;
}
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
// TODO Auto-generated method stub
}
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex)
throws Exception {
// TODO Auto-generated method stub
}
public boolean isDebug() {
return debug;
}
public void setDebug(boolean debug) {
this.debug = debug;
}
}
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.tiamaes.dep.interceptor.DebugInterceprot">
<property name="debug" value="true"/>
</bean>
</mvc:interceptor>
</mvc:interceptors>
package com.tiamaes.dep.system.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.tiamaes.dep.annotation.Debug;
import com.tiamaes.dep.annotation.StringResult;
@Controller
@RequestMapping("/test")
public class AspectTestController {
@RequestMapping("/1")
@ResponseBody
//@Debug(false)
@StringResult("Interceptor")
public String test1(){
return "The controller request!";
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有