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"。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章