一.关于jsp中超链接传值问题及超链接中中文乱码问题第一次总结

一.关于jsp中超链接传值问题及超链接中中文乱码问题第一次总结

1.jsp中超链接传值使用键值对格式,多个键值对之间用&间隔,即
a
取值使用request对象,也就是直接使用获取参数方法获取
String a = request.getParamter(“a”);
注意:
1.1超链接传值都是String类型,如果需要其他类型,则需要进行类型转换
1.2超链接传值有长度限制,最长不超过255个字符,从?后开始算起
2.jsp中超链接传值中文乱码问题
2.1在Scriptlet代码中解决中文乱码问题
例1
在recode.jsp中
String a = “例”;
a = URLEncoder.encode(a, “UTF-8”);
a = URLEncoder.encode(a, “UTF-8”);
连接
在decode.jsp中
String a = request.getParamter(“a”);
a = URLDecoder.decode(a,“UTF-8”);

		按照网上说法是解码两次,编码一次,原因是[原因补充2.1编码与解码问题]
		但是这里我试过后发现只需要解码一次,在后台就不需要编码了,原因不知

	2.2在EL表达式中解决中文乱码问题
		例2
		recode.jsp中
			假设有一个mesagebean类型的对象mm,而且已经是存到session中
				<a href = "decode.jsp?a=${URLEncoder.encode(mm.title,"UTF-8")}"
				这里说一下,EL表达式是输出四种内置属性的内容,必须是在四种属性之中的内容
				另外${URLEncoder.encode(mm.title, "UTF-8")}的形式是我花费时间最多的,以前是把URL放在${}外面,
				现在这种形式我的理解是输出的依旧是session中的内容,而且是已经解码了的内容,而且解一次码,不需要再后台编码
		在decode.jsp中
			${a}
3.jsp中传递多个中文参数
	
	这里还是要写下来关于传递多个参数问题,由于我没有好好学前端,开始竟然不知道怎么传递多个参数
	3.1在jsp
		现在也还不太理解,把形式写下来
		例3
		在recode.jsp中
			String a = "例";
			String b = "张";
			String c = "刘";
			a = URLEncoder.encode(a, "UTF-8");
			b = URLEncoder.encode(b, "UTF-8");
			c = URLEncoder.encode(c, "UTF-8");
			//我比较喜欢解一次码
		在decode.jsp中
			String a  = request.getParamter("a");
			a = URLDecoder.decode(a,"UTF-8");
			String b  = request.getParamter("b");
			b = URLDecoder.decode(b,"UTF-8");
			String c  = request.getParamter("c");
			c = URLDecoder.decode(c,"UTF-8");
	3.2在EL中
		例4
		在recode.jsp
		依旧基于messagebean对象mm,存在session中
			<a href = "decode.jsp?a=${URLEncoder.encode(mm.title,"UTF-8")}&b=${URLEncoder.encode(mm.content,"UTF-8")}&c=${URLEncoder.encode(mm.time,"UTF-8")}"></a>
		在decode.jsp中
			${a}
			${b}
			${c}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值