学习笔记——SpringMVC处理响应数据;SpringMVC处理请求域响应乱码问题

Posted isDaHua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记——SpringMVC处理响应数据;SpringMVC处理请求域响应乱码问题相关的知识,希望对你有一定的参考价值。

2023-01-20

一、SpringMVC处理响应数据

1、处理响应数据方式一

(1)语法:使用ModelAndView对象作为返回值类型,处理响应数据

(2)底层实现原理

①数据共享到request域

②跳转路径方式:转发

(3)示例代码

@RequestMapping("/testModelAndView")
    public ModelAndView testModelAndView()
        ModelAndView mv = new ModelAndView();
        //设置model
        mv.addObject("stuName", "zhangsan");
        //设置view
        mv.setViewName("response_success");
        return mv;
    
<h3>测试Response数据</h3>
<a th:href="@/testModelAndView">测试testModelAndView数据</a>

2、处理响应数据方式二

(1)语法:使用Map或Model或ModelMap作为参数入参,处理响应数据

(2)底层实现原理

①数据共享到request域

②跳转路径方式:转发

(3)示例代码

private final static String SUCCESSRESPONSE="response_success";
@RequestMapping("/testModelOrMapOrModelMap")
    public String testModelOrMapOrModelMap(ModelMap modelMap)
        modelMap.addAttribute("stuName","lisi");
        return SUCCESSRESPONSE;
    

3、将数据共享到session域

(1)示例代码

@RequestMapping("/testSession")
    public String testSession(HttpSession session)
        session.setAttribute("stuName","wangwu");
        return SUCCESSRESPONSE;
    

二、SpringMVC处理请求域响应乱码问题

1、javaWeb解决乱码

(1)解决POST请求乱码

request.setCharacterEncoding("UTF-8");

(2)解决GET请求乱码

<Connector URIEncoding="UTF-8" port="8080" protocol="HTTP/1.1" 
 connectionTime="20000" redirectPort="8443" />

(3)解决响应乱码

response.setCharacterEncoding("GBK");
response.setContentType("text/html;charset=UTF-8");

2、使用CharacterEncodingFilter步骤

(1)注意:CharacterEncodingFilter必须注册在第一个过滤器位置

(2)步骤:

①注册CharacterEncodingFilter

②为CharacterEncodingFilter设置初始化

<!--    解决中文乱码的过滤器(注意:该过滤器要放在最上面)-->
    <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>
<!--        解决请求和响应乱码-->
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

 

以上是关于学习笔记——SpringMVC处理响应数据;SpringMVC处理请求域响应乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

SpringMVC学习笔记1:SpringMVC概述

springMVC学习笔记-----注解和非注解入门小程序

《springMVC》学习笔记

Spring MVC 学习笔记 --- [SpringMVC的数据响应(Ajax提交请求后,用JSON格式响应数据)]

SpringMVC学习笔记4:数据处理和跳转

学习笔记——SpringMVC简介;SpringMVC处理请求原理简图;SpringMVC搭建框架