Java Web中的编码问题(一)


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

思考过程:

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值