- 浏览: 89357 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
kuge6688:
我的中文还不显示啊。。。。。。。。。。。。。。。求
Itext中文处理pdf(转) -
xmllong:
奇怪,第一个代码例子就不行,只输出start ok,中间的中文 ...
Itext中文处理pdf(转) -
byandby:
Class类有一个forName()静态方法,可以根据传入的类 ...
Java中的Class对象 -
xiaoyuqi00:
c:/aoke_temp/userInfo2009070710 ...
用jspsmartupload下载文件 -
wsbwindy:
good
怎样用JspSmartUpload实现文件上传攻略
1.过滤器 (包含get与post方式)SetCharacterEncodingFilter.java
package com.qingfeng.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; import javax.servlet.UnavailableException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; public class SetCharacterEncodingFilter implements Filter { /** * * 对 HttpServletRequestWrapper 进行扩充, 不影响原来的功能并能提供所有的 HttpServletRequest * 接口中的功能. 它可以统一的对 Tomcat 默认设置下的中文问题进行解决而只需要用新的 Request 对象替换页面中的 * request 对象即可. */ protected String encoding = null; protected FilterConfig filterConfig = null; //protected boolean ignore = true; public void destroy() { this.encoding = null; this.filterConfig = null; } class Request extends HttpServletRequestWrapper { public Request(HttpServletRequest request) { super(request); } /** * 转换由表单读取的数据的内码. * 从 ISO 字符转到 utf-8(或gbk). */ public String toChi(String input) { try { byte[] bytes = input.getBytes("ISO-8859-1"); return new String(bytes, encoding); } catch (Exception ex) { } return null; } /** * Return the HttpServletRequest holded by this object. */ private HttpServletRequest getHttpServletRequest() { return (HttpServletRequest)super.getRequest(); } /** * 读取参数 -- 修正了中文问题. */ public String getParameter(String name) { return toChi(getHttpServletRequest().getParameter(name)); } /** * 读取参数列表 - 修正了中文问题. */ public String[] getParameterValues(String name) { String values[] = getHttpServletRequest().getParameterValues(name); if (values != null) { for (int i = 0; i < values.length; i++) { values[i] = toChi(values[i]); } } return values; } } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // if (ignore || (request.getCharacterEncoding() == null)) { // String encoding = selectEncoding(request); /*if (encoding != null) request.setCharacterEncoding(encoding);*/ // } HttpServletRequest httpreq = (HttpServletRequest)request; if(httpreq.getMethod().equals("POST")) { request.setCharacterEncoding(encoding); } else { request = new Request(httpreq); } // Pass control on to the next filter chain.doFilter(request, response); } /** * Place this filter into service. * * @param filterConfig The filter configuration object */ public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding"); } }
2.web.xml
中增加过滤器配置
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <filter> <filter-name>encodingfilter</filter-name> <filter-class>com.filter.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingfilter</filter-name> <url-pattern>/jsp/encoding/*</url-pattern> </filter-mapping> <servlet> <description>changecode</description> <display-name>changecode</display-name> <servlet-name>CodeServlet</servlet-name> <servlet-class>com.filter.CodeServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CodeServlet</servlet-name> <url-pattern>/servlet/CodeServlet</url-pattern> </servlet-mapping> </web-app>
3.测试页面
(1) test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'test.jsp' starting page</title> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <form action="action.jsp"> GET 方式: <input type=text name="name" value="GET 中文"> <input type=submit> </form> <form action="action.jsp" method="POST"> POST 方式: <input type=text name="name" value="POST 中文"> <input type=submit> </form> <form action="/Test_2/servlet/CodeServlet"> GET 方式: <input type=text name="name" value="GET 中文"> <input type=submit> </form> <form action="/Test_2/servlet/CodeServlet" method="POST"> POST 方式: <input type=text name="name" value="POST 中文"> <input type=submit> </form> </body> </html>
(2)action.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'action.jsp' starting page</title> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> 参数: <%=request.getParameter("name") %> <br> </body> </html>
(3)CodeServlet.java
package com.filter.codetest; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class CodeServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); System.out.println("get方式:"+name); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); System.out.println("post方式:"+name); } }
发表评论
-
Itext中文处理pdf(转)
2010-06-04 17:26 8091http://quicker.iteye.com/blog/5 ... -
JfreeChart学习总结
2008-09-10 17:35 1061JfreeChart学习总结 关键 ... -
:Java的AJAX请求中文编码方法
2008-05-29 21:41 3248这里的方案是页面(page)是基于GBK(gb2312) 的编 ... -
Tomcat 5/6 GBK 编码下完美解决中文表单问题的过滤器
2008-05-29 21:40 1826常 见的 Tomcat 5 表单编码提交后乱码的 ... -
对象的初始化
2008-05-27 09:39 1106调用构造器的具体处理步骤: 1.所有数据域被初始化为默认值(0 ... -
简单的FTP客户端 sun.net.ftp.FtpClient
2008-01-04 23:15 3115某些数据交换,我们需要通过ftp来完成。sun.net.ftp ... -
sun.net.ftp.FtpClient的函数说明
2008-01-04 23:14 1331sun.net.ftp.FtpClient., ... -
java实现的ftp文件上传例题
2008-01-04 23:13 2506前几天写过一编"关于java的http协议文件上传实 ... -
用smartUpload传文件的同时,传递参数的注意事项
2008-01-04 23:12 2109用smartUpload传文件的同时,传递参数时,在获取参数时 ... -
jsp下载文件的问题
2008-01-04 23:10 1337程序如下: <%@page language ... -
怎样用JspSmartUpload实现文件上传攻略
2008-01-04 23:08 2392㈠ 表单要求 对于上传文件的FORM表单,有两个 ... -
用jspsmartupload下载文件
2008-01-04 23:06 8305一般无论网站还是其他系统都会用到文件的上传和下载, ... -
从追MM谈Java的23种设计模式
2008-01-04 23:05 896设计模式做为程序员的& ... -
java操作Excel、PDF文件
2008-01-04 23:03 1652下面这些是在开发中用到的一些东西,有的代码贴的不是完整的,只是 ... -
Java中的内部类
2008-01-04 22:59 1034从Java1.1开始引入了内部类以来,它就引起了人们的激烈争论 ... -
用servlet filter 解决编码问题的一个小例子
2008-01-04 22:58 1642当在做程序的是你也许会遇到一些很让你恼火的乱码问题,就是在你在 ... -
JSTL标签的使用
2008-01-04 22:57 37041. <c:out>标签的用法 ... -
用java实现简单的email正则表达式判断
2008-01-04 22:56 1555import java.sql.*; import java. ... -
eclipse内存不足解决方法
2008-01-04 22:55 2100问题解决]用ECLIPSE3.2+MYECLIPS ... -
如何编写一个简单的Servlet
2008-01-04 22:54 19461.写一个Servlet的java源文件2.编译Servlet ...
相关推荐
通过合理配置Tomcat服务器以及使用适当的过滤器,可以有效解决GET和POST请求中的中文编码问题。此外,选择合适的框架(如Spring)也可以大大简化这一过程。开发者应该根据项目实际情况选择最合适的方法来确保应用...
- **解决方案**: 在过滤器中设置`request.setCharacterEncoding("UTF-8")`,确保所有POST数据都能被正确处理。 **3. 页面链接中传递中文参数** - **问题**: 页面链接中包含中文参数时,由于浏览器默认编码方式与...
【Tomcat5中文问题解决详解】 在使用Tomcat5运行含有中文内容的应用程序时,可能会遇到中文乱码的问题。这通常涉及到HTTP请求的处理方式,尤其是对于POST和GET请求的不同处理策略。以下是对该问题的深入解析及解决...
总结,解决Spring MVC中的POST和GET请求中文乱码问题,关键在于确保整个系统从客户端到服务器端的字符编码一致性,包括过滤器、控制器参数、表单提交以及服务器配置等。遵循以上步骤,可以有效避免中文乱码的出现。...
总结来说,解决Tomcat下的中文乱码问题,关键在于确保JSP页面的编码与服务器设置一致,并在处理表单提交时正确设置请求的字符编码。在实际开发中,推荐使用UTF-8作为统一的编码标准,因为UTF-8能够兼容各种语言,...
总结,"超强过滤器"是解决JSP-Servlet之间中文参数GET-POST传递问题的有效手段,通过统一设定请求的字符编码,确保在整个Web应用中中文数据能够正确无误地传输和处理。对于大型项目,这样的全局解决方案可以大大提升...
中文乱码解决方案 本文将详细介绍中文乱码问题的解决方案,并对IE6的“以UTF-8发送URL”选项设置对请求页面...通过统一使用UTF-8编码、设置Tomcat容器的URI编码为UTF-8、使用过滤器等方法,我们可以解决中文乱码问题。
### Tomcat中文编码问题详解 #### 一、中文输出处理 **1. JSP页面中的中文输出** 在JSP页面中处理中文输出时,需要确保页面本身的...通过上述方法,可以在不同的应用场景下有效地解决Tomcat环境下的中文编码问题。
2. 表单POST提交:过滤器设置请求编码为UTF-8,Tomcat解码。 3. 页面链接传递中文参数:URL编码由浏览器处理,服务器按URIEncoding解码。 4. 地址栏直接输入中文:IE6可能会使用UTF-8编码URL,需确保服务器支持。 ...
2. **表单POST提交**:过滤器会先设置请求的字符编码为UTF-8,因此可以正确解码POST数据。 3. **页面链接传递中文参数**:这种情况与GET提交类似,但由于没有经过过滤器处理,依赖于Tomcat的`URIEncoding`设置。...
除了POST请求,GET请求的处理方式不同,Tomcat通常能够正确处理GET请求中的URL编码,但为了确保一致,也可以在过滤器中处理。 其次,数据库层面也需要关注。MySQL数据库通常推荐使用UTF-8或者UTF-8mb4字符集,以...
对于POST提交的表单,可以通过创建一个Servlet过滤器(Filter)来解决乱码问题。过滤器会在请求被处理前执行,可以在这里更改请求参数的编码。以下是一个简单的`SetCharacterEncodingFilter`示例: ```java ...
如果使用Tomcat等Web服务器部署项目,还可以通过修改`server.xml`文件中的`URIEncoding`属性来解决GET请求下的乱码问题。例如: ```xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000...
本文主要探讨了在使用Tomcat作为servlet容器,浏览器包括Firefox3.0和IE6的情况下,如何解决中文乱码问题,以及各种请求方式(GET、POST)下可能出现的乱码情况。 首先,确保所有页面的`charset`设置为`UTF-8`是...
这将强制服务器解析URL时使用UTF-8编码,从而解决GET请求的中文乱码问题。 4. **Tomcat配置**: 在`server.xml`中,`<Connector>`标签用于定义Tomcat如何处理HTTP连接。添加`URIEncoding`属性是强制Tomcat使用特定...
在 Tomcat 服务器中,可以使用以下过滤器来解决中文乱码问题: ```java package com; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet....
对于GET方式提交的请求,Tomcat对查询字符串(query-string)的处理与POST方式不同,导致即使设置了过滤器,也可能无法解决问题。 **解决办法:** - 修改Tomcat的`server.xml`文件,在`<Connector>`元素中加入`...
当表单数据以POST方式提交时,Tomcat默认使用iso8859-1编码处理请求参数,而接收端JSP可能期望的是UTF-8编码,这就需要采取措施进行转换。 解决POST提交乱码的方法有以下几种: A. 手动转换:在接收参数时,先将...
这段代码将从ISO-8859-1编码转换为UTF-8编码,解决GET请求的乱码问题。 总之,处理Java中的中文乱码问题需要确保整个数据处理链路中字符编码的一致性。从JSP页面到HTTP请求,再到服务器处理和响应,都需要明确指定...