zoukankan      html  css  js  c++  java
  • SpringMyBatis-03-实战技巧

    1、中文乱码解决方案

        在表单提交时,如果遇到中文字符会出现乱码现象,Spring提供一个CharacterEncodingFilter过滤器,可以解决乱码问题

        CharacterEncodingFilter使用时需要注意以下问题

    1)表单数据以post方式提交

    2)在web.xml中配置CharacterEncodingFilter过滤器

    3)页面编码和过滤器指定的编码保持一致

    <!--设置中文乱码处理过滤器,每个filter都有一个init方法-->
    <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <!--设置编码格式-->
    <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <filter-mapping>

    2、异常处理(在spring.xml中配置)

        Spring处理异常方式有以下三种

    1)使用Spring提供的简单异常处理器

    SimpleMappingExceptionResolver:只需要在Spring的配置文件中定义异常处理器即可

    2)实现HandlerExceptionResolver接口(自定义异常处理器)

    自定义异常处理器需要在Spring的配置文件中定义才可以使用,适合全局处理有“处理过程”的异常

    3)使用@ExceptionHandler注解实现异常处理

    适合局部处理有“处理过程”的异常

    <!--简单异常处理器-->
    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <property name="exceptionMappings">
    <props>
    <prop key="java.lang.Exception">jsp/error</prop>
    </props>
    </property>
    </bean>

    <!--自定义简单异常处理器-->
    <bean class="com.exception.MyExceptionResolver"/>

    3、拦截器

        1)拦截器接口

    拦截器必须实现HandlerInterception接口

        2)preHandle()

    处理器执行前调用,方法返回true表示继续调用其他拦截器或处理方法,返回false表示中断流程,不会执行后续的拦截器或处理器

        3)postHanle()

    处理器方法执行后,视图处理器调用前,此时可以通过ModelAndView对象模型数据进行处理或对视图进行处理

        4)afterCompletion()

    整个请求处理完毕后调用,如性能监控中可以在此记录结束时间,输出消耗时间,可以进行资源清理

    注:拦截器配置(在spring.xml中配置)

    <mvc:interceptors>
    <mvc:interceptor>
    <!--需要通过拦截器的URL-->
    <mvc:mapping path=""/>
    <!--不需要通过拦截器的URL-->
    <mvc:exclude-mapping path=""/>
    注意:URL不可以写相对路径,绝对路径是从命名空间开始
    <!--拦截器组件-->
    <bean class=""/>
    </mvc:interceptor>
    </mvc:interceptors>

      提示:自定义拦截器,实现HandlerInterceptor接口,需要实现定义的全部抽象方法,如果只需要某一个方法可以继承HandlerInterceptorAdapter

  • 相关阅读:
    mvc Controller类介绍
    Mvc全局过滤器与Action排除
    MVC项目实践,在三层架构下实现SportsStore-03,Ninject控制器工厂等
    EF查询数据库框架的搭建
    MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等
    BootstrapTable与KnockoutJS相结合实现增删改查功能
    JSON详解
    Asp.net管道模型(管线模型)
    NET/ASP.NET MVC Controller 控制器(一:深入解析控制器运行原理)
    .NET/ASP.NET Routing路由(深入解析路由系统架构原理)
  • 原文地址:https://www.cnblogs.com/xslzwm/p/9607885.html
Copyright © 2011-2022 走看看