SpringMVC 拦截器

来源:互联网 发布:mac 搜狗五笔偏好设置 编辑:程序博客网 时间:2024/06/07 03:16
SpringMVC拦截器
一:实现基础拦截器
如果想在Spring MVC中实现拦截器的处理,那么就必须有一个专门的处理程序类,而这个程序类要继承HandleInterceptor接口。这个接口中有三个处理操作方法:
public boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler)throws Exception; 请求处理前拦截,在请求真正提交给Action之前处理。
public boolean postHandle(HttpServletRequest request,HttpServletResponse response,Object handler,ModelAndView moderAndView)throws Exception; 处理中拦截。
public boolean afterHandle(HttpServletRequest request,HttpServletResponse response,Object handler)throws Exception; 请求处理后拦截。
1:首先定义一个子类ValidationInterceptor实现HandleInterceptor接口。
2:修改spring-mvc.xml的配置文件,追加拦截器的配置项
这样拦截器就对配置文件定义的文件路径进行拦截了。
HandlerMethod(核心)
如果要想执行拦截处理,肯定是以Action执行前为主的操作。其中有一个重要的类:org.springframework.web.method.HanddlerMethod.这个类有几个重要的操作方法:
1:public Object getBean() 取得操作对象的Bean(action的实例化对象)
2:public Method getMethod() 取得访问路径对应的方法
3:public MethodParameter[] getMethodParmeters() 取得方法的参数列表
这些方法可以在拦截器之中取得要接收的类对象,然后取得类对象中的方法和参数。

二:获取拦截信息
1:首先要进行拦截规则的定义。基本上所有的拦截规则都保存在一个资源文件里面:validations.properties。
2:在配置文件中进行资源文件的配置,添加拦截器的拦截规则资源文件
3:如果要进行资源读取,则需要在拦截器之中进行资源读取对象的注入。
4:随后就是进行资源的key的拼凑,利用对象的名字和对象要操作的方法实现key的拼凑,随后就需要对这些规则拆分,并且验证请求数据是否存在。

三:数据验证处理
很明显验证的过程是一个繁杂重复的工作,为了方便,先建立一个专门的数据格式的验证检测类。
1:建立message.properties配置文件
2:建立pages.properties配置文件,让其出错之后跳转到一个相对应的错误页面。
key的格式:XxxAction.方法.error.page;
3:建立一个单独的验证工具类,进行数据的验证处理:
4:建立一个检测数据格式的处理类
5:修改拦截器进行数据拦截控制。

四:错误跳转
1:一般项目里面错误页会提供两份:
一个是针对全局的错误页:/pages/errors.jsp(error.page=/error.action)
还有针对每一个Action的错误页的设置:
例如:EmpAction.add.error.page=/pages/emp/emp_add_pre.action
2:进行跳转的配置处理。

五:上传文件检验
在实际的运行过程之中,往往还需要考虑上传文件的问题,尤其以图片最为常见。
1:如果进行上传的操作验证,首先就是编写验证规则。所以应该在validations.properties文件里准备两种规则:
一种是公共的上传验证规则
一种是某一个Action的自己的规则。
2:现在必须要想办法判断什么时候需要进行上传文件类型的检验。应该建立一个专门负责验证上传处理的类。一般看上传表单是否有封装。
3:在拦截器中使用验证工具:
0 0
原创粉丝点击