发表于: 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之前自己了解的不深入,特别是有时候配置也可以做出好几种。

看到网上的代码和自己的对比,明明实现了一样的功能,偏偏让我摸不着头脑,还是自己见得少。


返回列表 返回列表
评论

    分享到