如何使用glassfish服务器配置内容类型和内容编码?

时间:2012-08-24 07:05:58

标签: java javascript java-ee encoding content-type

我正在使用Glassfish服务器3.1.2在eclipse indigo中使用JSF和Spring构建一个Web应用程序。一切都很好,但它在2个JavaScript文件enter image description here中的firebug中显示了这个错误。

当我检查这些文件时,我没有在这些文件中发现任何非法字符,但是firebug仍然显示这一点 我在ASP.Net项目中使用过这些文件并且它们没有在那里乱,所以我检查并匹配了两个项目的内容类型然后我发现在ASP.Net项目中这些文件有

Content-Type = application / x-javascript

在我的JSP-Spring(JAVA)项目中

Content-Type = text / javascript; charset = ISO-8859-1

就是这样。所以你可以看到sames文件改变了他们的内容方案。我发现这个方案可以通过glassfish服务器中的配置进行更改。所以我想将我的JS文件content-Type更改为与ASP类型相同。
如果有人有任何其他解决方案,请分享,因为除了从glassfish服务器更改方案之外我没有找到任何解决方案
谢谢

1 个答案:

答案 0 :(得分:1)

您看到的那些奇怪的角色是UTF-8 Byte Order Mark。它们是一组特殊的字节,用于指示文档的编码方式。不幸的是,当解释为ISO-8859-1时,你最终会遇到问题。有两种方法可以解决这个问题。

第一种方法是将输出字符集更改为UTF-8。我相信这可以在您的服务器配置中,web.xml configuration中完成,或者通过在代码中设置HTTP请求对象上的字符集来完成;例如:yourServletRequest.setCharacterEncoding("UTF-8");

第二种方法是从Javascript文件中删除BOM。您可以在Notepad++中打开它们,转到编码>来执行此操作。 转换为ANSI ,然后保存它们。或者,在记事本中打开它们,然后转到另存为并确保编码选项在保存之前设置为ANSI。请注意,如果您的Javascript文件中包含非ISO-8859-1文本,则可能会出现问题,但这不太可能。