• SpringMvc


    原文网址:http://www.cnblogs.com/fozero/p/6137495.html

    springmvc的post请求中文乱码问题,Get方式的中文乱码问题?

    post方式的乱码,在web.xml文件中添加过滤器处理乱码:

    <filter>
        <filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
         <url-pattern>/*</url-pattern>
    </filter-mapping>

    对于get请求中文乱码问题方法有两个:

    (1)修改tomcat配置文件:

    <ConnectorURIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

    (2)在实际编码中对参数进行重新编码:

    String  param = new String(request.getParamter("person").getBytes("ISO8859-1"),"utf-8");

    web.xml的详细配置前端控制器:

    <servlet>
        <servlet-name>spring-mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:spring-mvc.xml</param-value>
        </init-param>
      <load-on-startup>1<load-on-startup>
    </servlet> <servlet-mapping> <servlet-name>spring-mvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

    注解的处理器映射器和适配器配置:

    <mvc:annotation-driven/>

    视图解析器配置视图前缀和后缀:

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property  name="prefix" value="/WEB-INF/view/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    返回值会通过视图解析器为实际的物理视图,对于 InternalResourceViewResolver 视图解析器,会做如下的解析:
       通过 prefix + returnVal + suffix 这样的方式得到实际的物理视图,然后做转发操作;

    Springmvc常见注解:

    (1)@Controller

       @Controller标记在类上,在springmvc-servlet.xml中管理控制器:

    <context:component-scan base-package="com.sfdsf.controller"/>

    (2)@requestMapping

      用来处理请求地址的映射注解,可用于类和方法上面,用于类上表示该类的所有方法都是以该地址为父路径。

      @RequestMapping注解有六个属性:

     1、 value

        value:指定请求的实际地址;

         2、method;

        method: 指定请求的method类型, GET、POST、PUT、DELETE等

     3、consumes

        consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

      4、produces

        produces:    指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

      5、params

        params: 指定request中必须包含某些参数值是,才让该方法处理。

      6、headers

        headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。

      以@RequestMapping标记的处理方法支持的参数:

      (1)HttpServlet对象:HttpServletRequest,HttpServletResponse,HttpSsssion;

      (2)Spring自己的WebRequest;

      (3)InputStream,OutputStream,Reader,Writer;

      (4)使用@PathVariable,@RequestParam,@CookieValue,@RequestHeader标记的参数

      (5)使用@ModelAttribute标记的参数;

      (6)Map,Model,ModelMap;

      (7)实体类;

      (8)Spring封装的MultipartFile;

      (9)Spring封装的Errors和BindingResult对象;

    (3)@Resource和@Autowired

             @Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。不同的是@Autowired是按照byType来注入,@Resource是按照ByName来注入,如果想让@Autowired按照byName可以借助@Qualifier,默认@Autowired要求注入的对象必须不为null,如果有可能是null,则配置required=false

    (4)@Pathvariable

      用于将请求URL中的动态参数映射到处理方法的形参中:

    @Controller
    public class UserController{
         @RequestMapping("/user/{formId}")
         public String getUserForm(@PathVariable("formId") String formId ){
                return formId;
    
        }  
        
    
    }

    (5)@CookieValue:获取Cookie的值

    (6)@RequestParam:用于将请求参数中的数据映射到controller方法中的形参

    (7)@SessionAttributes:用于将值放在session中,写在class上面

    (8)@ModelAttribute:用于注解和方法参数中,对应的controller方法执行之前先调用@ModelAttribute方法。

    (9)@ResponseBody

      返回的数据不是页面,而是其他某种格式的数据时(json,xml等)使用。

    SpringMvc  controller方法中返回值可选类型

    (1)ModelAndView;(2)Model;(3)ModelMap;(4)Map;(5)View;(6)String;(7)void

  • 相关阅读:
    异常详细信息: System.InvalidCastException: 对象不能从 DBNull 转换为其他类型——的解决方法
    .net显示今天农历的代码!
    在GridView中设置日期格式
    安装VS 2008 SP1后,智能提示变为英文的补丁发布
    SQL server无法执行查询,因为一些文件丢失或未注册等问题的解决
    SQL Server 2000企业管理器中MMC无法创建管理单元的解决方法
    FILTER:progid:DXImageTransform.Microsoft.Gradient使用
    [jQuery] event.stopPropagation()报错
    得到系统当前的dpi设置值
    VS2008 当前不会命中断点,还没有为该文档加载任何符号
  • 原文地址:https://www.cnblogs.com/xiaoweigangwan/p/7844343.html
Copyright © 2020-2023  润新知