在JSP页面间传递中文参数时,为了确保中文能够正确显示,通常需要对参数进行编码。这里给出一个简单的示例,说明如何在JSP页面中传递和接收经过URL编码的中文参数。
### 发送页面(sender.jsp)
在这个页面中,我们假设有一个表单或者链接,用于向另一个页面发送中文参数。这里我们使用JavaScript的`encodeURIComponent`函数来对中文参数进行编码。
p
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>发送页面</title>
</head>
<body>
<script type="text/javascript">
// 假设我们要传递的中文参数
var param = "你好,世界!";
// 使用encodeURIComponent进行URL编码
var encodedParam = encodeURIComponent(param);
// 构建URL并跳转
window.location.href = "receiver.jsp?msg=" + encodedParam;
</script>
</body>
</html>
### 接收页面(receiver.jsp)
在这个页面中,我们接收经过URL编码的中文参数,并使用Java的`URLDecoder`类(在JSP中通常通过JSTL或EL表达式与JavaBean结合使用,但这里为了简化说明,直接使用Java代码片段)进行解码。
p
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.net.URLDecoder"%>
<%
// 从请求中获取参数
String msg = request.getParameter("msg");
// 使用URLDecoder.decode进行解码,这里假设使用的是UTF-8编码
String decodedMsg = URLDecoder.decode(msg, "UTF-8");
// 设置到请求属性中(可选,根据实际需求)或直接使用
request.setAttribute("decodedMsg", decodedMsg);
%>
<!DOCTYPE html>
<html>
<head>
<title>接收页面</title>
</head>
<body>
<p>接收到的消息是:<%=decodedMsg%></p>
</body>
</html>
请注意,在实际应用中,直接在JSP页面中使用Java代码(Scriptlet)不是最佳实践。更推荐的做法是使用JSTL标签库、EL表达式或MVC框架(如Spring MVC)来处理逻辑和数据的展示。但上述示例为了简单明了地说明问题,直接使用了Java代码。