Java Web中的编码问题(一)

来源:互联网 发布:永久中立国的意义 知乎 编辑:程序博客网 时间:2024/06/05 18:44

提出的问题:中文编码的图片资源无法在网页上显示。(//这里,建议使用英文命名,但是有时不可避免的出现比如用户播放固定音乐,中文名称的音乐不能播放的问题。)

思考过程:

1、图片是否由工作空间发布到服务器上?

排除方法:在服务器的工作路径上直接找到该资源,存在。

2、引用路径的问题。

绝对路径和相对路径是否正确。

src,forward(),sendRedirect(),对于路径的定义不同。

排除方法:在浏览器上得到无法显示的图片的路径,输入到浏览器上,看浏览器是否能够得到该资源。

答案是,无法显示该中文名称的资源。

3、编码问题。编码问题目前我能想到的有:

  • 静态的meta标签控制的Content-Type。
  • JSP里page命令里的第一阶段会用的pageEncoding。
  • JSP将java编译为class的第二阶段。
  • JSP第三阶段由Tomcat传回浏览器的网页, 用的contentType。
  • 还有Tomcat的内部server.xml对中文的配置。
  • 当然还有三种不可能在次出现的中文编码问题,数据库交互的编码问题和servlet中request和response的编码设置,以及为eclipse中的文件设置默认编码的问题

排除方法:将jsp文件改为html文件,删除JSP的page命令,运行,可以显示中文命名的照片。这样排除了a可能。

同时,在排除方法二里,我们直接访问的该中文资源,没有经过JSP文件,却没有显示该资源,排除b,c,d,f的可能。缩小范围为e可能。

4、理一下我们访问该资源的过程。

浏览器处理我们的URL请求,将请求发给服务器,服务器处理资源,再将处理好的资源返回给我们。

这里有三个编码阶段,第一阶段客户端(即浏览器)向服务器传输过程中的编码,包括服务器在接受时的编码,第二

阶段是服务器处理java文件时的编码问题,包括JSP转化为servlet等第三阶段服务器向客户端传输数据时的编码。

(未完待续)





0 0
原创粉丝点击