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

index.jsp 

一、使用HttpServletRequest获取 

@RequestMapping("/login.do")  
public String login(HttpServletRequest request){  
    String name = request.getParameter("name")  
    String pass = request.getParameter("pass")  
}  

二、将表单参数注入到方法形参,注意和表单的字段一致

Controller 

框架的处理方式:

  ①使用request对象接收参数

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

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

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

      doSome(strName,Integer.parseInt(strAge))

 

三、自动注入Bean属性 

<form action="login.do">  
用户名:<input name="name"/>  
密码:<input name="pass"/>  
<input type="submit" value="登陆">  
</form>  
  
//封装的User类  
public class User{  
  private String name;  
  private String pass;  
}  


@RequestMapping("/login.do")  
public String login(User user)  
{  
   syso(user.getName());  
   syso(user.getPass());  
}  

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编码。
 

posted @ 2019-04-02 16:30  测试开发分享站  阅读(190)  评论(0编辑  收藏  举报