Java Request.getparameter从输入中丢弃特殊字符
我试图从带有特殊字符的文本框中获取一些用户输入值。但当我得到它时,字符串就被特殊字符丢弃了 就像我传递输入一样:poly&&(mer@) 下面的代码将此字符串命名为:polyJava Request.getparameter从输入中丢弃特殊字符,java,jsp,servlets,Java,Jsp,Servlets,我试图从带有特殊字符的文本框中获取一些用户输入值。但当我得到它时,字符串就被特殊字符丢弃了 就像我传递输入一样:poly&&(mer@) 下面的代码将此字符串命名为:poly HttpServletRequest request = ServletActionContext.getRequest(); request.setCharacterEncoding("UTF-8"); String text = (new String(request.getParam
HttpServletRequest request = ServletActionContext.getRequest();
request.setCharacterEncoding("UTF-8");
String text = (new String(request.getParameter("searchBarField")
.getBytes("UTF-8")));
在我的jsp中,有一个字符编码标记。请建议。您的应用程序服务器似乎未配置为支持Unicode字符。如果您使用的是Tomcat容器。在连接器中将URIEncoding设置为
UTF-8
<Server port="8105" shutdown="SHUTDOWN">
<Service name="Catalina">
<Connector port="8180" URIEncoding="UTF-8" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" />
</Engine>
</Service>
</Server>
另一种方法是编写一个
过滤器
,用于处理web应用程序的字符编码。还要注意这一点。您的应用程序服务器似乎没有配置为支持Unicode字符。如果您使用的是Tomcat容器。在连接器中将URIEncoding设置为UTF-8
<Server port="8105" shutdown="SHUTDOWN">
<Service name="Catalina">
<Connector port="8180" URIEncoding="UTF-8" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" />
</Engine>
</Service>
</Server>
另一种方法是编写一个
过滤器
,用于处理web应用程序的字符编码。另外,请注意这一点。我已经解决了您的问题,如下所示,它工作得非常完美
我的JSP是index.JSP
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="GetParameter">
Name:<input type="text" name="name">
<br>
<input type="submit" value="submit" />
</form>
</body>
</html>
希望它能与您的代码配合使用……我已按如下方式解决了您的问题,而且效果非常好 我的JSP是index.JSP
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="GetParameter">
Name:<input type="text" name="name">
<br>
<input type="submit" value="submit" />
</form>
</body>
</html>
希望它能与您的代码配合使用……当您向服务器发送HTTP请求时,请确保您的URL已首先编码(例如:Javascript中的encodeURIComponent()): } 在服务器端,应该已经对其进行解码:
String serialnumber = request.getParameter("serialnumber");
当您向服务器发送HTTP请求时,请确保首先对URL进行编码(例如:Javascript中的encodeURIComponent()): } 在服务器端,应该已经对其进行解码:
String serialnumber = request.getParameter("serialnumber");
希望这个链接的答案对你有帮助!。。希望这个链接的答案对你有帮助!。。我得到了答案。实际上,问题是我的jsp。我正在通过location.href调用action。当我使用post时,它工作正常。谢谢你们的建议。谢谢@krupa。我的问题已经解决了,但并不是用您给出的解决方案解决的。我也遇到了同样的问题,为我解决了这个问题:我在jsp页面中将“ISO-8859-1”替换为“UTF-8”。我的jsp页面声明如下:我得到了答案。实际上,问题是我的jsp。我正在通过location.href调用action。当我使用post时,它工作正常。谢谢你们的建议。谢谢@krupa。我的问题已经解决了,但并不是用您给出的解决方案解决的。我也遇到了同样的问题,为我解决了这个问题:我在jsp页面中将“ISO-8859-1”替换为“UTF-8”。我的jsp页面声明如下所示:我尝试了这个,但没有成功。实际上,问题在于jsp。不是很好用。非常感谢。我试过了,但没用。实际上,问题在于jsp。不是很好用。谢谢。