不用自己编方法的,URLencode 不要对整个URL 编码,只要对参数编码就行了
下面的test是一个index页面提交参数到servlet,servlet把参数编码后再返回该页面显示
你也可以不用servlet,做成2个JSP页面就行了
/Test/index.jsp:<%@ page contentType="text/html; charset=gb2312" %>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<%
if(request.getParameter("name")!=null) {
String s = new String(request.getParameter("name").getBytes("iso-8859-1"));
out.println(s);
}%>
<form name="form1" method="post" action="/Test/test">
<input name="name" type="text">
<input name="submit" type="submit" value="提交">
</form>
</body>
</html>Servlet:
package servlet;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.Convert;
/**
* @author WuBin
*
*
*
*/
public class Test extends HttpServlet { protected void doGet(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String s = new String(request.getParameter("name").getBytes("iso-8859-1"));
System.out.print(s);
response.sendRedirect("/Test/index.jsp?name=" + java.net.URLEncoder.encode(s , "gb2312"));
}
protected void doPost(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
下面的test是一个index页面提交参数到servlet,servlet把参数编码后再返回该页面显示
你也可以不用servlet,做成2个JSP页面就行了
/Test/index.jsp:<%@ page contentType="text/html; charset=gb2312" %>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<%
if(request.getParameter("name")!=null) {
String s = new String(request.getParameter("name").getBytes("iso-8859-1"));
out.println(s);
}%>
<form name="form1" method="post" action="/Test/test">
<input name="name" type="text">
<input name="submit" type="submit" value="提交">
</form>
</body>
</html>Servlet:
package servlet;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.Convert;
/**
* @author WuBin
*
*
*
*/
public class Test extends HttpServlet { protected void doGet(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String s = new String(request.getParameter("name").getBytes("iso-8859-1"));
System.out.print(s);
response.sendRedirect("/Test/index.jsp?name=" + java.net.URLEncoder.encode(s , "gb2312"));
}
protected void doPost(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
解决方案 »
- jbpm4.3:executionService.signalExecutionById()与taskService.completeTask()有何异同?
- 关于getParameter 和 getAttribute 的生命周期
- request传参数问题
- 有一个float类型的数值,我想只取小数点的后两位,后仍然是float类型,如何做。
- 一个简单的applet的问题
- weblogic在linux下的quickstart.sh启动问题
- 水晶報表的問題
- jsp怎么实现在表单中输入内容是什么样子,就输出什么样子
- 如何在Web页上实现分页打印
- 请问那里有EJB、SESSIONBEAN的教程或是源码一类的,可以速成的~谢谢!有重谢!
- 急!把asp的程序转换成java!300分求解!
- 请教:我的这个structs 应用系统中,有错误:Invalid path /testOracle was requested
String s = null;
if(request.getParameter("name")!=null) {
s = request.getParameter("name");
s = java.net.URLDecoder.decode(s, "UTF-8")
}
%><script>
var getStr = <%=s%>;
</script>