最近做一个SSH框架的项目,用tomcat发布,需要上传图片到指定路径,然后再将图片显示在页面上。有一个问题:如果是英文名称的图片,就正常显示,可如果是中文的,它就是显示不出来,于是乎,在网上各种百度,各种尝试,查出有两种解决方法:

方法一:

  在tomcat下的server.xml文件中,添加编码格式如图:

但是这种方法是治标不治本,如果换一种服务器发布,照样会出现乱码问题,这时就需要采用第二种方法。

方法二:

  定义一个中文过滤器,步骤如下:

  第一步:创建过滤器

    

import java.io.IOException;
import java.net.URLDecoder; 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.http.HttpServletRequest; public class EncodingFilter implements Filter{ String encoding=null;
FilterConfig filterConfig=null;
//销毁方法
public void destroy() {
// TODO Auto-generated method stub
this.encoding=null;
this.filterConfig=null;
} //过滤处理方法
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest req = (HttpServletRequest) request;
String uri = req.getRequestURI();
String ch = URLDecoder.decode(uri, encoding);
if(uri.equals(ch)) {
chain.doFilter(req, response);
return;
}
ch = ch.substring(req.getContextPath().length());
filterConfig.getServletContext().getRequestDispatcher(ch).forward(req, response);
} //初始化方法
public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig=filterConfig;
this.encoding=filterConfig.getInitParameter("encoding");
} }

  第二步:在web.xml中配置此过滤器

  

   <!-- 中文编码过滤器 -->
<filter>
<filter-name>encodingFilter</filter-name><!--过滤器的名字-->
<filter-class>com.hdsx.gispf.filter.EncodingFilter</filter-class><!--过滤器文件所在位置-->
<init-param>
<param-name>encoding</param-name><!--初始参数名,指定jsp页面所用 编码集-->
<param-value>UTF-8</param-value><!--初始参数值 ,指定中文编码集-->
</init-param>
</filter>
<!-- 过滤器 映射路径配置 -->
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern><!-- 对所有目录进行中文过滤 -->
</filter-mapping>

  

  ok,大功告成,这样就可以正常显示中文名称的图片了。

  

关于SSH中tomcat下中文名称图片不显示的问题的更多相关文章

  1. 如何在Linux中tomcat下运行一个web项目

    如何在Linux中tomcat下运行一个web项目 然后启动Tomcat项目.运行的运行后会自动将war包解压. 如果页面报404,那么请查看tomcat日志文件,它一定是报错了....

  2. 笔记-ubuntu中/home下中文目录改英文

    安装ubuntu后,如果选择的语言是中文,那/home下的文件夹会默认中文,在使用命令行的时候很不方便,此文记录切换成英文的方式,以便日后查看. 将目录重命名为英文 可以使用图形化界面,直接重命名 可 ...

  3. eclipse中Tomcat修改项目名称

    1.打开你的项目目录,找到一个.project文件,打开后修改<name> test</name>中的值,将test修改成你要修改的名字: 2.在项目目录下,打开.settin ...

  4. myeclipse下拷贝的项目,tomcat下部署名称和导出为war包的名称默认值修改

    拷贝一个项目,作为一个新的项目,给它换了名字,这时候默认的部署名称等都是原来项目的,这时候要在属性里面修改一下.

  5. silverlight中 设置 头像(添加图片)

    参考文章: http://www.cnblogs.com/wsdj-ITtech/archive/2009/08/26/1554056.html 1. ChainManager.xaml 前台 < ...

  6. IOS下拉放大图片

    代码地址如下:http://www.demodashi.com/demo/11623.html 一.实现效果图 现在越来越多的APP中存在下拉放大图片的效果,今天贡献一下我的实现这种方法的原理,和我遇 ...

  7. TextView显示HTML文本时<IMG>标签指定图片的显示处理

    TextView显示文本时是支持一些HTML标签的(具体支持那些标签会在下面附录列出),不会需要先用HTML的static方法fromHtml来转换一下. Spanned text = Html.fr ...

  8. 在MyEclipse中改了项目名称,到tomcat的webroot下发现,部署的名称还是原来的。

    在MyEclipse中改了项目名称,到tomcat的webroot下发现,部署的名称还是原来的. 解决方法:选中项目名称右键properties,展开Myeclipse,选择web,web Conte ...

  9. python 1: 解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题

    问题: 我在ubuntu14.04下用python中的matplotlib模块内的pyplot输出图片不能显示中文,怎么解决呢? 解决: 1.指定默认编码为UTF-8: 在python代码开头加入如下 ...

随机推荐

  1. CentOS ln 链接

    ln -s /u01/app/oracle/product/11.2.0/dbhome_1/bin/sqlplus/ /usr/bin (解决bash: sqlplus: command not fo ...

  2. struct和union,enum分析

    空结构体占用的内存多大? struct d { }; int main() { struct d d1; struct d d2; printf("%d,%0x\n",sizeof ...

  3. iOS开发时使用的bundle路径

    bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBu ...

  4. 干净的ssm框架项目

    其中数据库只有如下表与字段 访问效果: 项目下载: 干净的ssm框架项目.rar

  5. linux服务器搭建

    centos7 java web项目环境搭配 2018年07月19日 17:20:21 阅读数:25 首先进行系统安装,此处不进行详细介绍,自行百度安装 一.配置ip地址信息 1.进入/etc/sys ...

  6. equals与“==”的区别

    对于值类型,“==”比较的是不是同一数值,equals先比较是不是同一类型,在比较是不是同一数值: 对于引用类型,“==”和equals比较的都是是否引用了同一实例对象

  7. mysql 数据库名称,中间带有中划线问题

    插入数据时候,引用了数据库名,数据库名中有横线,会提示错误: You have an error in your SQL syntax; check the manual that correspon ...

  8. Spring事务<tx:annotation-driven/>的理解

    在使用Spring的时候,配置文件中我们经常看到 annotation-driven 这样的注解,其含义就是支持注解,一般根据前缀 tx.mvc 等也能很直白的理解出来分别的作用. <tx:an ...

  9. MVC中的七层架构

    工厂模式的七层架构 1.创建Model,实现业务实体. 2.创建IDAL,实现接口. 3.创建DAL,实现接口里的方法. 4.创建DBUtility,数据库操作类5.创建DALFactory,抽象工程 ...

  10. go语言中container容器数据结构heap、list、ring

    heap堆的使用: package main import ( "container/heap" "fmt" ) type IntHeap []int //我们 ...