Posted on 2008-09-24 09:40
ZhouFeng 閱讀(1323)
評論(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下做的測試