发表于: 2017-04-26 21:43:04
4 1503
【说明】今天请了一天假,趁着给老师汇报工作也休息一下,可是后面感觉自己请了一天的时间有点多,后面过的也并不安生,总感觉自己有点忙里偷闲,下次要仔细衡量一下时间。
一:今日完成
1)springMVC检验
项目中,通常使用较多是前端的校验,比如页面中js校验。对于安全要求较高点建议在服务端进行校验。
那么后端检验分为那几种呢
controller层的检验,主要是页面请求参数的合法性 ; 还有service层的接口业务参数的检验,是比较重要的;当然,还可以加上dao层的检验。
springmvc使用hibernate的校验框架validation(和hibernate没有任何关系)。
具体的配置文件应该怎么写呢(举一个例子)
<!-- 校验器 -->
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<!-- hibernate校验器-->
<property name="providerClass" value="org.hibernate.validator.HibernateValidator" />
<!-- 指定校验使用的资源文件,在文件中配置校验错误信息,如果不指定则默认使用classpath下的ValidationMessages.properties -->
<property name="validationMessageSource" ref="messageSource" />
</bean>
<!-- 校验错误信息配置文件 -->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<!-- 资源文件名-->
<property name="basenames">
<list> <value>classpath:CustomValidationMessages</value>
</list> </property>
</bean>
然后将检验器注入到处理器映射器中
<mvc:annotation-driven
conversion-service="conversionService" validator="validator">
</mvc:annotation-driven>
最后写一下 配置校验错误信息 就ok了
然后就是在代码中使用了
先是在pojo中定义一下,接着在控制器里面引入,以及返回视图(需要知道的是因为pojo不止一个控制器使用,所以可以进行”分组检验“
2)异常处理器
如果简单区分,可以分为预期异常和运行时异常
对于两者,如果系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理
先是自定义一个异常类
然后定义一个全局异常处理器,对两种类型的异常进行判断
当然还需要在springmvc配置文件里面配置一下
3)拦截器
我之前做过两种拦截器,一个是日志拦截器,另一个是登陆验证拦截器
需要注意的是
对于第一个拦截器,preHandle一定要放行,且将它放在拦截器链接中第一个位置。
第二个就需要放在下面,然后还可能出现权限拦截,
这个就需要把权限校验拦截器,放在登陆认证拦截器之后
相应的如果我在实现这两个功能时
写了LoginController LoginInterceptor两个类,最后在配置文件里面配置一下就ok
二:明日计划
1)继续jmeter压力测试
三:疑难问题
待补充
四:思考总结
springMVC之前自己了解的不深入,特别是有时候配置也可以做出好几种。
看到网上的代码和自己的对比,明明实现了一样的功能,偏偏让我摸不着头脑,还是自己见得少。
评论