配置Sprintmvc4&tomcat解释中文乱码问题

来源:互联网 发布:淘宝的91论坛共享号 编辑:程序博客网 时间:2024/05/29 16:31

终极大法:

1、web.xml增加utf8编码器:

<filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

2、编辑tomcat的server.xml,在<Connector节增加URIEncoding属性:

    <Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"    URIEncoding="UTF-8" useBodyEncodingForURI="true"/>


测试,新建jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Hello</title></head><body>    <form action="greeting" method="get">    <input name="name" />    <input type="submit"/>    </form>    <a href="greeting?name=掌上电脑">click me</a></body></html>


新建controller:

package com.freestyle.test.controller;import java.util.HashMap;import java.util.Map;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.servlet.ModelAndView;@Controllerpublic class HelloController {@RequestMapping("/greeting")public ModelAndView greeting(@RequestParam(value = "name", defaultValue = "World") String name) {System.out.println("Hello " + name);Map<String, Object> map = new HashMap<String, Object>();map.put("userName", name);return new ModelAndView("/hello", map);}}



点击click me 或输入中文再递交都能正确识别。



0 0