Posted on 2008-09-24 09:40
ZhouFeng 阅读(1319)
评论(0) 编辑 收藏 所属分类:
原创 、
Web开发
一直以来,想做一个东西,就是在发布JSP工程的时候,不让人家知道是用JSP技术来做的,曾想到用过滤器,可搞了半天,还是没有结果,后来在配置文件里去找找,看看有没有什么可以参考的东东,终于让我给找着了,在WEB.XML中发现有这样的片段,找到下手的地方了
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<!-- The mapping for the JSP servlet -->
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>
于是乎,就冒出个想法,添加一个<servlet-mapping>试试,片段如下
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.asp</url-pattern>
</servlet-mapping>
我在此添加了一个ASP的映射,你还可以修改为PHP或其它的后缀,写了一个测试页面test1.asp如下

<%
@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>utf-8</title>
</head>
<body>
<h1>This is my test page</h1>
<h1>字符集是UTF-8</h1>
</body>
</html>

可页面显示的情况如下

中文的显示有点问题,在相同的JSP文件里没有这种情况发生,这个问题目前还不清楚是怎么回事
于是重新建了一个文件test2.asp,然后把页面编码改成ISO-8859-1后再试

<%
@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ISO-8859-1</title>
</head>
<body>
This is my JSP page. <br>
<h1>字符集是ISO-8859-1</h1>
</body>
</html>
页面的中文还是无法正常显示

可这时可以通过修改浏览器的页面编码来显示正确的中文,将页面编码改成 简体中文(GB2312) 后显示如下

终于OK了,而浏览器里显示的是访问一个asp的文件,可中文的字符处理仍感觉有些不完美,当页面编码是UTF-8的时候,不管怎么修改浏览器的页面编码,中文都无法正确显示,如果某兄有更好的方法解决这个问题,希望留下一点建议,谢谢
本例是在Tomcat6下做的测试