zoukankan      html  css  js  c++  java
  • XHTML MP 基础(手机网站开发基础技术)

    1. 原文链接(英文):http://www.developershome.com/wap/xhtmlmp/
    2. 同时推荐的文章(英文)http://mobiforge.com/starting/story/a-beginners-guide-mobile-web-development
    3. 更多关于WAP CSS的信息请访问:http://www.developershome.com/wap/wcss/
    4. 当你阅读完本文后肯定想看看一个完整的手机静态网站的实例吧!下面的链接可以下载到你需要的实例:
    5. http://mobiforge.com/starting/story/site-templates
    6. 一:XHTML MP的语法规则
    7. 我们知道,我们通常用电脑访问的网站的网页是用html构建的。类似的,现在WAP 2.0网站是用XHTML MP
    8. 构建,以供手持设备的访问,如手机、PDA等。
    9. XHTML MP是XHTML的子集,因此继承了它的语法。
    10. XHTML是更严格和简洁的HTML版本。现在来看看XHTML MP的语法规则:
    11. 1:标签必须正确闭合!
    12. <p>XHTML MP 教程 段落 1</p>
    13. <p>XHTML MP tutorial paragraph 2</p>
    14. <p>XHTML MP tutorial paragraph 3</p>
    15. 有些标签是不含内容的(开始标签和结束标签之间的东东,如上面的XHTML MP tutorial paragraph 1),
    16. 就必须用这种形式:Line break<br/>。请注意一定要加上 斜杠
    17. 2:标签和属性都必须是用小写
    18. 正确的写法:
    19. <p id="p1">XHTML MP tutorial paragraph 1</p>
    20. <p id="p2">XHTML MP tutorial paragraph 2</p>
    21. <p id="p3">XHTML MP tutorial paragraph 3</p>
    22. 3:属性的值必须放置在双引号内
    23. <p id="p1">XHTML MP tutorial paragraph 1</p>
    24. 4:不支持属性简写
    25. 在html中,如下写法是正确的:
    26. <input type="checkbox" checked />
    27. 而xhtml中必须这样写:
    28. <input type="checkbox" checked="checked" />
    29. 下面再举一个例子:
    30. <select multiple="multiple">
    31. <option>XHTML MP Tutorial Part 1</option>
    32. <option selected="selected">XHTML MP Tutorial Part 2</option>
    33. <option>XHTML MP Tutorial Part 3</option>
    34. </select>
    35. 5:标签的嵌套必须正确
    36. 不支持标签的重叠,所以下面的写法是错误的!
    37. <p><b>XHTML MP tutorial paragraph 1</p></b>
    38. 应该这样子写:
    39. <p><b>XHTML MP tutorial paragraph 1</b></p>
    40. 二:XHTML MP的 MIME类型 和 文件扩展名
    41. XHTML MP支持下面三种MIME类型
    42. 1.  application/vnd.wap.xhtml+xml
    43. 2.  application/xhtml+xml
    44. 3.  text/html
    45. 第一种类型是一些wap浏览器所需要的(如某些诺基亚S60浏览器),以便正确显示XHTML MP文档。
    46. 第二种是XHTML系列文档的类型
    47. 第三种是HTML文档的类型。这样用IE6就可以正常浏览这些文档,而如果遇到上面的两种类型就会弹出一个对话框
    48. 让你保存这些文档。
    49. 动态选择MIME类型
    50. 比如服务器端判断某个客户端请求可以处理application/vnd.wap.xhtml+xml MIME类型,那所有的XHTML MP文档就
    51. 都使用application/vnd.wap.xhtml+xml MIME类型发送给客户端。
    52. 要实现这个就必须通过服务器端编程,获取客户端HTTP请求的Header值,这里面的值包含客户端可以处理的所有MIME类型。
    53. 如果支持就设置XHTML MP的MIME类型为application/vnd.wap.xhtml+xml,如果支持其它的,就设置成其它的。
    54. 下面的例子是JSP的,但是你如果使用其它技术的话,原理是一样的,代码也是大同小异!
    55. <%
    56. String acceptHeader = request.getHeader("accept");
    57. if (acceptHeader.indexOf("application/vnd.wap.xhtml+xml") != -1)
    58. response.setContentType("application/vnd.wap.xhtml+xml");
    59. else if (acceptHeader.indexOf("application/xhtml+xml") != -1)
    60. response.setContentType("application/xhtml+xml");
    61. else
    62. response.setContentType("text/html");
    63. %>
    64. 这里的代码很简单,我就不多加解释了!
    65. 文件的扩展名
    66. 静态XHTML MP文档的典型扩展名包括:.xhtml、.html和.htm。当然,你也可以使用其它扩展名,只要你在
    67. WAP 服务配置文件里面设置清楚就OK了。如果你要使用服务器端技术(如JSP、PHP、ASP、SSI等),你就必须
    68. 使用相应的扩展名,如PHP使用.php,SSI使用.shtml。
    69. 三:XHTML MP文档结构
    70. 第一个例子    一个典型的XHTML MP文档结构
    71. <?xml version="1.0"?>
    72. <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
    73. <html xmlns="http://www.w3.org/1999/xhtml">
    74. <head>
    75. <title>XHTML MP Tutorial</title>
    76. </head>
    77. <body>
    78. <p>Hello world. Welcome to our XHTML MP tutorial.</p>
    79. </body>
    80. </html>
    81. 讲解:
    82. <?xml version="1.0"?>
    83. <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
    84. 前面的预声明不是XHTML MP元素的一部分,所以不必遵守XHTML MP的约定。
    85. 剩下的内容和普通的html没有什么不同了。
    86. 记住:XHTML MP必须包含<html><head><title>, 和 <body>元素。
    87. 四:XML声明和字符编码
    88. <?xml version="1.0" encoding="UTF-8"?>
    89. 所有的XHTML MP文档都是XML文档,因此开始都会有一个XML声明。这里也可以指定文档的字符编码。
    90. 如果文档的字符编码是UTF-8 or UTF-16的话,其实可以省略掉。
    91. 虽然这个XML声明是可以省略的,但是我们不建议这么做,因此这样可能导致某些索爱的WAP浏览器产生错误。
    92. 五:DOCTYPE声明
    93. 这个<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
    94. 声明是必须的。这个声明规定了DTD名称和URL。这个DTD包含标记语言的语法信息,可供验证工具验证你写的XHTML MP文档的语法正确性。
    95. 这些验证工具集成在很多IDE中了。
    96. 六:各标记简析
    97. <html>是XHTML MP的根标记。目前,该标记的xmlns属性只能是http://www.w3.org/1999/xhtml这个值,这个用来保证
    98. 严格遵守XHTML MP标准。但是即使缺失了这个标记,大部分浏览器还是能正常显示页面。
    99. <head>标记用来存放关于文档本身的信息。比如<title><link>,还有<meta>,这几个标记的功能和在传统的html里面的功能是一样的!
    100. 这里不再废话了。
    101. 还有<body>标记也不重复解释了。
    102. <p>标记的text-align属性已经被取消了,你可以在css中定义实现这个功能,如:
    103. p {
    104. text-align: right
    105. }
    106. 七:XHTML MP 的 Metadata
    107. 先看下面的例子:
    108. <head>
    109. <title>XHTML MP Tutorial</title>
    110. <meta name="author" content="Andrew"/>
    111. </head>
    112. WAP浏览器会自动忽略你自定义的meta属性(它不会显示在你的页面中),如这里的name,这并不会对你的页面的界面有任何影响。
    113. 八:XHTML MP的缓存控制
    114. 这里的缓存就是客户端用来临时存储XHTML文档的空间,如果浏览器发现缓存里面有这个页面了而且没有过期,那它就
    115. 直接显示这个页面,而不需要再次联网下载,这样节省了时间。
    116. 当然,你可以禁止缓存,你可以这样做:
    117. <head>
    118. <title>XHTML MP Tutorial</title>
    119. <meta http-equiv="Cache-Control"  content="no-cache"/>
    120. </head>
    121. 上面的也可以这样写:<meta http-equiv="Cache-Control" content="max-age=0"/>
    122. 如果你要设置缓存时间是300秒的话,可以这么做:
    123. <head>
    124. <title>XHTML MP Tutorial</title>
    125. <meta http-equiv="Cache-Control" content="max-age=300"/>
    126. </head>
    127. 还要注意的一点是,上面的设置和所用的设备是有关系的。有些wap浏览器是没有缓存的,所以你设置了也未必能起到作用。
    128. 面对这种情况,更好的方法是通过服务器端编程技术设置HTTP header和HTTP response。
    129. 九:XHTML MP的定时刷新
    130. <head>
    131. <title>XHTML MP Tutorial</title>
    132. <meta http-equiv="Cache-Control" content="no-cache"/>
    133. <meta http-equiv="refresh" content="15"/>
    134. </head>
    135. 上面的代码让页面每隔15秒刷新一次!
    136. 注意:必须包含这句:<meta http-equiv="Cache-Control" content="no-cache"/>
    137. 如果没有的话,那可能刷新后只是看到缓存中的副本,并没有重新从服务器下载页面。
    138. 还有一个用法就是用来URL自动跳转,例子如下:
    139. <head>
    140. <title>XHTML MP Tutorial</title>
    141. <meta http-equiv="refresh" content="3;URL=http://blog.csdn.net/patriot074/"/>
    142. </head>
    143. 需要注意的是,不是所有浏览器都支持refresh,如:诺基亚 浏览器4.0和Ericsson T610 和 T68i
    144. 不过,阿佛使用的Windows Mobile手机是支持的,所以推荐使用。
    145. 随着智能手机的降价,上面的那些不支持的也很快要淘汰了吧。
    146. 十:注释
    147. 和html的一样啦:
    148. <!-- This is a comment in XHTML MP -->
    149. 十一:换行
    150. <BR/>, 例子:
    151. <body>
    152. <p>
    153. Line 1<br/>
    154.  Line 2<br/><br/>
    155.  Line 3
    156.  </p>
    157. </body>
    158. 十二:<hr/>标记
    159. 这个标记会给你的页面添加一条水平线。注意:
    160. 这个标记不能在<p></p>标记之间使用!!!
    161. 例子:
    162. <body>
    163. <p>
    164.  Table of Contents:<br/>
    165.  </p>
    166.  <hr/>
    167.  <p>
    168.  Part 1 XHTML MP Introduction<br/>
    169.  Part 2 Development of Wireless Markup Languages<br/>
    170.  Part 3 Advantages of XHTML MP<br/>
    171.  Part 4 WML Features Lost in XHTML MP
    172.  </p>
    173. </body>
    174. 十三:标题标记
    175. <h1><h2><h3><h4><h5>, 和 <h6>
    176. 浏览器将以不同的大小显示置于此标记中的文字,具体效果你可以测试下面的代码:
    177. <body>
    178. <h1>Level 1 Heading</h1>
    179.  <h2>Level 2 Heading</h2>
    180.  <h3>Level 3 Heading</h3>
    181.  <h4>Level 4 Heading</h4>
    182.  <h5>Level 5 Heading</h5>
    183.  <h6>Level 6 Heading</h6>
    184.  </body>
    185. 十四:文字样式
    186. 首先声明的是有些浏览器并不支持XHTML MP支持的标记。
    187. 例子:
    188. <body>
    189. <p>
    190.  <b>Bold</b><br/>
    191.  <i>Italic</i><br/>
    192.  <b><i>Bold italic</i></b><br/>
    193.  <small>Small</small><br/>
    194.  <big>Big</big><br/>
    195.  <em>Emphasis</em><br/>
    196.  <strong>Strong</strong>
    197.  </p>
    198.  </body>
    199. 你还可以通过WAP  CSS进行更精确的控制,比如把文字大小设置为12pt。
    200. 更多关于WAP CSS的信息请访问:(下面将不再重复声明)
    201. http://www.developershome.com/wap/wcss/
    202. 十五:预格式文本
    203. 在XHTML MP中,段落中的多个空格在手持设备中显示时只显示为一个空格。请看下面的例子:
    204. <body>
    205. <p> Hello, welcome 
    206. to 
    207. our
    208. XHTML MP tutorial. </p>
    209. </body>
    210. 为了能够保持你希望的格式,可以使用<pre>标签:
    211. <body>
    212. <pre> Hello, welcome 
    213. to 
    214. our
    215. XHTML MP tutorial. </pre>
    216. </body>
    217. 这样最后显示的格式就和上面代码中排列的一样了。
    218. 十六:列表标签
    219. 使用<ul>标签来建立无序列表,每个列表项前将显示一个小圆点。
    220. <li>标签用来包围每个列表项。
    221. 请看下面的例子:
    222. <body>
    223. <p>Table of Contents:</p>
    224.  <ul>
    225.  <li>Part 1 XHTML MP Introduction</li>
    226.  <li>Part 2 Development of Wireless Markup Languages</li>
    227.  <li>Part 3 Advantages of XHTML MP</li>
    228.  <li>Part 4 WML Features Lost in XHTML MP</li>
    229.  </ul>
    230. </body>
    231. 使用<ol>标签来建立有序列表,请看下面的例子:
    232. <body>
    233. <p>Table of Contents:</p>
    234.  <ol>
    235.  <li>XHTML MP Introduction</li>
    236.  <li>Development of Wireless Markup Languages</li>
    237.  <li>Advantages of XHTML MP</li>
    238.  <li>WML Features Lost in XHTML MP</li>
    239.  </ol>
    240. </body>
    241. 其中,在<ol>标签中可以设置start属性的值来决定列表序号的起始值,例如:
    242. <ol start="4">
    243. 通过WAP CSS你可以对列表的外观进行更精确的控制。例如,可以修改显示序号的方式,
    244. 比如使用i ,ii ,iii来替代1,2,3。
    245. 十七:显示图片
    246. 和HTML中一样,使用<img>标签来显示图片。height和width属性用来指定图片的高和宽(像素)。
    247. WAP2.0支持常用的GIF、JPG、PNG图像格式,当然这还跟用户所有设备有关,一些设备只能显示
    248. 其中的一部分格式。要想知道客户端支持的图片格式,很容易,和先前讲过的一样,可以通过检查
    249. HTTP Header,请看下面的代码:
    250. <?xml version="1.0"?>
    251. <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
    252. <html xmlns="http://www.w3.org/1999/xhtml">
    253. <head>
    254. <title>Image in XHTML MP</title>
    255. </head>
    256. <body>
    257. <p>
    258. <img src="monkey.gif" alt="coolMonkey" height="50" width="50" /><br/>
    259. Hello, welcome to our XHTML MP tutorial.
    260. </p>
    261. </body>
    262. </html>
    263. 其中alt属性在图片无法显示的时候会显示其设置的文本值。
    264. 十八:大图片问题
    265. 很多WAP浏览器没有水平滚动条(我的WM IE也是,但是它会自动缩放图片到合适尺寸)。因此如果图片超过设备的屏幕尺寸,
    266. 很多浏览器就只能显示局部图片,这样从用户看来很糟糕!还有注意的就是height和width属性设置只是影响外观,加载图片的时间
    267. 和图片大小有关,与你设置的height和width的值无关。使用大图片将让你的访问用户掏更多钱(并花费更多的时间)去支援移动,因为大图片带来大流量,
    268. 移动的疯狂收费已经吓住了不少潜在的客户(你不希望你的网站吓走用户吧)。阿佛的哥哥就是个例子,移动的1元包月5M套餐,
    269. 而他超过了流量(不少普通用户根本没有流量的概念),移动收了几十元,从此就再也不敢用手机GPRS上网了。
    270. 因此从优化XHTML MP页面图像的角度来看,控制图片的大小有下面几招:
    271. 1:使用PS等图片处理软件减小图片的尺寸,而不是传送大图片给无线设备,然后通过height和width来设定显示尺寸。
    272. 2:如果使用的GIF格式的图片,那么请使用小型颜色调色板,使用小型调色板会降低图片的质量,不过你可以在二者
    273. 之间做一个较好的平衡。
    274. 3:如果图片是JPG格式,你应该用合适压缩比率来压缩。这个平衡(图片尺寸和显示质量)也要你来控制。
    275. 4:期待移动降低上网资费并提高龟速网络(这仅仅是期待)。
    276. 更好的提高你的手机网站性能方式是先处理页面的文档请求,再接着处理图片的显示。但是如果构建这样的网站已经超过了本文要
    277. 描述的范围,如果你感兴趣的话请自行搜索关键字:Multipart messages
    278. 十九:表格
    279. 创建表格所使用的标签和HTML中使用的没有区别。所以请直接看下面的例子:
    280. <body>
    281. <table>
    282. <tr>
    283.   <td>Cell A</td>
    284.   <td>Cell B</td>
    285.   <td>Cell C</td>
    286. </tr>
    287. <tr>
    288.   <td>Cell D</td>
    289.   <td>Cell E</td>
    290.   <td rowspan="2">Cell F</td>
    291. </tr>
    292. <tr>
    293.   <td colspan="2">Cell G</td>
    294. </tr>
    295. </table>
    296. </body>
    297. 这里显示出来的效果是不带边框的表格。如果你要显示,可以使用WAP CSS来控制。
    298. <head>标签里面加入如下代码:
    299. <style>
    300.     td {
    301.   border: thin solid black
    302. }
    303. </style>
    304. 二十:超链接
    305. 超链接是用来导航的,你可以点击一个连接然后跳转到其他XHTML MP页面。这个html中的一样,请看下面的例子:
    306. <a href="http://blog.csdn.net/patriot074/">阿佛的博客首页</a>
    307. 下面再讲讲当前页面的定位(滚动到当前页面的指定位置):
    308. 请看下面的例子:
    309. <body>
    310. <p><a id="top">Table of Contents:</a></p>
    311. <ul>
    312. <li>Part 1 XHTML MP Introduction</li>
    313. <li>Part 2 Development of Wireless Markup Languages</li>
    314. <li>Part 3 Advantages of XHTML MP</li>
    315. <li>Part 4 WML Features Lost in XHTML MP</li>
    316. <li>如果页面不够长,无法显示效果的话就再多几个列表项</li>
    317. <li>如果页面不够长,无法显示效果的话就再多几个列表项</li>
    318. <li>如果页面不够长,无法显示效果的话就再多几个列表项</li>
    319. <li>如果页面不够长,无法显示效果的话就再多几个列表项</li>
    320. </ul>
    321. <p><a href="#top">Back to top</a></p>
    322. </body>
    323. 从上面的例子可以看出,要定位到指定位置,可以通过<a href="#top">Back to top</a>
    324. 来实现,#号加上要跳转到位置的 <a>标记的id值就可以了。
    325. 一些老的机器和浏览器不支持这个,如索爱的T610 和 T68i(02年的,应该没什么人用了吧)
    326. 二十一:使用更短的URL
    327. 我们知道手机输入比用电脑键盘慢多了。因此你应该让你的网站的url尽可能的短,看看下面的几种方法:
    328. 1:好好利用子域名。使用http://wap.somedomain.com/来代替http://www.somedomain.com/wap/。还可以使用
    329. 更短的域名:  http://somedomain.com/ 。
    330. 2:让你的web站点和wap站点使用相同的URL。
    331. 使用"http://www.somedomain.com/" 或者 http://somedomain.com/来代替http://www.somedomain.com/wap/"作为
    332. WAP站点的域名。如果一个HTTP 请求来自手机,那么将把WAP版本的站点发送给这个请求用户,否则将返回web版本的站点。
    333. 3:设置站点的默认文档。这样就可以通过http://wap.somedomain.com/来访问http://wap.somedomain.com/index.xhtml页面。
    334. 二十二:图形化链接
    335. 这里的技巧和HTML的一样。你可以在<a>标签中放一个<img>标签,这样就可以在你点击图片的时候进行页面跳转了。
    336. <body>
    337. <p>
    338. This is page 1.<br/>
    339. <a href="linksEg5.xhtml"><img src="to2.gif" alt="Go to linksEg5.xhtml"/></a>
    340. </p>
    341. </body>
    342. 二十三:设置超链接的访问快捷键
    343. <body>
    344. <p>
    345. This is page 1.<br/>
    346. <a accesskey="1" href="linksEg7.xhtml"><img src="to2.gif" alt="Go to linksEg7.xhtml"/></a>
    347. </p>
    348. </body>
    349. 属性accesskey用来设置快捷键,当你按下这个键的时候就相当于点击了这个超链接(而在PC上浏览器仅仅是让这个超链接获得焦点)。
    350. accesskey属性的可用值是:*, #, 0, 1, 2, 3, 4, 5, 6, 7, 8, 和 9。
    351. 二十四:下拉选择框
    352. 这个也和HTML中一样,所以直接上代码:
    353. <body>
    354. <form method="get" action="xhtml_mp_tutorial_proc.asp">
    355. <p>
    356. <select name="selectionList">
    357. <option value="tutorial_A">XHTML MP Tutorial Part A</option>
    358. <option value="tutorial_B">XHTML MP Tutorial Part B</option>
    359. <option value="tutorial_C">XHTML MP Tutorial Part C</option>
    360. </select>
    361. </p>
    362. </form> 
    363. </body>
    364. 默认选择的代码是:
    365. <option value="tutorial_B" selected="selected">XHTML MP Tutorial Part B</option>
    366. 支持多选的代码是:(在WM IE中无效)
    367. <select name="selectionList" multiple="multiple">
    368. 二十五:Input元素
    369. 和HTML一样,XHTML MP也拥有各种获取用户输入的input元素。
    370. input元素必须放置在<form>标记之间。
    371. <input>标记的 type 属性定义了input元素的类型。name属性定义了input元素的名称,可供服务器端检索。
    372. 二十六:文本域
    373.     文本域用来获取字母和数字数据。请看下面的例子:
    374. <input type="text" name="name_for_this_element"/>
    375. type的默认属性就是text,所以可以忽略。
    376. 你可以使用 maxlength属性来控制文本域可输入的字符数,例如:
    377. <input type="text" name="myTextField" maxlength="16"/>
    378. 你还可以使用value属性来设置文本域的默认值,例如:
    379. <input type="text" name="myTextField" maxlength="16" value="Jack"/>
    380. XHTML MP不再支持<input>标签的format属性,你可以使用WAP CSS的-wap-input-format来控制。
    381. 例如,限制输入格式为最多10个数字:
    382. input {
    383. -wap-input-format: "10N"
    384. }
    385. 下面再来介绍一下密码域:
    386. 在密码域中所有的字符通过星号来显示,请看例子:
    387. <input type="password" name="name_for_this_element"/>
    388. 二十七:复选框和单选按钮
    389. 复选框和HTML中也类似,例如:
    390. <input type="checkbox" name="xhtml_mp_tutorial_chapter" value="1"/>
    391. <input type="checkbox" name="xhtml_mp_tutorial_chapter" value="2"/>
    392. <input type="checkbox" name="xhtml_mp_tutorial_chapter" value="3"/>
    393. value的值将被发送服务器端(当有选中该复选框)。
    394. 你也可以通过checked属性设置复选框是否选中,代码如下:
    395. <input type="checkbox" name="xhtml_mp_tutorial_chapter" value="1" checked="checked"/>
    396. 下面的标记代码创建一个单选按钮:
    397. <input type="radio" name="name_for_this_element"/>
    398. 和复选框按钮类似,拥有相同name属性值的单选按钮将被分在同一个组,例如:
    399. <input type="radio" name="xhtml_mp_tutorial_chapter" value="1"/>
    400. <input type="radio" name="xhtml_mp_tutorial_chapter" value="2"/>
    401. <input type="radio" name="xhtml_mp_tutorial_chapter" value="3"/>
    402. name和value对是相关联的,这个将在form提交后用来后台取值。和复选框一样,checked属性用来指定是否选中该项。
    403. 二十八:隐藏字段
    404. 隐藏字段将不会在页面中显示。它用来存储状态信息的。例如:
    405. <input type="hidden" name="temp_id" value="123456"/>
    406. value属性会被回发到服务器端。
    407. 二十九:提交窗体数据到服务器端
    408. 在前文中,我们讲到了很多input元素,它们可以获取用户输入的数据。那么服务器端该如何获取这些输入的数据呢?
    409. 你需要把这些标签和提交按钮置于<form></form>标签中。例如:
    410. <?xml version="1.0"?>
    411. <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
    412. <html xmlns="http://www.w3.org/1999/xhtml">
    413. <head>
    414. <title>XHTML MP Tutorial</title>
    415. </head>
    416. <body>
    417. <h1>Registration Form</h1>
    418. <form method="get" action="processing.asp">
    419. <p>
    420. Username:<br/>
    421. <input name="username"/><br/>
    422. Password:<br/>
    423. <input type="password" name="password"/><br/>
    424. Gender:<br/>
    425. <input type="radio" name="gender" value="m"/>Male
    426. <input type="radio" name="gender" value="f"/>Female<br/>
    427. Country:<br/>
    428. <select name="country">
    429. <option value="ca">Canada</option>
    430. <option value="cn">China</option>
    431. <option value="fr">France</option>
    432. <option value="de">Germany</option>
    433. <option value="in">India</option>
    434. <option value="it">Italy</option>
    435. <option value="jp">Japan</option>
    436. <option value="kr">Korea</option>
    437. <option value="uk">United Kingdom</option>
    438. <option value="us">United States</option>
    439. </select><br/>
    440. Which part of our XHTML MP tutorial do you like?<br/>
    441. <input type="checkbox" name="tutorial_part" value="1"/>Part 1
    442. <input type="checkbox" name="tutorial_part" value="2"/>Part 2
    443. <input type="checkbox" name="tutorial_part" value="3"/>Part 3
    444. <input type="checkbox" name="tutorial_part" value="4"/>Part 4
    445. <input type="hidden" name="temp_id" value="123456"/>
    446. </p>
    447. <hr/>
    448. <p>
    449. <input type="submit"/>
    450. <input type="reset"/>
    451. </p>
    452. </form>
    453. </body>
    454. </html> 
    455. 三十:Form元素
    456. <form>标记是form控件的容器。下面继续介绍<form>标记的两个方法POST和GET。
    457. 先介绍get方法:
    458. <form method="get" action="processing.asp">
    459. 使用get方法,数据将追加到URL中发送。由于URL携带的字符量是有限制的,这也成了get方法的一大缺点。
    460. 还有一个问题是为了避免编码问题(当有非ASCII字符时),你应该使用POST方法替代get方法。而使用POST方法
    461. 数据时,数据将插入到请求到一起发送。
    462. 接下来再讲解一下action属性,该属性指定了哪个页面用来处理提交的数据,你可以在该页面编写后台处理代码。
    463. 三十一:提交按钮和重置按钮
    464. 在XHTML MP中,而每个form都应该包含一个submit按钮。当点击这个按钮后,窗体数据就会被提交到服务器进行处理。
    465. 下面来看看这个按钮:
    466. <input type="submit" value="OK"/>
    467. value属性用来指定这个按钮的标题。如果没有设置这个属性的话,那么将显示默认的 submit (如果是中文浏览器,会显示提交)
    468. 接着再来介绍一下重置按钮。当按下重置按钮时,form中包含的控件值将回到初始状态。例如:
    469. <input type="reset"/>
    470. 如果没有设置重置按钮的value值,那么将默认显示reset或者重置。
    471. 三十二:服务器端
    472. 你可以使用你熟悉的服务器端技术来处理这些<input><select>属性。流行的技术包括ASP/ASP.NET 、Java Servlet/JSP 、Perl和PHP。
    473. 下面提供一个简单的获取客户端传过来的值的样例,关于ASP的。在现实中服务器端要做更复杂的处理。例如,把窗体发送过来的数据存储到数据库中。
    474. <?xml version="1.0"?>
    475. <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
    476. <Response.ContentType = "application/vnd.wap.xhtml+xml" %>
    477. <html xmlns="http://www.w3.org/1999/xhtml">
    478. <head>
    479. <title>XHTML MP Tutorial</title>
    480. </head>
    481. <body>
    482. <p>
    483. Data received at the server:<br/>
    484. Username: <% =Request.QueryString("username") %><br/>
    485. Password: <% =Request.QueryString("password") %><br/>
    486. Gender: <% =Request.QueryString("gender") %><br/>
    487. Country: <% =Request.QueryString("country") %><br/>
    488. Which part of our XHTML MP tutorial do you like?
    489. <%
    490. for i=1 to Request.QueryString("tutorial_part").Count
    491. Response.Write(Request.QueryString("tutorial_part")(i) & " ")
    492. next
    493. %>
    494. <br/>
    495. temp_id: <% =Request.QueryString("temp_id") %>
    496. </p>
    497. </body>
    498. </html>

    事实上,没有什么要比发现、培养、呵护、调整自己的心智的力量更重要的事情了.........

  • 相关阅读:
    20155327 2017-2018-2 《Java程序设计》第9周学习总结
    20155327《Java程序设计》第八周学习总结
    实验二 Java面向对象程序设计
    20155327 李百乾 Exp4 恶意代码分析
    20155327结对编程练习
    20155327第七周学习总结
    2017-2018-1 20155310 20155337 实验五 通讯协议设计
    # 2017-2018-1 20155337《信息安全系统设计基础》第十三周学习总结
    # 20155337 2017-2018 1 课上测试、课下作业、实验
    # 课下测试ch02
  • 原文地址:https://www.cnblogs.com/appleseed/p/1364393.html
Copyright © 2011-2022 走看看