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

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

方法一:

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

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

方法二:

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

  第一步:创建过滤器

    

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

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中配置此过滤器

  

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

<!-- 中文编码过滤器 -->

<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,大功告成,这样就可以正常显示中文名称的图片了。

  

时间: 2024-12-17 05:51:08

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

IDEA中 tomcat 控制台中文乱码解决 及GsonUtils无法转换时间格式

IDEA中 tomcat 控制台中文乱码解决 1.找到tomcat 安装目录下的 conf /logging.properties 文件打开 2.将 java.util.logging.ConsoleHandler.encoding = UTF-8 修改为 java.util.logging.ConsoleHandler.encoding = GBK 3.保存后 重启idea ————————————————GsonUtils需添加时间模式 datePattern指定模式 原文地址:https:

tomcat下中文乱码的问题

今天在修改项目时, 并没有搜索到结果,控制台就报乱码的错误,如下: <pre name="code" class="java"><span style="font-size:14px;">Java Hibernate: select count(*) as col_0_0_ from PJEDU_SITE site0_ where (site0_.TITLE like '%?±?é?¨%') and (site0_.SIT

Tomcat下中文乱码的解决方法

1,在web中,传递参数到servlet中,一般有两种形式,第一种是form表单提交,一种是超链接传值.form表单提交可以选择method是post还是get方式,默认是get方式.超链接是get方式.  当提交数据是表单形式时,method是post方式时,通过使用过滤器request.setCharacterEncoding("UTF-8");就可以解决中文乱码.  当提交数据是表单形式时,method是get方式时或者是超链接时,光使用过滤器是不行的,可以在tomcat中 &l

eclipse中Tomcat修改项目名称

1.打开你的项目目录,找到一个.project文件,打开后修改<name> test</name>中的值,将test修改成你要修改的名字: 2.在项目目录下,打开.settings文件夹,找到org.eclipse.wst.common.component文件,修改<wb-module deploy-name=" test">,将test修改成你要修改的名字:检查<property name="context-root" v

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

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

vue中img的src引入图片不显示问题

需要前端循环图片数组将其放到页面中去. 需要将src渲染到页面中,如果单纯写src的路径会出现不显示图片的问题 因为图片路径在assets,所以需要require一下. 原文地址:https://www.cnblogs.com/yuanxinru321/p/10572844.html

DD_belatedPNG插件图片不显示bug

一直很少做PC页面,兼容问题更是接触的少之又少,今天做了一个小导航,发现IE6下只有第一个显示 这里是正常的效果 IE6下,背景都消失不见了. 解决办法,去掉元素设置背景时的CSS里的no-repeat就解决了,具体原因,有时间了细细研究下 DD_belatedPNG插件图片不显示bug,布布扣,bubuko.com

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

问题: 我在ubuntu14.04下用python中的matplotlib模块内的pyplot输出图片不能显示中文,怎么解决呢? 解决: 1.指定默认编码为UTF-8: 在python代码开头加入如下代码 import sys reload(sys) sys.setdefaultencoding('utf-8') 2.确认你ubuntu系统环境下拥有的中文字体文件: 在终端运行命令"fc-list :lang=zh",得到自己系统的中文字体 命令输出如下: /usr/share/fon

tomcat+SSH中遇到中文乱码的解决方法

最近开始又转向J2EE的开发.很久没用,重新熟悉. 本地环境ubuntu 12.13,mysql5.x,tomcat7.x,struts2.3.15.x,spring3.1.0,hibernate4.1.x 之前一直连线上服务器上测试数据库,没有发现有中文乱码问题. 现在在本地搭建此环境,使用本地数据库,便于调试,但是发现每次对数据库操作,有中文就会出现????乱码. 那现在一步步排除什么原因引起: 前端jsp或者html界面: 对于在页面中显示出现乱码,这个问题比较简单,便是检查你的JSP文件