2023-01-20 一、SpringMVC處理響應數據 1、處理響應數據方式一 (1)語法:使用ModelAndView對象作為返回值類型,處理響應數據 (2)底層實現原理 ①數據共用到request域 ②跳轉路徑方式:轉發 (3)示例代碼 @RequestMapping("/testModelA ...
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>