(二十)处理器方法的参数---请求中所携带的请求参数、乱码问题characterEncodingFilter

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiangshangchunjiezi/article/details/88974326

index.jsp 

Controller 

框架的处理方式:

  ①使用request对象接收参数

           String strName=request.getParameter("name");

           String strAge=request.getParameter("age");

②使用处理器适配器对象,调用处理器方法

      doSome(strName,Integer.parseInt(strAge))

 

show.jsp

 中文乱码解决方法

一、解决post请求乱码问题

在web.xml中配置一个CharacterEncodingFilter过滤器,设置成utf-8;

        <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>
         <--强制请求(HttpServletRequest)对象,使用encoding的字符编码-->
		<init-param>
			<param-name>forceRequestEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
         
         <--强制应答(HttpServletResponse)对象,使用encoding的字符编码-->
		<init-param>
			<param-name>forceResponseEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>characterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

二、get请求中文参数出现乱码解决方法有两个:

①修改tomcat配置文件添加编码与工程编码一致,如下:

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

 ②另外一种方法对参数进行重新编码:

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

ISO8859-1是tomcat默认编码,需要将tomcat编码后的内容按utf-8编码。
 

猜你喜欢

转载自blog.csdn.net/jiangshangchunjiezi/article/details/88974326