<jsp:param>标签传递中文参数时出现乱码

本文介绍了解决JSP页面中使用&lt;jsp:param&gt;标签传递中文参数时出现乱码的问题。通过设置request.setCharacterEncoding方法指定字符集,并调整&lt;Connector&gt;元素的useBodyEncodingForURI属性为true来进一步确保正确编码。
<jsp:param>标签传递中文参数时出现乱码时,请设置request.setCharacterEncoding("具体参数")。
如若还不行,设置server.xml中设置<Connector>元素的useBodyEncodingForURI属性为true。(此步没经过测试)
例如:
页面一:jspparam.jsp

<%@ page pageEncoding="GB2312"%>
<%request.setCharacterEncoding("GB2312"); %>
<jsp:forward page="getparam.jsp?country1=中国">
  <jsp:param name="country2" value="中国"/>
</jsp:forward>

页面二:getparam.jsp
<%@ page pageEncoding="gb2312" c%>
<%
String country1 = request.getParameter("country1");
String country2 = request.getParameter("country2");

%>
country1 = <%=country1 %>
country2 = <%=country2 %>
以下是创建 `main.jsp` 页面的代码示例,该页面包含静态包含 `header.jsp`、动态包含 `greeting.jsp` 并传递 `username` 参数为“张三”、静态包含 `footer.jsp`,同避免乱码问题。 ### main.jsp ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Main Page</title> </head> <body> <!-- 静态包含 header.jsp --> <%@ include file="header.jsp" %> <!-- 动态包含 greeting.jsp传递参数 --> <jsp:include page="greeting.jsp"> <jsp:param name="username" value="张三" /> </jsp:include> <!-- 静态包含 footer.jsp --> <%@ include file="footer.jsp" %> </body> </html> ``` ### header.jsp ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <header> <h1>这是头部导航</h1> </header> ``` ### greeting.jsp ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String username = request.getParameter("username"); %> <p>欢迎,<%= username %>!</p> ``` ### footer.jsp ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <footer> <p>这是页脚信息</p> </footer> ``` 在上述代码中,`main.jsp` 页面通过 `<%@ include %>` 指令静态包含 `header.jsp` 和 `footer.jsp`,通过 `<jsp:include>` 标签动态包含 `greeting.jsp` 并传递 `username` 参数。每个 JSP 页面都设置了字符编码为 `UTF-8`,以避免乱码问题。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值