我想知道jsp:param传递参数的过程,涉及中文乱码问题
代码如下MyJsp.jsp:<jsp:includepage="hello.jsp"><jsp:paramvalue="我胡汉三"name="userName"/></j...
代码如下
MyJsp.jsp:
<jsp:include page="hello.jsp">
<jsp:param value="我胡汉三" name="userName"/>
</jsp:include>
hello.jsp:
<%=request.getParameter("userName") %>
jsp页面传参方式不是只有3中,url,get和post,我开始觉得这个应该属于url或者get方式的传参吧,如果是这样的话,那么tomcat应该是会默认对url和get方式提交的参数用iso-8859-1重新编码,所以我也尝试过修改tomcat的server.xml文件,在Connecter标签里面添加URIEncoding=“UTF-8”,但是没效果
然后我在hello.jsp页面获取参数之前设置request.setCharacterEncoding("UTF-8");也没效果
但是我在MyJsp.jsp里面设置request.setCharacterEncoding("UTF-8");就有效果了
我觉得这个和我之前对jsp参数编码的理解不太一样····,URIEncoding没有用说明这种方式不是url或者get方式,但是request.setCharacterEncoding()不是表明对浏览器发送来的数据进行重新编码吗,那么上面这个例子是不是表明在提交请求的页面request就执行了对参数的重编码,正常来说应该是在hello.jsp里面设置request.setCharacterEncoding()方法才对吧
注:这2个页面我都加了设置浏览器编码的代码和jsp页面编码,如下
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
重点是我这个不是涉及到后台吧,就是一个jsp页面包含另一个jsp页面并传递一个参数,然后在包含的页面里面打印获得的参数,我直接运行项目显示MyJsp.jsp页面 展开
MyJsp.jsp:
<jsp:include page="hello.jsp">
<jsp:param value="我胡汉三" name="userName"/>
</jsp:include>
hello.jsp:
<%=request.getParameter("userName") %>
jsp页面传参方式不是只有3中,url,get和post,我开始觉得这个应该属于url或者get方式的传参吧,如果是这样的话,那么tomcat应该是会默认对url和get方式提交的参数用iso-8859-1重新编码,所以我也尝试过修改tomcat的server.xml文件,在Connecter标签里面添加URIEncoding=“UTF-8”,但是没效果
然后我在hello.jsp页面获取参数之前设置request.setCharacterEncoding("UTF-8");也没效果
但是我在MyJsp.jsp里面设置request.setCharacterEncoding("UTF-8");就有效果了
我觉得这个和我之前对jsp参数编码的理解不太一样····,URIEncoding没有用说明这种方式不是url或者get方式,但是request.setCharacterEncoding()不是表明对浏览器发送来的数据进行重新编码吗,那么上面这个例子是不是表明在提交请求的页面request就执行了对参数的重编码,正常来说应该是在hello.jsp里面设置request.setCharacterEncoding()方法才对吧
注:这2个页面我都加了设置浏览器编码的代码和jsp页面编码,如下
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
重点是我这个不是涉及到后台吧,就是一个jsp页面包含另一个jsp页面并传递一个参数,然后在包含的页面里面打印获得的参数,我直接运行项目显示MyJsp.jsp页面 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询