springmvc请求参数

1.获取基本类型的参数
@RequestParam:获取请求参数。
@RequestHeader
@CookieValue

<1>不使用注解的方式。如果页面直接传入一个参数。那么直接在方法的参数上,设置一个同名的参数。即可获取到该参数。
<2>使用requestParam可以在方法的参数上注解。指定获取的参数名。这样方法上的参数可以与之同名。
<3>requestParam有三个属性。value(获取的参数名),required(boolean类型。表示参数是否必须带。true表示必须带,默认是true),defaultValue(表示默认值,如果没带参数,可以指定不带参数时的默认值)。

requestHeader和requestValue
requestHeader表示获取请求头中的参数信息。参数使用情况与requestParam类似。
CookieValue表示获取cookie中的信息。使用方式也是同上 。

2.获取引用类型的参数
<1>当页面提交的参数比较多时。可以将方法的参数直接写成一个对象。这个对象中的属性封装这些参数(属性名要与参数名相同)。然后匹配到对象的方法后,springmvc直接将这些参数值自动的封装在这个引用类型的参数中。
<2>这个对象包含其它对象的引用类型,即级联属性的封装。在页面进行提交参数的时候。可以使用引用类型名.属性名的方式进行级联封装。

3.返回请求参数
可以使用原生api,直接在方法上设置原生api参数,将参数放在request,session,application域中。
常用用的原生api:
HttpServletRequest
HttpServletResponse
HttpSession

4.获取参数乱码解决方法
<1>请求乱码:
get请求:修改server.xml。在8080端口的标签设置URIEncoding=“UTF-8”
post请求:在第一次获取请求参数的位置设置request.setCharacterEncoding(“UTF-8”),这样写麻烦。可以在web.xml中配置filter过滤器。

<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>
	</filter>
	<filter-mapping>
		<filter-name>CharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

解决post请求乱码

		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>

再添加初始化的参数配置。配置响应乱码。

总的乱码过滤器

<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>

注:
字符乱码的filter一定要在其它的filter配置之前。避免其它的filter在过滤之前就获取到了参数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值