SpringMVC的拦截器和上传组件
拦截器
拦截器的介绍:SpringMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理
拦截器的使用场景:
1.日志记录
记录请求信息的日志,以便进行信息的监控、信息统计、计算PV(Page View)等等。
2.权限检查
如登陆检查,进入处理器检测是否登陆,如果没有登陆,直接返回登陆页面
3.性能监控
有时候系统在某段时间莫名其妙的慢,可以通过拦截器在进入处理器之前记录开始时间,在处理完后记录结束时间,从而得到该请求的处理时间
4.通用行为:、
读取cookie得到用户信息并将用户对象放入请求,从而更加方便后续流程的使用,还有如提取Locale、Theme信息等,只要是多个处理器都需要的即可使用拦截器实现
5.OpenSessionView
如Hibernate,在进入处理器之前打开Session、在完成后关闭Session。......本质也是AOP,也就是符合横切关注点的多有功能都可以放入拦截器实现
使用方法:
实现拦截器接口
postHandle()方法可以用来定义一些公共的变量,然后再视图中就可以获取到了。
afterCompletion()方法使用的不是很多。
检查是否登陆:
1.新建一个包,并在该包下创建一个MyLoginInterceptor类并让该类实现HandlerInterceptor接口
2.在spring-mvc.xml文件中配置一下,你要拦截哪一个目录
3.再自己写的拦截器中写上如下的代码,重启服务器即可完成拦截
上传
springMvc提供了一个上传的组件:
1.需要在form表单中添加 enctype="multipart/form-data"属性。这是必须要的。
2.在表单中使用<input type="file" name="file"/> ,这里的type必须时file才行
3.在spring-mvc.xml文件中进行配置
4.在controller类中的代码
注意事项:
然后就可以正常的上传文件了。
欢迎关注小编的微信公众号(java架构师资源分享)