两个小测试而已。
1、jsp页面webtest.jsp的代码如下:
<html> <head> <title></title> </head> <body> <form name="" action="GetUserNameServlet" method="POST"> <input type="text" name="username"/> <input type="submit" value="submit"/> </form> <a href="GetUserNameServlet?username=哈哈">哈哈</a> </body> </html>
|
servlet的代码如下:
public class GetUserNameServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println(request.getParameter("username")); request.setAttribute("username", request.getParameter("username")); RequestDispatcher dispatcher = request.getRequestDispatcher("resultjsp.jsp"); dispatcher.forward(request, response); } }
|
转向到resultjsp.jsp的页面代码如下:
<html> <head> <title></title> </head> <body> <%=request.getAttribute("username")%> </body> </html>
|
现在要完成的任务是:在webtest.jsp的文本框中输入汉字和通过点击超级链接都不能出现乱码。
首先,要做一个filter,网上源码很多这里就不列举了,这个filter需要把编码格式转为GB2312。
其次,在两个jsp页面的最顶端加入如下代码:
<%@ page contentType="text/html; charset=GB2312" %>
|
最后,在tomcat的server.xml文件中找到Connector标签,并添加useBodyEncodingForURI="true"。注:tomcat5.0需要修改,4.0就不用,默认就有这句话。
重启tomcat后,就达到目的了。
2、解决freemarker的乱码问题
依照上面那个例子,只需替换jsp页面为ftl页面,修改方法为:将.jsp改为.ftl,并将页面中
<%@ page contentType="text/html; charset=GB2312" %>
|
这行代码去掉即可,最后在修改好的resultftl.ftl中,将
<%=request.getAttribute("username")%>
|
改成
别忘了把servlet中转发的页面也改了。
修改完上面那些,最后一步就是在web.xml中将引入freemarker的那句编码格式改成GB2312就OK了。
附上我忘记从那里摘得转化编码的filter:
public class EncodingFilter extends HttpServlet implements Filter {
private String encoding = null; protected FilterConfig filterConfig = null; private boolean ignore = true;
public void destroy() {
this.encoding = null; this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (ignore || (request.getCharacterEncoding() == null)) { String strencoding = selectEncoding(request); if (strencoding != null) { request.setCharacterEncoding(strencoding); } }
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding"); String value = filterConfig.getInitParameter("ignore"); if (value == null) { this.ignore = true; } else if (value.equalsIgnoreCase("true")) { this.ignore = true; } else if (value.equalsIgnoreCase("yes")) { this.ignore = true; } else { this.ignore = false; }
}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}
|
web.xml中这样配置:
<filter> <filter-name>EncodingFilter</filter-name> <display-name>EncodingFilter</display-name> <description>EncodingFilter</description> <filter-class>com.webtest.filter.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GB2312</param-value> </init-param> </filter> <filter-mapping> <filter-name>EncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
|
相关推荐
这里总结了我在j2ee开发过程中,中文乱码的解决方案。希望能够帮到大家!
为了解决这一问题,首先需要了解Java Web工程字符编码的基本理论,包括字符编码集、编码和解码过程,以及不同编码方式的规则。接下来,将详细探讨这些知识点,并提供相应的解决方案。 Java语言是一种纯面向对象的...
解决字符乱码的方法主要是统一编码方式,使编码和解码过程使用相同的字符编码。对于不同类型的编码问题,有不同的解决方案: 1. 开发工具中的乱码问题:以MyEclipse开发工具为例,通常新建工程后,默认编码为ISO...
除了上述步骤外,还可以考虑以下几种方法来进一步优化字符编码设置,从而彻底解决乱码问题: 1. **修改Web应用程序的`.jsp`文件编码**:确保所有的`.jsp`文件都以UTF-8编码保存,并且在页面头部加入`; charset=UTF-...
解决这个问题的方法通常涉及更改Eclipse的默认文件编码设置。以下是几种常见的解决方案: 1. **更改工程的文本文件编码**: - 打开工程的属性(右键点击工程,选择“Properties”)。 - 在左侧的导航栏中选择...
在IDEA中,普通工程的中文乱码问题可以通过修改vmoptions文件和设置编码格式来解决。下面是具体的解决步骤: 1. 找到IDEA的安装路径下的bin目录,选择vmoptions文件。 2. 用记事本打开vmoptions文件,并在最后一行...
标题 "Nutz源码Jdoc在IDE中补全提示时出现乱码解决办法" 涉及的问题是在使用IDE(集成开发环境)查看Nutz框架的源码,并尝试利用Javadoc(Jdoc)进行代码补全提示时遇到了乱码问题。这通常是由于编码设置不正确导致...
本文将详细讨论如何解决ecside导出PDF时出现的中文乱码问题,以及提供的字体文件如何解决这个问题。 ecside是一款基于Java的开源Web应用框架,它提供了丰富的功能,包括数据导出。在某些情况下,当ecside导出包含...
SSH中文乱码解决方案 SSH(Secure Shell)中文乱码问题是开发中常见的问题之一。本文将总结解决SSH中文乱码问题的方法,主要涉及到spring的编码过滤器、struts.properties配置、MyEclipse工程属性设置等方面。 一...
这个特定的例子是将JFreeChart应用于Web工程中,解决了在Web环境下可能出现的乱码问题,确保了图表的清晰易读。 **1. 折线图** 折线图是一种常用的数据可视化方式,常用于显示数据随时间变化的趋势。在JFreeChart中...
这个压缩包"springBoot-mybatis-redis 整合解决乱码问题.rar"似乎提供了一个示例工程,展示了如何解决在整合过程中可能出现的编码问题。以下是对这些技术以及整合过程中的关键知识点的详细解释。 1. **Spring Boot*...
【基于Pushlet_Chat技术的群聊实现及中文乱码问题解决方案】 Pushlet_Chat是一种实时通信技术,常用于构建即时消息系统(IM),尤其在B/S架构中广泛应用。它基于HTTP长连接,通过服务器向客户端推送数据,实现了低...
在这个Eclipse工程实例中,我们将探讨如何使用`jspsmartupload`来实现文件和图片的上传,同时确保文件保存路径中的中文字符不会出现乱码问题。 首先,`jspsmartupload`库解决了文件上传过程中的一些常见问题,如...
Java SpringMVC 乱码解决方案详解 Java SpringMVC 中的乱码问题是开发过程中常见的问题之一,本篇文章将对 Java SpringMVC 中的乱码问题进行详细的分析和解决方案介绍。 页面传值到后台乱码解决 在 Java ...
在Web开发中,Ajax(Asynchronous JavaScript and XML)技术被广泛用于实现页面的异步更新,提高用户体验。然而,当Ajax向Servlet发送请求时,如果处理不当,可能会遇到中文参数乱码的问题。本文将深入探讨如何解决...
Java_web 上传教程 本篇文章主要介绍了 Java_web 上传的两种方法:SmartUpload 和 Commons-...本篇文章提供了两个 Java_web 上传方法的介绍和比较,并总结了作者在使用 Commons-FileUpload 时遇到的问题和解决方法。
Protege 是一个基于 Java 的开源知识管理工具,广泛应用于知识表示、知识工程、人工智能等领域。然而,Protege 在处理中文问题时存在一些问题,例如乱码、无法显示中文字符等。下面是 Protege 中文问题的解决方案: ...
01 下载文件在WebRoot文件夹下的downFile文件夹内.zip 本工程用于演示文件下载,下载文件在WebRoot文件夹下的downFile文件夹内。 本工程编码方式:UTF-8 ...本工程有效地解决了下载时中文文件名出现乱码的情形。