如何从jsp页面中的文本框中获取中文到servlet类中 譬如一个搜索功能,你在一个有搜索功能的jsp页面里面输入中文的搜索内容,如何使后台的servlet类获取正确的信息?现在我通过request.getParameter("searchtext");获得的是乱码?请问如何解决呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 request.setCharacterEncoding("gbk"); 或者写个过滤器 用过滤器.在web.xml中 <filter> <filter-name>encoding</filter-name> <filter-class>filter.Encoding</filter-class> <init-param> <param-name>charset</param-name> <param-value>utf8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>filter.Encoding.java中:package filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class Encoding implements Filter { private String charset = null; public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { arg0.setCharacterEncoding(charset); arg1.setCharacterEncoding("text/xml;charset=" + charset); //System.out.println("filter被执行"); arg2.doFilter(arg0, arg1); } public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub charset = arg0.getInitParameter("charset"); }} 我这里有对UTF-8请求和服务器端进行编码转换的方法,但是gb312的我不太清楚,只是做个参考,希望对你有用。 1、在JS里对中文参数进行两次转码 var login_name = document.getElementById("loginname").value; login_name = encodeURI(login_name); login_name = encodeURI(login_name); 2、在服务器端对参数进行解码 String loginName = request.getParameter("login_name"); loginName = java.net.URLDecoder.decode(loginName,"UTF-8"); 利用String的构造器 new String(bity[],String)来转码 如 new String(request.getParameter("searchtext").getBytes("iso-8859-1"),"UTF-8")得到一个转码后的string对象 struts2标签问题 hibernate插入数据 如何实现电子地图 linux下安装jdk问题 关于struts页面跳转的问题?80分 大侠帮忙看下response传递参数问题 ArrayList对象中的对象问题; 还是那个struts的问题,但问题发生了变化,很奇怪,页面没有做转向,在线等!!! 高分求助!在线等待,J2EE配置问题,各位大人请进!! Hashtable Map.Entry Iterator的使用? 修改、删除功能并发处理 SOS JS+SSH怎么实现用前台JS分页
在web.xml中
<filter>
<filter-name>encoding</filter-name>
<filter-class>filter.Encoding</filter-class>
<init-param>
<param-name>charset</param-name>
<param-value>utf8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
filter.Encoding.java中:
package filter;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;public class Encoding implements Filter {
private String charset = null; public void destroy() {
// TODO Auto-generated method stub } public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
arg0.setCharacterEncoding(charset);
arg1.setCharacterEncoding("text/xml;charset=" + charset);
//System.out.println("filter被执行");
arg2.doFilter(arg0, arg1); } public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
charset = arg0.getInitParameter("charset"); }}
login_name = encodeURI(login_name);
login_name = encodeURI(login_name); 2、在服务器端对参数进行解码 String loginName = request.getParameter("login_name");
loginName = java.net.URLDecoder.decode(loginName,"UTF-8");
new String(request.getParameter("searchtext").getBytes("iso-8859-1"),"UTF-8")得到一个转码后的string对象