XHTML MP MIME類型和文件擴展名

MIME類型

 
以下3種MIME類型可用於XHTML MP文檔:
  1. application/vnd.wap.xhtml+xml
  2. application/xhtml+xml
  3. text/html
 
由開放移動聯盟[OMA]爲XHTML MP指定的MIME類型是"application/vnd.wap.xhtml+xml",這種MIME類型是一些WAP瀏覽器(例如,一些諾基亞的Series 60瀏覽器)需要的以正確顯示XHTML MP文檔。
 
另外一種選擇是"application/xhtml+xml" MIME類型,它是爲XHTML家族文檔而建立的MIME類型。
 
 "text/html" MIME類型也可能是一種選擇,它是HTML文檔的MIME類型。爲XHTML MP文檔使用 "text/html"的MIME類型的好處是可以使XHTML MP文檔在普通的網頁瀏覽器中查看,不會有問題。(一些網頁瀏覽器比如IE6不能顯示"application/vnd.wap.xhtml+xml" 或"application/xhtml+xml"的MIME類型,會跳出一個提示框讓你選擇用其他程序打開文件或者下載文件。)壞處是用戶端代理不會把XHTML MP頁面當作XML文檔,這意味着即使標記代碼不嚴格遵守XML規則,用戶端代理也不會理會。
 

動態選擇MIME類型

 
另外一種選擇是可以讓用戶代理程序可以處理的MIME類型來動態選擇MIME類型。例如,如果你的服務器發現你的某一個用戶代理可以處理"application/vnd.wap.xhtml+xml"的MIME類型,那麼服務器將會把所有的XHTML MP文檔以"application/vnd.wap.xhtml+xml"發送給用戶端代理。
 
要動態選擇MIME類型,需要用服務器端腳本語言寫一些代碼(比如ASP,JSP,Perl,PHP),處理過程是:
  1. 獲得收到的HTTP請求頭的值,接受的頭中包含客戶端代理能處理的全部MIME類型。
  2. 如果接受的頭的值中包含"application/vnd.wap.xhtml+xml",則設置XHTML MP的MIME類型爲"application/vnd.wap.xhtml+xml",否則如果接受的頭的值中包含"application/xhtml+xml",則設置XHTML MP的MIME類型爲"application/xhtml+xml",否則設置XHTML MP的MIME類型爲"text/html"。
下面的例子演示如何使用JSP寫代碼,如果你使用其他服務器端腳本語言,代碼雖不同,不過寫代碼的思路是一樣的。
 
<%
String acceptHeader = request.getHeader("accept");
if (acceptHeader.indexOf("application/vnd.wap.xhtml+xml") != -1)
  response.setContentType("application/vnd.wap.xhtml+xml");
else if (acceptHeader.indexOf("application/xhtml+xml") != -1)
  response.setContentType("application/xhtml+xml");
else
  response.setContentType("text/html");
%>
 
下面是上面的JSP代碼的一些描述:
 
1.從HTTP請求中獲得頭accept的值,把它存在變量acceptHeader中。
 
String acceptHeader = request.getHeader("accept");
 
2.然後通過變量acceptHeader來比對是否包含"application/vnd.wap.xhtml+xml" 還是"application/xhtml+xml", indexOf(String str)來判斷是否包含子字符串,如果沒匹配字符串,則返回-1,如果找到匹配字符串,則返回值不會是-1。
 
if (acceptHeader.indexOf("application/vnd.wap.xhtml+xml") != -1)
...
else if (acceptHeader.indexOf("application/xhtml+xml") != -1)
...
 
3.response.setContentType(...);方法用來設置文檔的MIME類型。
 
下面的例子說明在實際的XHTML MP文檔中如何使用JSP代碼來實現,你要做的非常簡單,將代碼複製粘貼到以".jsp"爲擴展名的XHTML MP文檔中。(在這個例子中的XHTML MP標記將在下面的章節討論詳細)
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
 
  <head>
    <title>XHTML MP Tutorial</title>
  </head>
 
  <body>
    <p>Hello world. Welcome to our XHTML MP tutorial.</p>
  </body>
</html>
<%
String acceptHeader = request.getHeader("accept");
if (acceptHeader.indexOf("application/vnd.wap.xhtml+xml") != -1)
  response.setContentType("application/vnd.wap.xhtml+xml");
else if (acceptHeader.indexOf("application/xhtml+xml") != -1)
  response.setContentType("application/xhtml+xml");
else
  response.setContentType("text/html");
%>
 

文件擴展名

 
靜態的XHTML MP文檔擴展名通常是“.xhtml“,”.html“,和“.htm“。你可以使用你喜歡的其他文件擴展名,只要文件擴展名關聯的MIME類型是在您的WAP服務器正確配置的。如果你使用服務器端腳本語言,比如ASP,JSP,PHP,Perl或者SSI動態加載XHTML MP的內容,那麼擴展名使用服務器端腳本技術相應的文件擴展名。比如php腳本語言的文件擴展名一般是".php",SSI一般是".shtml"。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章