一.关于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}
发布了25 篇原创文章 · 获赞 3 · 访问量 324

猜你喜欢

转载自blog.csdn.net/weixin_43404791/article/details/89303013
今日推荐