记一次 从servlet传参数到jsp页面出现乱码问题的解决参考
rs = conn.executeQuery(sql);
while (rs.next())
{
i++; // 编号加1
p_code = rs.getString("code");
p_name = rs.getString("name");
p_price = rs.getDouble("price");
id = rs.getInt("id");
out.println("<tr>");
out.println("<td>" + i + "</td>");
out.println("<td>" + p_code + "</td>");
out.println("<td>" + p_name + "</td>");
out.println("<td>" + p_price + "</td>");
out.println("<td><a href='EditProduct.jsp?id=" + id + "&code="
+ URLEncoder.encode(p_code, "utf-8") + "&name="
+ URLEncoder.encode(p_name, "utf-8") + "&price="
+ p_price + "'>修改</a></td>");
out.println("<td><a href='ProductList?type=delete&code="
+ p_code
+ "' onClick='return confirm(/"你确定要删除吗?/");'>删除</a></td>");
out.println("</tr>");
}
这是一个servlet要转到'EditProduct.jsp 需要传几个参数,但是遇到中文就是老出乱码。
最后用到了URLEncoder.encode();解决了乱码的问题。思考—— java对中文的支持做的不是太完美。
下面是一个获取servlet传过来的参数的表单然后再提交到另外的一个servlet处理。
<form action='EditProduct?id=<%= request.getParameter("id") %>' method='post'>
以前的产品序号:<%=request.getParameter("code")%> <br>
现在的产品序号:<input type='text' name='code'><br>
以前的产品名称:<%=request.getParameter("name")%><br>
现在的产品名称:<input type='text' name='name'><br>
以前的产品单价:<%=request.getParameter("price")%> <br>
现在的产品单价:<input type='text' name='price'><br>
<input type='submit' name='submit' value='修改'>