具体的配置可参考:http://www.blogjava.net/fastunit/archive/2008/02/18/180525.html。
(一) 上传文件时中文乱码问题
FCKeditor-java没有很好的解决中文问题。需要我们修改它的源代码后重新编译打包。打包过程如下:
1。 新建一个web工程名字为FCKeditor-java-2.3,然后把FCKeditor-2.3-java.zip解压缩后的代码拷贝到工程目录下。
2。如果是用的Eclipse,使用快捷键Ctrl+Shift+R
在SimpleUploaderServlet.java和ConnectorServlet.java两个文件里找到
DiskFileUpload upload = new DiskFileUpload();
分别在其后加入 upload.setHeaderEncoding("utf-8");
(二) 1、上传时新建的中文目录全部乱码;
2、浏览服务器时有中文名称文件或目录将会出现乱码。
虽然上传到服务器上的文件名正常,但在JSP页面点下载链接时文件名乱码导致不能正常下载。
查找资料:TOMCAT 链接参数有中文时,乱码解决方法
http://hi.baidu.com/jadestone/blog/item/7564deefc9192d36acafd5be.html
修改tomcat-home/conf/server.xml
方法一(推荐):
在两处地方加上URIEncoding="utf-8":
- <Connector port="8080"
- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" redirectPort="8443" acceptCount="100"
- debug="0" connectionTimeout="20000"
- disableUploadTimeout="true" URIEncoding="utf-8" />
- <Connector port="8009"
- enableLookups="false" redirectPort="8443" debug="0"
- protocol="AJP/1.3" URIEncoding="utf-8" />
方法二:
使用useBodyEncodingForURI="true". 这个方法适合你的TOMCAT实例下需要跑多个不同Encoding的程序时。
- <... maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" redirectPort="8443" acceptCount="100"
- connectionTimeout="20000" disableUploadTimeout="true" useBodyEncodingForURI="true" />
- enableLookups="false" redirectPort="8443" protocol="AJP/1.3" useBodyEncodingForURI="true" /
(三) FCKeditor2.3上传文件功能与Struts 2 不兼容的问题
原因:Struts2框架提供了系列拦截器,该系列拦截器负责将HttpServletRequest请求中的请求参数解析出来,传入到Action中,并回调Action的execute方法来处理用户请求。(FilterDispatch是Struts 2的核心控制器,它负责拦截所有的用户请求,FilterDispatch作为一个Filter运行在Web应用中,当请求到达时,该Filter会过滤用户请求。)而FCKeditor 的上传功能使用DiskFileUpload的praseRequest(HttpServletRequest request)方法解析上传文件信息,与Struts2的拦截器功能相冲突。
解决:让Struts2仅处理*.action的请求。修改配置文件web.xml:
将Struts2处理所有web请求的过滤器配置
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
改为:仅处理.action或.jsp请求
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>*.action</url-pattern>
- </filter-mapping>
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>*.jsp</url-pattern>
- </filter-mapping>
备注:以上配置文件的更改会造成Struts2 标签在页面中不显示
应该在web.xml文件中加入以下配置:
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>/struts/*</url-pattern>
- </filter-mapping>
转自:http://hi.baidu.com/zyaping2008/blog/item/702801fc644f5b86b901a009.html
转载于:https://blog.51cto.com/huqianhao/954534