<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/17rumen" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/17rumen" type="application/rss+xml"></fs:self_link><lastBuildDate>Sat, 02 Jan 2010 03:56:12 GMT</lastBuildDate><title>www.17rumen.com</title><description>www.一起入门.com - 以视频的方式，让编程入门简单，易学，清晰。往往因为配置编程环境，不知道如何入门导致很多想学编程或者有天份的朋友放弃！</description><link>http://www.17rumen.com</link><language>en</language><pubDate>Sat, 02 Jan 2010 03:56:12 GMT</pubDate><item><title>php_01 Linux 下学习 php编程 相关软件工具设置 和 测试php环境</title><link>http://www.17rumen.com/archives/196.html</link><content:encoded>&lt;p&gt;如果想学习 php编程的朋友，可以考虑一下 在linux 下学习。 呵呵&lt;/p&gt;
&lt;p&gt;现在也不像以前 安装 linux 很复杂， 还有现在安装 LAMP环境也方便（php运行环境吧）&lt;/p&gt;
&lt;p&gt;我建议如果是新手想在linux下学习php的话， 建议安装 ubuntu9.10 server 目前最新版本。&lt;/p&gt;
&lt;p&gt;安装的时候一定要选择 把LAMP也安装上， 如果选择安装上的话， 就直接可以运行php程序了，&lt;/p&gt;
&lt;p&gt;而且还支持比较多的东西， 同时也把 mysql 也安装上了，apache 更加不用说了。可以说非常非常方便。&lt;/p&gt;
&lt;p&gt;你可以观看我网站的安装过程 &lt;a href=&quot;http://www.17rumen.com/archives/164.html&quot;&gt;http://www.17rumen.com/archives/164.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;==========================================&lt;/p&gt;
&lt;p&gt;当然，如果你不喜欢ubuntu的话， 也可以安装其他linux发行版本， 例如centos&lt;br /&gt;
我这里也有相关的教程， 也是相当详细的视频教程&lt;/p&gt;
&lt;p&gt;===============================&lt;/p&gt;
&lt;p&gt;好了， 不说了， 我就使用 ubuntu9.10 server 的lamp 而且现在还安装了 gnome桌面图形界面&lt;br /&gt;
这些都可以在我网站上看到这些教程的。&lt;/p&gt;
&lt;p&gt;我就不多少了，现在看看 安装好了 如何进行 一些工具配置 和编写 php网页，&lt;/p&gt;
&lt;p&gt;php 网页又应该 存放在什么目录下。&lt;/p&gt;
&lt;p&gt;下面开始学习一下。&lt;/p&gt;
&lt;p&gt;首先 你要知道的是 自带的lamp环境， apache的虚拟目录就是在 /var/www&lt;/p&gt;
&lt;p&gt;也就是当你访问 &lt;a href=&quot;http://127.0.0.1/index.html&quot;&gt;http://127.0.0.1/index.html&lt;/a&gt; 的时候也就是访问 /var/www/index.html&lt;/p&gt;
&lt;p&gt;可以测试一下， 看到了吧， 是一样的文件。&lt;/p&gt;
&lt;p&gt;------------------------------------&lt;/p&gt;
&lt;p&gt;那现在好了， 我们以后学习php程序的页面就 放在 /var/www 目录下&lt;/p&gt;
&lt;p&gt;我们现在来写一个 test.php 页面吧。&lt;/p&gt;
&lt;p&gt;发现在 /var/www 目录下不能创建文件， 那是因为这个目录权限只有 root&lt;br /&gt;
而我们现在用 其他用户登录系统的。&lt;/p&gt;
&lt;p&gt;下面修改一下 权限。&lt;/p&gt;
&lt;p&gt;运行 终端&lt;/p&gt;
&lt;p&gt;输入 sudo chmod o+w /var/www&lt;br /&gt;
表示 其他用户 可以对 /var/www 目录可写， 也就是 可以创建文件和目录了。&lt;/p&gt;
&lt;p&gt;现在再创建一个 test.php , 点击打开这个文件， 自动用 gedit 打开&lt;/p&gt;
&lt;p&gt;现在来编写一个 简单的语句&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
 phpinfo();&lt;br /&gt;
?&amp;gt;&lt;/p&gt;
&lt;p&gt;然后用 浏览器 firefox 进行浏览 &lt;a href=&quot;http://127.0.0.1/test.php&quot;&gt;http://127.0.0.1/test.php&lt;/a&gt;&lt;br /&gt;
可以看到 关于 php 的很多信息 这里不介绍了。&lt;/p&gt;
&lt;p&gt;以后这个 gedit 就作为 我们编写 php 的编辑器， 为了更加方便， 对它做一些修改&lt;/p&gt;
&lt;p&gt;例如： 显示行号，启动自动缩进，使用 Cobalt 配色方案，&lt;/p&gt;
&lt;p&gt;当然你可以根据你自己的需要，每个人有不同的喜好，呵呵。&lt;/p&gt;
&lt;p&gt;还有包括 firefox 设置， 终端的一些设置 你自己都可以完成&lt;br /&gt;
主要是根据你的习惯， 让以后学习php的时候更加方便&lt;/p&gt;
&lt;p&gt;好了， 现在已经大概设置好了， 下次就正式学习php的语法内容了。&lt;br /&gt;
以后如果需要设置哪方面再设置也可以的。 我这次的学习笔记就到这里了。&lt;/p&gt;
&lt;div id=&quot;mydownload_main&quot;&gt;
&lt;div id=&quot;mydownload_left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;视频下载地址：请使用WinRAR或者7-Zip进行解压&lt;/li&gt;
&lt;li&gt;点击进入下载页面：&lt;a href='http://ishare.iask.sina.com.cn/f/6394591.html' target='_blank'&gt;下载地址1&lt;/a&gt; | &lt;a href=&quot;http://www.boxcn.net/shared/pmr4lztitq&quot; target=&quot;_blank&quot;&gt;下载地址2&lt;/a&gt; | &lt;a href=&quot;http://cid-3c48ae7e8ca88362.skydrive.live.com/self.aspx?path=%2f.Public%2fPHP%e7%bc%96%e7%a8%8b%5e5Linux%e7%8e%af%e5%a2%83%e4%b8%8b%5e6%20%e5%85%a5%e9%97%a8%e8%a7%86%e9%a2%91%e6%95%99%e7%a8%8b%2fphp%5e_01%20Linux%20%e4%b8%8b%e5%ad%a6%e4%b9%a0%20php%e7%bc%96%e7%a8%8b%20%e7%9b%b8%e5%85%b3%e8%bd%af%e4%bb%b6%e5%b7%a5%e5%85%b7%e8%ae%be%e7%bd%ae%20%e5%92%8c%20%e6%b5%8b%e8%af%95php%e7%8e%af%e5%a2%83.7z&quot; target=&quot;_blank&quot;&gt;下载地址3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div id=&quot;mydownload_right&quot;&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/317868090/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/196.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868090/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868090/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.17rumen.com/archives/196.html/feed</wfw:commentRss><description>如果想学习 php编程的朋友，可以考虑一下 在linux 下学习。 呵呵
现在也不像以前 安装 linux 很复杂， 还有现在安装 LAMP环境也方便（php运行环境吧）
我建议如果是新手想在linux下学习php的话， 建议安装 ubuntu9.10 server 目前最新版本。
安装的时候一定要选择 把LAMP也安装上， 如果选择安装上的话， 就直接可以运行php程序了，
而且还支持比较多的东西， 同时也把 mysql 也安装上了，apache 更加不用说了。可以说非常非常方便。
你可以观看我网站的安装过程 http://www.17rumen.com/archives/164.html
==========================================
当然，如果你不喜欢ubuntu的话， 也可以安装其他linux发行版本， 例如centos
我这里也有相关的教程， 也是相当详细的视频教程
===============================
好了， 不说了， 我就使用 ubuntu9.10 server 的lamp 而且现在还安装了 gnome桌面图形界面
这些都可以在我网站上看到这些教程的。
我就不多少了，现在看看 安装好了 如何进行 一些工具配置 和编写 php网页，
php 网页又应该 存放在什么目录下。
下面开始学习一下。
首先 你要知道的是 自带的lamp环境， apache的虚拟目录就是在 /var/www
也就是当你访问 http://127.0.0.1/index.html 的时候也就是访问 /var/www/index.html
可以测试一下， 看到了吧， 是一样的文件。
------------------------------------
那现在好了， 我们以后学习php程序的页面就 放在 /var/www 目录下
我们现在来写一个 test.php 页面吧。
发现在 /var/www [...]&lt;img src=&quot;http://www1.feedsky.com/t1/317868090/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/196.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868090/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868090/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>PHP</category><pubDate>Sat, 02 Jan 2010 11:56:12 +0800</pubDate><author>fanzg</author><comments>http://www.17rumen.com/archives/196.html#comments</comments><guid isPermaLink="false">http://www.17rumen.com/?p=196</guid><dc:creator>fanzg</dc:creator><fs:srclink>http://www.17rumen.com/archives/196.html</fs:srclink><fs:srcfeed>http://www.17rumen.com/feed</fs:srcfeed><fs:itemid>feedsky/17rumen/~7037509/317868090/5145437</fs:itemid></item><item><title>ubuntu9.10 server 下安装 fcitx 小企鹅输入法并设置模糊音</title><link>http://www.17rumen.com/archives/193.html</link><content:encoded>&lt;p&gt;安装好 ubuntu9.10 server 一段时间了， 现在想在图形界面上学习一些东西。&lt;br /&gt;
但是自带的那个拼音输入法 实在不习惯，可能是我拼音不怎么好， 在windows 上&lt;/p&gt;
&lt;p&gt;使用的拼音输入法 都是设置模糊音的。可以看到我的系统就是这个输入法 汉语 PinYin&lt;/p&gt;
&lt;p&gt;我在网上查了一下 fcitx 也就是 小企鹅输入法 可以设置模糊音的， 所以现在安装一下。&lt;/p&gt;
&lt;p&gt;首先是要删除 系统自带的 IBus , 下面的安装过程 也是参考网上的。&lt;/p&gt;
&lt;p&gt;-----------------------------------&lt;br /&gt;
打开终端&lt;/p&gt;
&lt;p&gt;sudo apt-get remove ibus&lt;/p&gt;
&lt;p&gt;正在删除 language-support-input-zh-hans ...&lt;br /&gt;
正在删除 ibus-table-wubi ...&lt;br /&gt;
正在删除 ibus-table ...&lt;br /&gt;
正在删除 ibus-pinyin ...&lt;br /&gt;
正在删除 ibus ...&lt;br /&gt;
正在处理用于 man-db 的触发器...&lt;br /&gt;
正在处理用于 hicolor-icon-theme 的触发器...&lt;br /&gt;
正在处理用于 desktop-file-utils 的触发器...&lt;br /&gt;
我把一些过程记录上来，方便大家参考&lt;/p&gt;
&lt;p&gt;-------------------------------------------&lt;br /&gt;
接着安装fcitx&lt;/p&gt;
&lt;p&gt;sudo apt-get install fcitx&lt;/p&gt;
&lt;p&gt;需要下载 6,707kB 的软件包。&lt;br /&gt;
解压缩后会消耗掉 22.1MB 的额外空间。&lt;br /&gt;
获取：1 &lt;a href=&quot;http://mirrors.163.com&quot;&gt;http://mirrors.163.com&lt;/a&gt; karmic/universe fcitx 1:3.6.0~rc-0.1 [6,707kB]&lt;br /&gt;
下载 6,707kB，耗时 1 分钟 49 秒 (61.0kB/s)&lt;br /&gt;
选中了曾被取消选择的软件包 fcitx。&lt;br /&gt;
(正在读取数据库 ... 系统当前总共安装有 70819 个文件和目录。)&lt;br /&gt;
正在解压缩 fcitx (从 .../fcitx_1%3a3.6.0~rc-0.1_i386.deb) ...&lt;br /&gt;
正在设置 fcitx (1:3.6.0~rc-0.1) ...&lt;br /&gt;
update-alternatives: 使用 /etc/X11/xinit/xinput.d/fcitx 来提供 /etc/X11/xinit/xinput.d/zh_CN (xinput-zh_CN)，于 自动模式 中。&lt;/p&gt;
&lt;p&gt;大家可以看到我使用的是 163服务器的软件源&lt;/p&gt;
&lt;p&gt;-----------------------------------------&lt;/p&gt;
&lt;p&gt;安装两个中文相关的包&lt;br /&gt;
sudo apt-get install language-pack-zh&lt;br /&gt;
sudo apt-get install language-pack-gnome-zh&lt;/p&gt;
&lt;p&gt;设置为默认的输入法&lt;br /&gt;
im-switch -s fcitx -z all-ALL&lt;/p&gt;
&lt;p&gt;==============================================&lt;br /&gt;
然后就是配置fcitx输入法了。&lt;br /&gt;
用gedit编辑~/.fcitx/config这个文件,&lt;/p&gt;
&lt;p&gt;现在没有找到 有这个目录和文件， 我重启一下&lt;br /&gt;
重启后 再找一下.fcitx目录， 通过 ls -a 可以看到具体的位置 /home/你的用户名/.fcitx&lt;br /&gt;
cd .fcitx 目录 可以看到 config 文件&lt;/p&gt;
&lt;p&gt;我们通过 vi 来修改一下， 但是显示乱码， :q 退出&lt;/p&gt;
&lt;p&gt;再通过命令， gedit config 来打开， 这次没有乱码了。&lt;/p&gt;
&lt;p&gt;=========================================&lt;/p&gt;
&lt;p&gt;下面是一下修改内容&lt;/p&gt;
&lt;p&gt;显示字体(中)=*改成&lt;br /&gt;
显示字体(中)=WenQuanYi Bitmap Song&lt;/p&gt;
&lt;p&gt;上面这个修改是必须的， 如果不修改的话， 输入框是方框。根本看到是字体的。&lt;/p&gt;
&lt;p&gt;然后下面这些修改就是根据自己爱好了。&lt;/p&gt;
&lt;p&gt;例如 候选词个数=9 显示9个。&lt;/p&gt;
&lt;p&gt;保存自动词组=1&lt;/p&gt;
&lt;p&gt;然后我需要的模糊音在最下面， 我全部让它=1 表示使用&lt;/p&gt;
&lt;p&gt;0 表示不使用的意思， 没有其他修改了， 我就重启系统了。&lt;/p&gt;
&lt;p&gt;现在可以新建一个文档 来测试一下了， 模糊音，还有候选词组 都设置成功了。&lt;/p&gt;
&lt;p&gt;这样输入法用起来可方便多了， 还有更加多的设置 大家可以根据需要来设置。&lt;/p&gt;
&lt;p&gt;安装这个输入法的笔记 就到这里了， 呵呵。&lt;/p&gt;
&lt;div id=&quot;mydownload_main&quot;&gt;
&lt;div id=&quot;mydownload_left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;视频下载地址：请使用WinRAR或者7-Zip进行解压&lt;/li&gt;
&lt;li&gt;点击进入下载页面：&lt;a href='http://ishare.iask.sina.com.cn/f/6392390.html' target='_blank'&gt;下载地址1&lt;/a&gt; | &lt;a href=&quot;http://www.boxcn.net/shared/8xptmh2m6p&quot; target=&quot;_blank&quot;&gt;下载地址2&lt;/a&gt; | &lt;a href=&quot;http://cid-3c48ae7e8ca88362.skydrive.live.com/self.aspx/.Public/Ubuntu%20%e8%a7%86%e9%a2%91%e6%95%99%e7%a8%8b/ubuntu9.10^_10%20Ubuntu9.10%20server%20%e4%b8%8b%e5%ae%89%e8%a3%85fcitx%e5%b0%8f%e4%bc%81%e9%b9%85%e8%be%93%e5%85%a5%e6%b3%95%e5%b9%b6%e8%ae%be%e7%bd%ae%e6%a8%a1%e7%b3%8a%e9%9f%b3.7z&quot; target=&quot;_blank&quot;&gt;下载地址3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div id=&quot;mydownload_right&quot;&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/317868091/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/193.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868091/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868091/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.17rumen.com/archives/193.html/feed</wfw:commentRss><description>安装好 ubuntu9.10 server 一段时间了， 现在想在图形界面上学习一些东西。
但是自带的那个拼音输入法 实在不习惯，可能是我拼音不怎么好， 在windows 上
使用的拼音输入法 都是设置模糊音的。可以看到我的系统就是这个输入法 汉语 PinYin
我在网上查了一下 fcitx 也就是 小企鹅输入法 可以设置模糊音的， 所以现在安装一下。
首先是要删除 系统自带的 IBus , 下面的安装过程 也是参考网上的。
-----------------------------------
打开终端
sudo apt-get remove ibus
正在删除 language-support-input-zh-hans ...
正在删除 ibus-table-wubi ...
正在删除 ibus-table ...
正在删除 ibus-pinyin ...
正在删除 ibus ...
正在处理用于 man-db 的触发器...
正在处理用于 hicolor-icon-theme 的触发器...
正在处理用于 desktop-file-utils 的触发器...
我把一些过程记录上来，方便大家参考
-------------------------------------------
接着安装fcitx
sudo apt-get install fcitx
需要下载 6,707kB 的软件包。
解压缩后会消耗掉 22.1MB 的额外空间。
获取：1 http://mirrors.163.com karmic/universe fcitx 1:3.6.0~rc-0.1 [6,707kB]
下载 6,707kB，耗时 1 分钟 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/317868091/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/193.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868091/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868091/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>ubuntu</category><category>Linux</category><pubDate>Fri, 01 Jan 2010 23:59:30 +0800</pubDate><author>fanzg</author><comments>http://www.17rumen.com/archives/193.html#comments</comments><guid isPermaLink="false">http://www.17rumen.com/?p=193</guid><dc:creator>fanzg</dc:creator><fs:srclink>http://www.17rumen.com/archives/193.html</fs:srclink><fs:srcfeed>http://www.17rumen.com/feed</fs:srcfeed><fs:itemid>feedsky/17rumen/~7037509/317868091/5145437</fs:itemid></item><item><title>wml_10 WML与tomcat服务器上的Servlet进行通信</title><link>http://www.17rumen.com/archives/192.html</link><content:encoded>&lt;p&gt;一直我们都是在本地学习 wml 和 wmlscript ， 那么如果放在服务器上会怎么样呢 ？&lt;/p&gt;
&lt;p&gt;或者 我们需要和其他后台进行相互通信， 再结合数据库 又会怎样呢 ？&lt;/p&gt;
&lt;p&gt;这次我们学习一下 在 tomcat服务器上 配置 wml 和 servlet 让它们相互通信。&lt;/p&gt;
&lt;p&gt;思路是这样的： wml页面提交数据给 servlet ， servlet 接收后再进行处理 ，然后返回一个wml页面&lt;/p&gt;
&lt;p&gt;给手机进行显示。&lt;/p&gt;
&lt;p&gt;==========================================&lt;/p&gt;
&lt;p&gt;好，我们先安装一下 tomcat 服务器吧， 这里我使用的版本是 apache-tomcat-5.5.20 ，&lt;/p&gt;
&lt;p&gt;在文章的最后我会提供给大家下载， 你可以在网上下载吧。&lt;/p&gt;
&lt;p&gt;如果你一直 按照我们这个wml教程来做的话， 那么你已经安装好 JDK 了，也配置好环境了。&lt;/p&gt;
&lt;p&gt;如果你还没有的话 请参考&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.17rumen.com/archives/175.html&quot;&gt;http://www.17rumen.com/archives/175.html&lt;/a&gt;  这个视频详细演示了 jdk 1.7安装 和 配置环境变量的。&lt;/p&gt;
&lt;p&gt;这里我不重复了， 假设你的电脑已经安装好了 jdk 和 配置好了环境变量。&lt;/p&gt;
&lt;p&gt;那么你就可以 解压出 tomcat 就可以使用了。&lt;/p&gt;
&lt;p&gt;看我操作吧。&lt;/p&gt;
&lt;p&gt;运行 apache-tomcat-5.5.20\bin\startup.bat 就可以测试 一下 是否成功&lt;/p&gt;
&lt;p&gt;看到没有出错的信息， 一般正常运行， 可以用浏览器进行测试&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://127.0.0.1:8080/&quot;&gt;http://127.0.0.1:8080/&lt;/a&gt;   显示一个 tomcat界面，表示正常了。&lt;/p&gt;
&lt;p&gt;===========================================================&lt;br /&gt;
下面来编写 servlet 程序。&lt;/p&gt;
&lt;p&gt;详细的编写 过程 我就不说了， 还有你需要一定的 java 基础。&lt;/p&gt;
&lt;p&gt;特别是 j2ee 这一块的， 特别servlet 这个吧。&lt;/p&gt;
&lt;p&gt;这里我主要讲解一下 重点部分&lt;/p&gt;
&lt;p&gt;response.setContentType(&quot;text/vnd.wap.wml&quot;);&lt;/p&gt;
&lt;p&gt;这个就是 指定 响应后返回给 客户端界面的格式吧。&lt;br /&gt;
如果是 平时我们用的 ie 浏览器这些 电脑浏览器界面， &quot;text/html&quot; 格式的&lt;/p&gt;
&lt;p&gt;String userName = request.getParameter(&quot;userName&quot;);&lt;br /&gt;
这个就是得到手机页面传过来的参数的值&lt;/p&gt;
&lt;p&gt;  if( !userName.equals(&quot;Jack&quot;) )&lt;br /&gt;
  {&lt;br /&gt;
   response.sendRedirect(&quot;/wml/wml_06.wml&quot;);&lt;br /&gt;
  }&lt;/p&gt;
&lt;p&gt;然后做一个简单的判断， 如果 手机用户输入的名字 不是Jack 则返回到输入界面&lt;br /&gt;
如果输入的名字是 Jack 那么就会显示一个&lt;/p&gt;
&lt;p&gt;  out.println(&quot;&amp;lt;?xml version=\&quot;1.0\&quot;?&amp;gt;&quot;);&lt;br /&gt;
  out.println(&quot;&amp;lt;!DOCTYPE wml PUBLIC \&quot;-//WAPFORUM//DTD WML 1.1//EN\&quot;&quot;);&lt;br /&gt;
  out.println(&quot; \&quot;&lt;a href=&quot;http://www.wapforum.org/DTD/wml_1.1.xml\&quot;&gt;http://www.wapforum.org/DTD/wml_1.1.xml\&lt;/a&gt;&quot;&amp;gt;&quot;);&lt;br /&gt;
  out.println(&quot;&amp;lt;wml&amp;gt;&quot;);&lt;br /&gt;
  out.println(&quot;&amp;lt;card title=\&quot;Welcome!\&quot;&amp;gt;&quot;);&lt;br /&gt;
  out.println(&quot; &amp;lt;p align=\&quot;center\&quot;&amp;gt;&quot;);&lt;/p&gt;
&lt;p&gt;  out.println(&quot;Hello, &quot;+ userName );&lt;/p&gt;
&lt;p&gt;  out.println(&quot;&amp;lt;/p&amp;gt;&quot;);&lt;br /&gt;
  out.println(&quot;&amp;lt;/card&amp;gt;&quot;);&lt;br /&gt;
  out.println(&quot;&amp;lt;/wml&amp;gt;&quot;);&lt;/p&gt;
&lt;p&gt;这样的界面， 内容是  Hello,  Jack&lt;/p&gt;
&lt;p&gt;好， Servlet 文件有了， 但是这是一个 .java 源文件，还要编译成 .class 文件才行。&lt;/p&gt;
&lt;p&gt;为了编译路径方便， 我们把 MyServlet.java 复制到 c:\ 盘下&lt;br /&gt;
C:\&amp;gt;cd \&lt;/p&gt;
&lt;p&gt;C:\&amp;gt;javac MyServlet.java&lt;/p&gt;
&lt;p&gt;MyServlet.java:2: 软件包 javax.servlet 不存在&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
^&lt;br /&gt;
MyServlet.java:3: 软件包 javax.servlet.http 不存在&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
^&lt;br /&gt;
MyServlet.java:4: 找不到符号&lt;br /&gt;
public class MyServlet extends HttpServlet&lt;/p&gt;
&lt;p&gt;出现一些错误， 这是一个包的缺省， 一个 j2ee的， tomcat 自带有的，&lt;/p&gt;
&lt;p&gt;但是要 配置一下 环境变量 classpath 下面看我配置吧。&lt;/p&gt;
&lt;p&gt;在最后加入 &lt;/p&gt;
&lt;p&gt;;C:\Documents and Settings\Administrator\桌面\apache-tomcat-5.5.20\common\lib\servlet-api.jar&lt;/p&gt;
&lt;p&gt;然后 一定要退出原来的 cmd&lt;/p&gt;
&lt;p&gt;再重新执行 cmd&lt;/p&gt;
&lt;p&gt;这样就成功编译出  MyServlet.class 文件了。&lt;/p&gt;
&lt;p&gt;=============================================&lt;/p&gt;
&lt;p&gt;下面我们来 配置一些 这个 wml 文件和 MyServlet.class 这个文件&lt;/p&gt;
&lt;p&gt;\apache-tomcat-5.5.20\webapps  在这个目录下 新建 一个 wml 文件夹&lt;/p&gt;
&lt;p&gt;然后进入文件夹 再新建一个 WEB-INF文件夹， 再进去新建一个文件夹 classes和一个 web.xml文件。&lt;/p&gt;
&lt;p&gt;记事本打开 web.xml 文件 ， 内容如下：&lt;/p&gt;
&lt;p&gt;&amp;lt;web-app&amp;gt;&lt;br /&gt;
 &amp;lt;servlet&amp;gt;&lt;br /&gt;
  &amp;lt;servlet-name&amp;gt;MyServlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;
  &amp;lt;servlet-class&amp;gt;MyServlet&amp;lt;/servlet-class&amp;gt;&lt;br /&gt;
 &amp;lt;/servlet&amp;gt;&lt;br /&gt;
 &amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;
  &amp;lt;servlet-name&amp;gt;MyServlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;
  &amp;lt;url-pattern&amp;gt;/MyServlet&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;
 &amp;lt;/servlet-mapping&amp;gt;&lt;br /&gt;
&amp;lt;/web-app&amp;gt;&lt;/p&gt;
&lt;p&gt;把刚才编译的 MyServlet.class 放入 classes目录下&lt;/p&gt;
&lt;p&gt;至于 wml 文件方面，我们用会 第6课的视频教程的代码 wml_06.wml&lt;/p&gt;
&lt;p&gt;不过要做一些修改&lt;/p&gt;
&lt;p&gt;   &amp;lt;a href=&quot;&lt;a href=&quot;http://127.0.0.1:8080/wml/MyServlet?userName=$(userName&quot;&gt;http://127.0.0.1:8080/wml/MyServlet?userName=$(userName&lt;/a&gt;)&quot;&amp;gt;&lt;br /&gt;
    Login&lt;br /&gt;
   &amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;p&gt;很遗憾的是 我们一直使用的 Nokia Mobile Browser Simulator 4.0&lt;/p&gt;
&lt;p&gt;不能通过 RUL 来访问 wap网站， 只能本地打开 .wml 文件，可能是我不会设置的原因吧&lt;/p&gt;
&lt;p&gt;我现在也可以再测试一下， 是吧，就是这样 一直等下去&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://127.0.0.1:8080/wml/wml_06.wml&quot;&gt;http://127.0.0.1:8080/wml/wml_06.wml&lt;/a&gt;&lt;br /&gt;
这个路径是没有错的。&lt;/p&gt;
&lt;p&gt;不说了， 现在我们用另外一个 软件来测试吧。&lt;/p&gt;
&lt;p&gt;M3Gate1.2(windows访问wap网站浏览器).7z&lt;/p&gt;
&lt;p&gt;你们可以到网上下载，我也会提供给你们下载的。&lt;/p&gt;
&lt;p&gt;具体怎样用， 我不说了， 看我操作吧。&lt;/p&gt;
&lt;p&gt;这样就打开了&lt;/p&gt;
&lt;p&gt;点击 login 后， 出现 404 也就是没有找到 tomcat  上的 servlet&lt;/p&gt;
&lt;p&gt;我们可能是刚才配置好了 没有重启 tomcat&lt;/p&gt;
&lt;p&gt;我现在关闭了， 再次 启动一下&lt;/p&gt;
&lt;p&gt;我找到原因了 ， web.xml 文件应该 在 WEB-INF 目录下的。&lt;/p&gt;
&lt;p&gt;看到了吧， 现在我们就可以 看到 显示 Hello, Jack 了&lt;/p&gt;
&lt;p&gt;这时我们登陆 都不了， 只会再回到 这个界面上去&lt;/p&gt;
&lt;p&gt;现在这个服务器只能在 局域网上 访问吧&lt;/p&gt;
&lt;p&gt;你可以修改 .wml 中的&lt;/p&gt;
&lt;p&gt;   &amp;lt;a href=&quot;&lt;a href=&quot;http://192.168.1.8:8080/wml/MyServlet?userName=$(userName&quot;&gt;http://192.168.1.8:8080/wml/MyServlet?userName=$(userName&lt;/a&gt;)&quot;&amp;gt;&lt;br /&gt;
    Login&lt;br /&gt;
   &amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;p&gt;再手机 模拟器上 输入 &lt;a href=&quot;http://192.168.1.8:8080/wml/wml_06.wml&quot;&gt;http://192.168.1.8:8080/wml/wml_06.wml&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;也是一样的效果， 这时你可以在局域网上 的其他机器进行访问&lt;/p&gt;
&lt;p&gt;==================================&lt;/p&gt;
&lt;p&gt;下面总结一下吧， 这只是一个简单的 交互程序&lt;/p&gt;
&lt;p&gt;你可以做一些扩展， 例如 加上验证密码&lt;/p&gt;
&lt;p&gt;还有 用户名和密码 需要从数据库中 得到进行验证&lt;/p&gt;
&lt;p&gt;这就涉及到 servlet 和 数据库上的啦。&lt;/p&gt;
&lt;p&gt;还有就是 当输入的数据有问题， 做一个 提示页面 告诉用户 重新输入一次&lt;/p&gt;
&lt;p&gt;等等。。这些你们都可以进一步学习。 我就演示到这里了 88&lt;/p&gt;
&lt;div id=&quot;mydownload_main&quot;&gt;
&lt;div id=&quot;mydownload_left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;apache-tomcat-5.5.20(解压就可以用windows版本) ：&lt;/li&gt;
&lt;li&gt;点击进入下载页面：&lt;a href='http://ishare.iask.sina.com.cn/f/6378530.html' target='_blank'&gt;下载地址1&lt;/a&gt; | &lt;a href=&quot;http://cid-3c48ae7e8ca88362.skydrive.live.com/self.aspx/.Public/tools%e8%a7%86%e9%a2%91%e4%b8%ad%e8%bd%af%e4%bb%b6%e5%b7%a5%e5%85%b7/apache-tomcat-5.5.20^5%e8%a7%a3%e5%8e%8b%e5%b0%b1%e5%8f%af%e4%bb%a5%e7%94%a8windows%e7%89%88%e6%9c%ac^6.7z&quot; target=&quot;_blank&quot;&gt;下载地址3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div id=&quot;mydownload_right&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;mydownload_main&quot;&gt;
&lt;div id=&quot;mydownload_left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;M3Gate1.2(windows访问wap手机网站浏览器)：&lt;/li&gt;
&lt;li&gt;点击进入下载页面：&lt;a href='http://ishare.iask.sina.com.cn/f/6378448.html' target='_blank'&gt;下载地址1&lt;/a&gt; | &lt;a href=&quot;http://cid-3c48ae7e8ca88362.skydrive.live.com/self.aspx/.Public/tools%e8%a7%86%e9%a2%91%e4%b8%ad%e8%bd%af%e4%bb%b6%e5%b7%a5%e5%85%b7/M3Gate1.2^5windows%e8%ae%bf%e9%97%aewap%e6%89%8b%e6%9c%ba%e7%bd%91%e7%ab%99%e6%b5%8f%e8%a7%88%e5%99%a8^6.7z&quot; target=&quot;_blank&quot;&gt;下载地址3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div id=&quot;mydownload_right&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;mydownload_main&quot;&gt;
&lt;div id=&quot;mydownload_left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;视频下载地址：&lt;/li&gt;
&lt;li&gt;点击进入下载页面：&lt;a href='http://ishare.iask.sina.com.cn/f/6378418.html' target='_blank'&gt;下载地址1&lt;/a&gt; | &lt;a href=&quot;http://www.boxcn.net/shared/i8cbsfvozh&quot; target=&quot;_blank&quot;&gt;下载地址2&lt;/a&gt; | &lt;a href=&quot;http://cid-3c48ae7e8ca88362.skydrive.live.com/self.aspx/.Public/WML%e5%bc%80%e5%8f%91%e6%89%8b%e6%9c%bawap%e7%bd%91%e7%ab%99%20%e8%a7%86%e9%a2%91%e6%95%99%e7%a8%8b/wml^_10%20WML%e4%b8%8etomcat%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%8a%e7%9a%84Servlet%e8%bf%9b%e8%a1%8c%e9%80%9a%e4%bf%a1.7z&quot; target=&quot;_blank&quot;&gt;下载地址3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div id=&quot;mydownload_right&quot;&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/317868092/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/192.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868092/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868092/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.17rumen.com/archives/192.html/feed</wfw:commentRss><description>一直我们都是在本地学习 wml 和 wmlscript ， 那么如果放在服务器上会怎么样呢 ？
或者 我们需要和其他后台进行相互通信， 再结合数据库 又会怎样呢 ？
这次我们学习一下 在 tomcat服务器上 配置 wml 和 servlet 让它们相互通信。
思路是这样的： wml页面提交数据给 servlet ， servlet 接收后再进行处理 ，然后返回一个wml页面
给手机进行显示。
==========================================
好，我们先安装一下 tomcat 服务器吧， 这里我使用的版本是 apache-tomcat-5.5.20 ，
在文章的最后我会提供给大家下载， 你可以在网上下载吧。
如果你一直 按照我们这个wml教程来做的话， 那么你已经安装好 JDK 了，也配置好环境了。
如果你还没有的话 请参考
http://www.17rumen.com/archives/175.html  这个视频详细演示了 jdk 1.7安装 和 配置环境变量的。
这里我不重复了， 假设你的电脑已经安装好了 jdk 和 配置好了环境变量。
那么你就可以 解压出 tomcat 就可以使用了。
看我操作吧。
运行 apache-tomcat-5.5.20\bin\startup.bat 就可以测试 一下 是否成功
看到没有出错的信息， 一般正常运行， 可以用浏览器进行测试
http://127.0.0.1:8080/   显示一个 tomcat界面，表示正常了。
===========================================================
下面来编写 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/317868092/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/192.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868092/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868092/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>J2ME|WML</category><category>wml</category><category>tomcat</category><pubDate>Thu, 31 Dec 2009 11:41:07 +0800</pubDate><author>A-One</author><comments>http://www.17rumen.com/archives/192.html#comments</comments><guid isPermaLink="false">http://www.17rumen.com/?p=192</guid><dc:creator>A-One</dc:creator><fs:srclink>http://www.17rumen.com/archives/192.html</fs:srclink><fs:srcfeed>http://www.17rumen.com/feed</fs:srcfeed><fs:itemid>feedsky/17rumen/~7037509/317868092/5145437</fs:itemid></item><item><title>wml_09 编写简单的计算器( 涉及WMLScript传值,数据类型转换 问题 )</title><link>http://www.17rumen.com/archives/190.html</link><content:encoded>&lt;p&gt;在上次视频中，第一次使用 WMLScript 脚本， 就是一个简单的验证 登陆程序，&lt;/p&gt;
&lt;p&gt;没有涉及其他一些常用的功能。&lt;/p&gt;
&lt;p&gt;这次我们要编写一个 计算器， 这个计算器使用 WMLScript 脚本来运算，把运算结果再返回给&lt;/p&gt;
&lt;p&gt;.wml 页面， 再进行显示。&lt;/p&gt;
&lt;p&gt;比起上次视频多了一些步骤， 还有一些数据类型的转换。&lt;/p&gt;
&lt;p&gt;好，下面我们在上次的视频 代码中 进行修改。 先回顾一下上次的视频。&lt;/p&gt;
&lt;p&gt;这就是上次的一个登陆程序，我现在修改一下。&lt;/p&gt;
&lt;p&gt;==============================&lt;/p&gt;
&lt;p&gt;你现在看上去就是一个 2个文本框， 就是2个数相加的 简单程序。&lt;/p&gt;
&lt;p&gt;因为现在需要 把&lt;/p&gt;
&lt;p&gt;   &amp;lt;input name=&quot;num1&quot; size=&quot;4&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;   + &amp;lt;br/&amp;gt;&lt;/p&gt;
&lt;p&gt;   &amp;lt;input name=&quot;num2&quot; size=&quot;4&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;num1 和 num2 这两个数， 传给 WMLScript 的函数，然后再进行计算。&lt;/p&gt;
&lt;p&gt;所以， 函数需要在原来的基础上增加一个参数才可以。&lt;/p&gt;
&lt;p&gt;   &amp;lt;a href=&quot;wml_08.wmls#disp('num1','num2')&quot;&amp;gt;&lt;br /&gt;
    Submit&lt;br /&gt;
   &amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;p&gt;当然，在 WMLScript 中的函数也同时要增加， 不然参数的数量不一样就会出错。&lt;/p&gt;
&lt;p&gt;extern function disp(str1,str2)&lt;br /&gt;
{&lt;br /&gt;
 var num1 = WMLBrowser.getVar( str1 );&lt;/p&gt;
&lt;p&gt; var num2 = WMLBrowser.getVar( str2 );&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;暂时不使用的语句， 可以用 // 来注释掉。 说明这一行语句不会被执行的。&lt;/p&gt;
&lt;p&gt; var sum = num1 + num2;&lt;/p&gt;
&lt;p&gt; Dialogs.alert( sum );&lt;/p&gt;
&lt;p&gt;这样就会 打印 2个相加的值了。我们测试一下。&lt;/p&gt;
&lt;p&gt;输入 2 + 3 ， 但是结果显示 23 。。。。&lt;/p&gt;
&lt;p&gt;这是因为&lt;/p&gt;
&lt;p&gt; var num1 = WMLBrowser.getVar( str1 );&lt;/p&gt;
&lt;p&gt; var num2 = WMLBrowser.getVar( str2 );&lt;/p&gt;
&lt;p&gt;num1 和 num2 并不是数字类型， 是字符类型，&lt;/p&gt;
&lt;p&gt;也就是 var sum = &quot;2&quot; + &quot;3&quot; 那当然就是变成 23 了。&lt;/p&gt;
&lt;p&gt;我们现在 做一个数据转换， 把 字符类型 转为 数字类型&lt;/p&gt;
&lt;p&gt;这样就可以 进行运算操作了。Lang.parseInt() 函数，就是把字符类型转为数字类型的。&lt;/p&gt;
&lt;p&gt;我们现在再测试一下， 现在就成功 得到了 2+3=5 了， 呵呵。&lt;/p&gt;
&lt;p&gt;=====================================&lt;/p&gt;
&lt;p&gt;现在问题又来了， 如何把 这个 5 传回到 我们的 .wml 页面呢？&lt;/p&gt;
&lt;p&gt;这就需要多一个 变量才行&lt;/p&gt;
&lt;p&gt;    &amp;lt;setvar name=&quot;message&quot; value=&quot;&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;这是什么意思呢 ？ 这就是声明一个 message 并且让它为空 &quot;&quot; 值，&lt;/p&gt;
&lt;p&gt;然后我们再把它 传到WMLScript 脚本中， 把 运算结果 5 赋值给它，这样message 就等于5了&lt;/p&gt;
&lt;p&gt;这样就可以在 .wml 文件中显示出来&lt;/p&gt;
&lt;p&gt; WMLBrowser.setVar( msg , sum );&lt;/p&gt;
&lt;p&gt;  &amp;lt;p&amp;gt; $(message)&amp;lt;/p&amp;gt;&lt;/p&gt;
&lt;p&gt;测试一下， 出现一个错误，看看， 可以了， 可能是刚才没有刷新的原因的把。&lt;/p&gt;
&lt;p&gt;现在这个显示页面就是 .wml 文件中的 卡片card2 的内容了。&lt;/p&gt;
&lt;p&gt;我们再修改一下吧&lt;/p&gt;
&lt;p&gt;&amp;lt;p&amp;gt;$(num1) + $(num2) = $(message)&amp;lt;/p&amp;gt;&lt;/p&gt;
&lt;p&gt;这样显示就比较清楚了。。 或者再从头载入一次。&lt;/p&gt;
&lt;p&gt;是吧， 这样一个简单的计算器就出来， 当然你可以 改成其他运算， 2个数相减，&lt;/p&gt;
&lt;p&gt;或者 乘除 ，都可以，或者多几个数 运算都可以。好了视频就到这里，谢谢观看！8&lt;/p&gt;
&lt;div id=&quot;mydownload_main&quot;&gt;
&lt;div id=&quot;mydownload_left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;视频下载地址：请使用WinRAR或者7-Zip进行解压&lt;/li&gt;
&lt;li&gt;点击进入下载页面：&lt;a href='http://ishare.iask.sina.com.cn/f/6372559.html' target='_blank'&gt;下载地址1&lt;/a&gt; | &lt;a href=&quot;http://www.boxcn.net/shared/m3zjlqifu8&quot; target=&quot;_blank&quot;&gt;下载地址2&lt;/a&gt; | &lt;a href=&quot;http://cid-3c48ae7e8ca88362.skydrive.live.com/self.aspx?path=%2f.Public%2fWML%e5%bc%80%e5%8f%91%e6%89%8b%e6%9c%bawap%e7%bd%91%e7%ab%99%20%e8%a7%86%e9%a2%91%e6%95%99%e7%a8%8b%2fwml%5e_09%20%e7%bc%96%e5%86%99%e7%ae%80%e5%8d%95%e7%9a%84%e8%ae%a1%e7%ae%97%e5%99%a8%5e5%20%e6%b6%89%e5%8f%8aWMLScript%e4%bc%a0%e5%80%bc%5eJ%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b%e8%bd%ac%e6%8d%a2%20%e9%97%ae%e9%a2%98%20%5e6.7z&quot; target=&quot;_blank&quot;&gt;下载地址3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div id=&quot;mydownload_right&quot;&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/317868093/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/190.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868093/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868093/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.17rumen.com/archives/190.html/feed</wfw:commentRss><description>在上次视频中，第一次使用 WMLScript 脚本， 就是一个简单的验证 登陆程序，
没有涉及其他一些常用的功能。
这次我们要编写一个 计算器， 这个计算器使用 WMLScript 脚本来运算，把运算结果再返回给
.wml 页面， 再进行显示。
比起上次视频多了一些步骤， 还有一些数据类型的转换。
好，下面我们在上次的视频 代码中 进行修改。 先回顾一下上次的视频。
这就是上次的一个登陆程序，我现在修改一下。
==============================
你现在看上去就是一个 2个文本框， 就是2个数相加的 简单程序。
因为现在需要 把
   &amp;#60;input name=&quot;num1&quot; size=&quot;4&quot; /&amp;#62;
   + &amp;#60;br/&amp;#62;
   &amp;#60;input name=&quot;num2&quot; size=&quot;4&quot; /&amp;#62;
num1 和 num2 这两个数， 传给 WMLScript 的函数，然后再进行计算。
所以， 函数需要在原来的基础上增加一个参数才可以。
   &amp;#60;a href=&quot;wml_08.wmls#disp('num1','num2')&quot;&amp;#62;
    Submit
   &amp;#60;/a&amp;#62;
当然，在 WMLScript 中的函数也同时要增加， 不然参数的数量不一样就会出错。
extern function disp(str1,str2)
{
 var num1 = WMLBrowser.getVar( str1 );
 var num2 = WMLBrowser.getVar( str2 );
}
暂时不使用的语句， 可以用 // 来注释掉。 说明这一行语句不会被执行的。
 var sum = [...]&lt;img src=&quot;http://www1.feedsky.com/t1/317868093/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/190.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868093/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868093/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>J2ME|WML</category><category>wml</category><pubDate>Wed, 30 Dec 2009 18:11:59 +0800</pubDate><author>A-One</author><comments>http://www.17rumen.com/archives/190.html#comments</comments><guid isPermaLink="false">http://www.17rumen.com/?p=190</guid><dc:creator>A-One</dc:creator><fs:srclink>http://www.17rumen.com/archives/190.html</fs:srclink><fs:srcfeed>http://www.17rumen.com/feed</fs:srcfeed><fs:itemid>feedsky/17rumen/~7037509/317868093/5145437</fs:itemid></item><item><title>wml_08 编写简单的本地验证数据程序例子，让你了解 WMLScript</title><link>http://www.17rumen.com/archives/189.html</link><content:encoded>&lt;p&gt;我们曾经做过这样一个界面， 就是用户登陆界面 的.wml页面，&lt;/p&gt;
&lt;p&gt;现在打开 回顾一下， 就是这样的一个 登陆界面。&lt;/p&gt;
&lt;p&gt;如果是在 html网页中， 我们通常会使用 javascript 对用户输入的数据 进行一些验证，&lt;/p&gt;
&lt;p&gt;例如 如果用户名为空， 也就是用户什么都没有输入， 这样就提示要用户输入用户名，&lt;/p&gt;
&lt;p&gt;就让它 继续填写， 如果填写数据了 就提交给服务器进行处理。&lt;/p&gt;
&lt;p&gt;在 wml 中， 也不例外， 不过使用的是 WMLScript 脚本， 这个也可以作为本地验证，&lt;/p&gt;
&lt;p&gt;别小看本地验证， 一些可以前台进行处理的数据尽量 前台处理，这样可以减轻服务器的负担。&lt;/p&gt;
&lt;p&gt;===========================================&lt;/p&gt;
&lt;p&gt;好了， 不多说了， 现在来实现一个功能：&lt;/p&gt;
&lt;p&gt;用户没有输入信息 就点击了 登陆，我们就提示要它 重新回到界面 输入，&lt;/p&gt;
&lt;p&gt;如果已经输入了， 再点击登陆，那么就 显示欢迎界面。&lt;/p&gt;
&lt;p&gt;重点在 用户 点击 登陆的时候 发生 验证程序。&lt;/p&gt;
&lt;p&gt;也就是点击登陆就把数据 传到 wmlscript中 进行验证。&lt;/p&gt;
&lt;p&gt;新建一个 wml_08.wmls 文件， .wmls文件是 wmlscript的脚本文件。&lt;/p&gt;
&lt;p&gt;现在 我们在脚本文件上 写一个 简单的验证函数。&lt;/p&gt;
&lt;p&gt;extern function disp(str)&lt;br /&gt;
{&lt;br /&gt;
 var userName = WMLBrowser.getVar( str );&lt;/p&gt;
&lt;p&gt; if( userName == &quot;&quot; )&lt;br /&gt;
  Dialogs.alert( &quot;Please enter your name, Try again.&quot; );&lt;br /&gt;
 else&lt;br /&gt;
  WMLBrowser.go( &quot;wml_08.wml#c2&quot; );&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;对上面的一些语句做一些解析吧&lt;/p&gt;
&lt;p&gt;disp 就是我们写的一个函数， 函数名就是 disp&lt;/p&gt;
&lt;p&gt;function 就是函数的意思了。&lt;/p&gt;
&lt;p&gt;disp(str) 表示 str 是从外部传进来的参数&lt;/p&gt;
&lt;p&gt;其实这个函数，  如果你之前有了解过 javascript 都容易看得懂了。&lt;/p&gt;
&lt;p&gt;var userName = WMLBrowser.getVar( str ); 声明一个 userName 变量并且获得&lt;br /&gt;
传来的参数值。&lt;/p&gt;
&lt;p&gt; if( userName == &quot;&quot; )&lt;br /&gt;
  Dialogs.alert( &quot;Please enter your name, Try again.&quot; );&lt;br /&gt;
 else&lt;br /&gt;
  WMLBrowser.go( &quot;wml_08.wml#c2&quot; );&lt;/p&gt;
&lt;p&gt;这个语法， 我就不多说了， 就是一个简单的判断，&lt;/p&gt;
&lt;p&gt;如果 userName 为空 &quot;&quot; ， 就会弹出一个信息 叫你输入 你的名字。&lt;/p&gt;
&lt;p&gt;如果不为空， 就显示 wml_08.wml文件上的 卡片c2的信息。&lt;/p&gt;
&lt;p&gt;==============================&lt;/p&gt;
&lt;p&gt;wmlscript 写好了， 现在修改 .wml 文件进行调用脚本的 disp函数。&lt;/p&gt;
&lt;p&gt;   &amp;lt;a href=&quot;#c2&quot;&amp;gt;&lt;br /&gt;
    Login&lt;br /&gt;
   &amp;lt;/a&amp;gt;&lt;br /&gt;
改为：&lt;br /&gt;
   &amp;lt;a href=&quot;wml_08.wmls#disp('userName')&quot;&amp;gt;&lt;br /&gt;
    Login&lt;br /&gt;
   &amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;p&gt;好，下面用 手机模拟器 ，测试一下&lt;br /&gt;
1 ， 先测试 什么都不输入的情况下， 成功了， 提示信息 叫你输入你的名字&lt;/p&gt;
&lt;p&gt;2 ， 我们输入 Jack 名字， 再登陆 看看，就会 提示 Welcome, Jack&lt;/p&gt;
&lt;p&gt;说明 wmlscript 起到了作用。&lt;/p&gt;
&lt;p&gt;这只是一个非常简单的例子， 对于刚接触的朋友来说 是非常好的。&lt;/p&gt;
&lt;p&gt;代码相当的简单。&lt;/p&gt;
&lt;p&gt;当然 如果你想继续 编写下去也可以， 例如 密码也不能为空啊。。。 等等&lt;/p&gt;
&lt;p&gt;我这里就不演示了， 这么一个简单的代码，功能也简单的程序，希望你可以看得懂。&lt;/p&gt;
&lt;p&gt;呵呵， 视频就到这里了， 8&lt;/p&gt;
&lt;div id=&quot;mydownload_main&quot;&gt;
&lt;div id=&quot;mydownload_left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;视频下载地址：请使用WinRAR或者7-Zip进行解压&lt;/li&gt;
&lt;li&gt;点击进入下载页面：&lt;a href='http://ishare.iask.sina.com.cn/f/6368994.html' target='_blank'&gt;下载地址1&lt;/a&gt; | &lt;a href=&quot;http://www.boxcn.net/shared/ha0ndqcm00&quot; target=&quot;_blank&quot;&gt;下载地址2&lt;/a&gt; | &lt;a href=&quot;http://cid-3c48ae7e8ca88362.skydrive.live.com/self.aspx?path=%2f.Public%2fWML%e5%bc%80%e5%8f%91%e6%89%8b%e6%9c%bawap%e7%bd%91%e7%ab%99%20%e8%a7%86%e9%a2%91%e6%95%99%e7%a8%8b%2fwml%5e_08%20%e7%bc%96%e5%86%99%e7%ae%80%e5%8d%95%e7%9a%84%e6%9c%ac%e5%9c%b0%e9%aa%8c%e8%af%81%e6%95%b0%e6%8d%ae%e7%a8%8b%e5%ba%8f%e4%be%8b%e5%ad%90%ef%bc%8c%e8%ae%a9%e4%bd%a0%e4%ba%86%e8%a7%a3%20WMLScript.7z&quot; target=&quot;_blank&quot;&gt;下载地址3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div id=&quot;mydownload_right&quot;&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/317868094/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/189.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868094/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868094/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.17rumen.com/archives/189.html/feed</wfw:commentRss><description>我们曾经做过这样一个界面， 就是用户登陆界面 的.wml页面，
现在打开 回顾一下， 就是这样的一个 登陆界面。
如果是在 html网页中， 我们通常会使用 javascript 对用户输入的数据 进行一些验证，
例如 如果用户名为空， 也就是用户什么都没有输入， 这样就提示要用户输入用户名，
就让它 继续填写， 如果填写数据了 就提交给服务器进行处理。
在 wml 中， 也不例外， 不过使用的是 WMLScript 脚本， 这个也可以作为本地验证，
别小看本地验证， 一些可以前台进行处理的数据尽量 前台处理，这样可以减轻服务器的负担。
===========================================
好了， 不多说了， 现在来实现一个功能：
用户没有输入信息 就点击了 登陆，我们就提示要它 重新回到界面 输入，
如果已经输入了， 再点击登陆，那么就 显示欢迎界面。
重点在 用户 点击 登陆的时候 发生 验证程序。
也就是点击登陆就把数据 传到 wmlscript中 进行验证。
新建一个 wml_08.wmls 文件， .wmls文件是 wmlscript的脚本文件。
现在 我们在脚本文件上 写一个 简单的验证函数。
extern function disp(str)
{
 var userName = WMLBrowser.getVar( str [...]&lt;img src=&quot;http://www1.feedsky.com/t1/317868094/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/189.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868094/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868094/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>J2ME|WML</category><category>wml</category><pubDate>Wed, 30 Dec 2009 12:36:48 +0800</pubDate><author>A-One</author><comments>http://www.17rumen.com/archives/189.html#comments</comments><guid isPermaLink="false">http://www.17rumen.com/?p=189</guid><dc:creator>A-One</dc:creator><fs:srclink>http://www.17rumen.com/archives/189.html</fs:srclink><fs:srcfeed>http://www.17rumen.com/feed</fs:srcfeed><fs:itemid>feedsky/17rumen/~7037509/317868094/5145437</fs:itemid></item><item><title>wml_07 select标签 对option元素 多选 单选 以及获取value的值</title><link>http://www.17rumen.com/archives/188.html</link><content:encoded>&lt;p&gt;让用户 提供自己的信息， 除了上次视频提到的文本输入框外，还有别的标签也是比较方便的。&lt;/p&gt;
&lt;p&gt;例如 select 标签， 字面上意思就是 提供给用户选择 一些信息， 然后进行提交。&lt;/p&gt;
&lt;p&gt;这个就不需要用户填写了， 就像一些固定的数据但是需要获取用户的一些信息。&lt;/p&gt;
&lt;p&gt;下面就提供这样的一个例子：&lt;/p&gt;
&lt;p&gt;一个调查页面， 是希望用户选择自己喜欢的编程语言，&lt;/p&gt;
&lt;p&gt;提供给用户去 选择， Java , WML , C++ 等等， 你可以设置让用户只选择一项，或者多项。&lt;/p&gt;
&lt;p&gt;然后就打印出用户的选择内容。&lt;/p&gt;
&lt;p&gt;=================================&lt;/p&gt;
&lt;p&gt;讲了那么多了， 下面开始进行编写代码 来实现上面说的功能。&lt;/p&gt;
&lt;p&gt;用回上次的代码， 进行一些修改&lt;/p&gt;
&lt;p&gt;   &amp;lt;select&amp;gt;&lt;br /&gt;
    &amp;lt;option&amp;gt;Java&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;option&amp;gt;WML&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;option&amp;gt;C++&amp;lt;/option&amp;gt;&lt;br /&gt;
   &amp;lt;/select&amp;gt;&lt;/p&gt;
&lt;p&gt;加入上面代码， 来浏览一下&lt;/p&gt;
&lt;p&gt;现在可以看到 手机屏幕上 显示一个 下拉框。我们点击一下看看&lt;/p&gt;
&lt;p&gt;就会弹出一个 单选的 列表选项。选择后就会 返回到 原来界面&lt;/p&gt;
&lt;p&gt;现在 我们如何 像上次视频 那样， 选择后 在另外一个卡片上显示所选择&lt;/p&gt;
&lt;p&gt;的数据信息呢 ？&lt;/p&gt;
&lt;p&gt;其实和上次视频差不多的， 要获取选项框 内容， 当然要加入名字&lt;/p&gt;
&lt;p&gt;&amp;lt;select name=&quot;s_1&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;在 卡片2上 添加 &amp;lt;p&amp;gt; $(s_1) &amp;lt;/p&amp;gt; ，但是没有显示 任何信息&lt;/p&gt;
&lt;p&gt;这个 select 中option 要加入 value 值才可以的，&lt;/p&gt;
&lt;p&gt;现在我们添加一下&lt;/p&gt;
&lt;p&gt;   &amp;lt;select name=&quot;s_1&quot;&amp;gt;&lt;br /&gt;
    &amp;lt;option value=&quot;java&quot;&amp;gt;Java&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;option value=&quot;wml&quot;&amp;gt;WML&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;option value=&quot;c++&quot;&amp;gt;C++&amp;lt;/option&amp;gt;&lt;br /&gt;
   &amp;lt;/select&amp;gt;&lt;/p&gt;
&lt;p&gt;这样数据就可以获取 并且显示出来了&lt;/p&gt;
&lt;p&gt;--------------------&lt;/p&gt;
&lt;p&gt;这只是 单选， 多选呢 ？&lt;/p&gt;
&lt;p&gt;只需要在 select 加入 multiple=&quot;true&quot; 就代表多选了。&lt;/p&gt;
&lt;p&gt;是吧， 这样就多选了， 然后 再看看获取的值 是不是多个&lt;/p&gt;
&lt;p&gt;是的，而且用 ; 分开获取的数值&lt;/p&gt;
&lt;p&gt;multiple=&quot;false&quot; 如果用 false 也就是 单选。&lt;/p&gt;
&lt;p&gt;好了 。 视频就演示到这里， wml 还有其他标签的 通过现在的学习&lt;/p&gt;
&lt;p&gt;其他的标签 大家可以 上网查，或者看wml手册 应该就会使用了。&lt;/p&gt;
&lt;p&gt;下次视频 应该要介绍 wml script 了。。 呵呵， 谢谢观看 8&lt;/p&gt;
&lt;div id=&quot;mydownload_main&quot;&gt;
&lt;div id=&quot;mydownload_left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;视频下载地址：请使用WinRAR或者7-Zip进行解压&lt;/li&gt;
&lt;li&gt;点击进入下载页面：&lt;a href='http://ishare.iask.sina.com.cn/f/6363789.html' target='_blank'&gt;下载地址1&lt;/a&gt; | &lt;a href=&quot;http://www.boxcn.net/shared/c7nnt8ma3s&quot; target=&quot;_blank&quot;&gt;下载地址2&lt;/a&gt; | &lt;a href=&quot;http://cid-3c48ae7e8ca88362.skydrive.live.com/self.aspx?path=%2f.Public%2fWML%e5%bc%80%e5%8f%91%e6%89%8b%e6%9c%bawap%e7%bd%91%e7%ab%99%20%e8%a7%86%e9%a2%91%e6%95%99%e7%a8%8b%2fwml%5e_07%20select%e6%a0%87%e7%ad%be%20%e5%af%b9option%e5%85%83%e7%b4%a0%20%e5%a4%9a%e9%80%89%20%e5%8d%95%e9%80%89%20%e4%bb%a5%e5%8f%8a%e8%8e%b7%e5%8f%96value%e7%9a%84%e5%80%bc.7z&quot; target=&quot;_blank&quot;&gt;下载地址3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div id=&quot;mydownload_right&quot;&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/317868095/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/188.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868095/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868095/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.17rumen.com/archives/188.html/feed</wfw:commentRss><description>让用户 提供自己的信息， 除了上次视频提到的文本输入框外，还有别的标签也是比较方便的。
例如 select 标签， 字面上意思就是 提供给用户选择 一些信息， 然后进行提交。
这个就不需要用户填写了， 就像一些固定的数据但是需要获取用户的一些信息。
下面就提供这样的一个例子：
一个调查页面， 是希望用户选择自己喜欢的编程语言，
提供给用户去 选择， Java , WML , C++ 等等， 你可以设置让用户只选择一项，或者多项。
然后就打印出用户的选择内容。
=================================
讲了那么多了， 下面开始进行编写代码 来实现上面说的功能。
用回上次的代码， 进行一些修改
   &amp;#60;select&amp;#62;
    &amp;#60;option&amp;#62;Java&amp;#60;/option&amp;#62;
    &amp;#60;option&amp;#62;WML&amp;#60;/option&amp;#62;
    &amp;#60;option&amp;#62;C++&amp;#60;/option&amp;#62;
   &amp;#60;/select&amp;#62;
加入上面代码， 来浏览一下
现在可以看到 手机屏幕上 显示一个 下拉框。我们点击一下看看
就会弹出一个 单选的 列表选项。选择后就会 返回到 原来界面
现在 我们如何 像上次视频 那样， 选择后 在另外一个卡片上显示所选择
的数据信息呢 ？
其实和上次视频差不多的， 要获取选项框 内容， 当然要加入名字
&amp;#60;select name=&quot;s_1&quot;&amp;#62;
在 卡片2上 添加 &amp;#60;p&amp;#62; $(s_1) &amp;#60;/p&amp;#62; ，但是没有显示 任何信息
这个 select 中option 要加入 value 值才可以的，
现在我们添加一下
   &amp;#60;select name=&quot;s_1&quot;&amp;#62;
    &amp;#60;option value=&quot;java&quot;&amp;#62;Java&amp;#60;/option&amp;#62;
    &amp;#60;option value=&quot;wml&quot;&amp;#62;WML&amp;#60;/option&amp;#62;
    &amp;#60;option [...]&lt;img src=&quot;http://www1.feedsky.com/t1/317868095/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/188.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868095/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868095/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>J2ME|WML</category><category>wml</category><pubDate>Tue, 29 Dec 2009 19:42:07 +0800</pubDate><author>A-One</author><comments>http://www.17rumen.com/archives/188.html#comments</comments><guid isPermaLink="false">http://www.17rumen.com/?p=188</guid><dc:creator>A-One</dc:creator><fs:srclink>http://www.17rumen.com/archives/188.html</fs:srclink><fs:srcfeed>http://www.17rumen.com/feed</fs:srcfeed><fs:itemid>feedsky/17rumen/~7037509/317868095/5145437</fs:itemid></item><item><title>wml_06 用户登陆界面 a标签 input标签使用和获取值</title><link>http://www.17rumen.com/archives/187.html</link><content:encoded>&lt;p&gt;上几次视频都是一些显示方面数据， 并没有涉及到用户输入的， 都是输出给用户查看的数据。&lt;/p&gt;
&lt;p&gt;一个网站也许只有查看数据功能就足够了， 但是更多都有 提供用户输入 然后进行操作。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4039/4224335950_6ddbffb6a3.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;例如： 网站数据过多， 都会提供一个常用的 搜索 功能，&lt;/p&gt;
&lt;p&gt;这就要用户输入 要搜索的信息， 然后进行查找。&lt;/p&gt;
&lt;p&gt;wml 也有这样的一个标签 input ， 就像 html 一样， 提供一个输入框。&lt;/p&gt;
&lt;p&gt;先看看 input 这个标签在 手机上显示的样子吧， 呵呵。&lt;/p&gt;
&lt;p&gt;我修改 上次视频的代码， 不重新写了。&lt;/p&gt;
&lt;p&gt;============================================&lt;/p&gt;
&lt;p&gt;例如现在假设 要做一个 用户登陆的界面&lt;/p&gt;
&lt;p&gt; &amp;lt;card id=&quot;c1&quot; title=&quot;Login!&quot;&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;&lt;br /&gt;
   Name:&amp;lt;input name=&quot;userName&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;  &amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;/card&amp;gt;&lt;/p&gt;
&lt;p&gt;然后用手机模拟器 进行浏览。&lt;/p&gt;
&lt;p&gt;就是这样的一个登录框， 我把名字改短了， 好看一些。&lt;/p&gt;
&lt;p&gt;奇怪， 不能输入东西， 我关闭一下 模拟器，再打开看看。&lt;/p&gt;
&lt;p&gt;先点击模拟器 向下按钮。看到， 文本框边框变大了，说明焦点在文本框上&lt;/p&gt;
&lt;p&gt;然后再点击中间的那个 按钮。  就可以看到 文本框中间 有一个竖线。&lt;/p&gt;
&lt;p&gt;说明现在可以输入东西了。用键盘就可以输入东西。&lt;/p&gt;
&lt;p&gt;====================================================&lt;/p&gt;
&lt;p&gt;好现在 文本框有了， 那么 就是还差一个 登陆按钮。&lt;/p&gt;
&lt;p&gt;在 wml 中， 不像 html 那样有提供按钮的， 基本都是一些链接，&lt;/p&gt;
&lt;p&gt;例如&amp;lt;a&amp;gt; 标签，在 wml 语言中是支持的。&lt;/p&gt;
&lt;p&gt;下面来使用一下 这个标签，做一个登陆按钮&lt;/p&gt;
&lt;p&gt;   &amp;lt;a href=&quot;#c2&quot;&amp;gt;&lt;br /&gt;
    Login&lt;br /&gt;
   &amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;p&gt;现在这样， 当点击 Login 就会 跳转到 card2 去。&lt;/p&gt;
&lt;p&gt;同样要 点击 手机上面的 向下按钮 才会 选择到 Login 去的。&lt;/p&gt;
&lt;p&gt;看到了吧， 这样就可以 点击 中间的确定 按钮了。点击后就显示另外一个card的信息了。&lt;/p&gt;
&lt;p&gt;================================&lt;/p&gt;
&lt;p&gt;现在我们想实现这样的一个功能， 当用户输入用户名后，&lt;/p&gt;
&lt;p&gt;点击 Login 后， 在另外一个 卡片card上 显示 我们刚才 的用户信息&lt;/p&gt;
&lt;p&gt;信息内容 ： Welcome + 用户名！&lt;/p&gt;
&lt;p&gt;这样就要设置到 获取 用户值 的问题了，在 wml 中 相当方便&lt;/p&gt;
&lt;p&gt;看我演示吧。&lt;/p&gt;
&lt;p&gt;&amp;lt;p&amp;gt;Welcome , $(userName)&amp;lt;/p&amp;gt;&lt;/p&gt;
&lt;p&gt;只需使用 $(input的名字) 这样就可以获取 刚才输入的值了。&lt;/p&gt;
&lt;p&gt;下面浏览一下 效果。 就是这样的效果了， 你输入的信息 会在另外&lt;/p&gt;
&lt;p&gt;一张卡片上 被显示出来。&lt;/p&gt;
&lt;p&gt;===============================&lt;/p&gt;
&lt;p&gt;下面说一下 刚才的 input 标签， 如果你想做成 密码框的话&lt;/p&gt;
&lt;p&gt;就要加入 type=&quot;password&quot; 了&lt;/p&gt;
&lt;p&gt;也就是&amp;lt;input type=&quot;password&quot; name=&quot;password&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;这样你就会 看到 输入的东西 用 &quot;*&quot; 显示出来&lt;/p&gt;
&lt;p&gt;input 标签还有很多属性，例如限制文本框的长度 size&lt;/p&gt;
&lt;p&gt;还有 format ， 其中 format 中有很多可以限制用户 输入的，&lt;/p&gt;
&lt;p&gt;例如只可以让 用户输入 大写，小写， 数字 等等。&lt;/p&gt;
&lt;p&gt;这里我就不多说了， 有兴趣的朋友 可以网上查找一下 资料 或者 看看文档&lt;/p&gt;
&lt;p&gt;好了， 我演示就到这里， 这个只是一个简单的 登陆，&lt;/p&gt;
&lt;p&gt;还有就是在 本地显示 输入的信息， 真正的交互数据&lt;/p&gt;
&lt;p&gt;应该发送到 后台， 然后经过后台和数据库里面的数据 进行比较，要验证&lt;/p&gt;
&lt;p&gt;用户登陆信息， 然后再返回一个信息 给手机。。再显示出来&lt;/p&gt;
&lt;p&gt;这个我们在以后会演示的。。。谢谢大家观看 8&lt;/p&gt;
&lt;div id=&quot;mydownload_main&quot;&gt;
&lt;div id=&quot;mydownload_left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;视频下载地址：请使用WinRAR或者7-Zip进行解压&lt;/li&gt;
&lt;li&gt;点击进入下载页面：&lt;a href='http://ishare.iask.sina.com.cn/f/6363769.html' target='_blank'&gt;下载地址1&lt;/a&gt; | &lt;a href=&quot;http://www.boxcn.net/shared/yprkz965em&quot; target=&quot;_blank&quot;&gt;下载地址2&lt;/a&gt; | &lt;a href=&quot;http://cid-3c48ae7e8ca88362.skydrive.live.com/self.aspx?path=%2f.Public%2fWML%e5%bc%80%e5%8f%91%e6%89%8b%e6%9c%bawap%e7%bd%91%e7%ab%99%20%e8%a7%86%e9%a2%91%e6%95%99%e7%a8%8b%2fwml%5e_06%20%e7%94%a8%e6%88%b7%e7%99%bb%e9%99%86%e7%95%8c%e9%9d%a2%20input%e6%a0%87%e7%ad%be%e4%bd%bf%e7%94%a8%e5%92%8c%e8%8e%b7%e5%8f%96%e5%80%bc.7z&quot; target=&quot;_blank&quot;&gt;下载地址3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div id=&quot;mydownload_right&quot;&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/317868096/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/187.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868096/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868096/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.17rumen.com/archives/187.html/feed</wfw:commentRss><description>上几次视频都是一些显示方面数据， 并没有涉及到用户输入的， 都是输出给用户查看的数据。
一个网站也许只有查看数据功能就足够了， 但是更多都有 提供用户输入 然后进行操作。

例如： 网站数据过多， 都会提供一个常用的 搜索 功能，
这就要用户输入 要搜索的信息， 然后进行查找。
wml 也有这样的一个标签 input ， 就像 html 一样， 提供一个输入框。
先看看 input 这个标签在 手机上显示的样子吧， 呵呵。
我修改 上次视频的代码， 不重新写了。
============================================
例如现在假设 要做一个 用户登陆的界面
 &amp;#60;card id=&quot;c1&quot; title=&quot;Login!&quot;&amp;#62;
  &amp;#60;p&amp;#62;
   Name:&amp;#60;input name=&quot;userName&quot; /&amp;#62;
  &amp;#60;/p&amp;#62;
 &amp;#60;/card&amp;#62;
然后用手机模拟器 进行浏览。
就是这样的一个登录框， 我把名字改短了， 好看一些。
奇怪， 不能输入东西， 我关闭一下 模拟器，再打开看看。
先点击模拟器 向下按钮。看到， 文本框边框变大了，说明焦点在文本框上
然后再点击中间的那个 按钮。  就可以看到 文本框中间 有一个竖线。
说明现在可以输入东西了。用键盘就可以输入东西。
====================================================
好现在 文本框有了， 那么 就是还差一个 登陆按钮。
在 wml 中， 不像 html 那样有提供按钮的， 基本都是一些链接，
例如&amp;#60;a&amp;#62; 标签，在 wml [...]&lt;img src=&quot;http://www1.feedsky.com/t1/317868096/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/187.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868096/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868096/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>J2ME|WML</category><category>wml</category><pubDate>Tue, 29 Dec 2009 11:34:51 +0800</pubDate><author>A-One</author><comments>http://www.17rumen.com/archives/187.html#comments</comments><guid isPermaLink="false">http://www.17rumen.com/?p=187</guid><dc:creator>A-One</dc:creator><fs:srclink>http://www.17rumen.com/archives/187.html</fs:srclink><fs:srcfeed>http://www.17rumen.com/feed</fs:srcfeed><fs:itemid>feedsky/17rumen/~7037509/317868096/5145437</fs:itemid></item><item><title>wml_05 ontimer,onenterforward事件使用和标签格式化文本</title><link>http://www.17rumen.com/archives/185.html</link><content:encoded>&lt;p&gt;一个好的 wml 页面， 需要一些人性化的东西， 才能带给用户最好的体验，&lt;/p&gt;
&lt;p&gt;例如一些自动化操作， 还有一些友好的界面风格， 文本内容大小适中，看上去重点突出，等等。&lt;/p&gt;
&lt;p&gt;那么今次这个视频 也就按照上面的思路 来学习一下 有关的知识。&lt;/p&gt;
&lt;p&gt;===========================&lt;/p&gt;
&lt;p&gt;首先要实现一些自动化的显示， 也就是一些动作事件，不用用户去点击，&lt;/p&gt;
&lt;p&gt;看看我给大家介绍的 第一个 事件 ontimer&lt;/p&gt;
&lt;p&gt;从字面上意思 跟 时间有关系， 没错，这个事件 就是当你设置好相应的时间，就会自动&lt;/p&gt;
&lt;p&gt;执行一下动作。&lt;/p&gt;
&lt;p&gt;下面我 根据上次视频 的代码文件 进行修改演示&lt;/p&gt;
&lt;p&gt;这是我们上次的代码文件， 去掉一些多余部分。&lt;/p&gt;
&lt;p&gt;看上去就是 现在这样。&lt;/p&gt;
&lt;p&gt;&amp;lt;wml&amp;gt; &lt;br /&gt;
 &amp;lt;card id=&quot;c1&quot; title=&quot;c1 card&quot;&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Hello World&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;/card&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;lt;card id=&quot;c2&quot; title=&quot;c2 card&quot;&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Hi , c2&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;/card&amp;gt;&lt;br /&gt;
&amp;lt;/wml&amp;gt;&lt;/p&gt;
&lt;p&gt;为它 加入 ontimer 事件&lt;/p&gt;
&lt;p&gt;&amp;lt;card id=&quot;c1&quot; title=&quot;c1 card&quot; ontimer=&quot;#c2&quot;&amp;gt;&lt;br /&gt;
 &amp;lt;timer value=&quot;30&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;这样表示 ， 3秒后 进入 c2 的卡片&lt;/p&gt;
&lt;p&gt;这种事件 最适合就是 开始显示一个 欢迎界面，然后进入到具体的页面。&lt;/p&gt;
&lt;p&gt;下面进行浏览一下。看到效果了吧，就是这样停顿一下&lt;/p&gt;
&lt;p&gt;======================&lt;/p&gt;
&lt;p&gt;另外一个事件 就是 跳转页面事件， onenterforward 这个事件名字有点长&lt;/p&gt;
&lt;p&gt;你可以分解成这样 on enter forward 也就是 当你进入页面就开始跳转到指定的页面&lt;/p&gt;
&lt;p&gt;下面 使用 上次的 wml_04.wml 文件和 第一个 HelloWorld.wml 2个文件进行演示。&lt;/p&gt;
&lt;p&gt;我修改 HelloWorld.wml 文件内容 如下：&lt;/p&gt;
&lt;p&gt;&amp;lt;wml&amp;gt; &lt;br /&gt;
 &amp;lt;card onenterforward=&quot;wml_04.wml&quot;&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Hello World&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;/card&amp;gt;&lt;br /&gt;
&amp;lt;/wml&amp;gt;&lt;/p&gt;
&lt;p&gt;由于加入了事件，所以 不会显示  Hello World 了， 而是执行 wml_04.wml 文件&lt;/p&gt;
&lt;p&gt;onenterforward=&quot;wml_04.wml&quot;  这里要注意的就是 文件路径问题，&lt;/p&gt;
&lt;p&gt;现在我2个文件放在一起 所以 没有写 路径上去。&lt;/p&gt;
&lt;p&gt;-------------&lt;/p&gt;
&lt;p&gt;其实还有一些事件的， 例如 : onenterbackward事件 ， 这个应该和上面我们演示的&lt;/p&gt;
&lt;p&gt;onenterforward 差不多的，这些需要自己去实践了，这里不演示了。&lt;/p&gt;
&lt;p&gt;=========================&lt;/p&gt;
&lt;p&gt;只有事件 是不够的， 还需要一些 格式化文本的东西&lt;/p&gt;
&lt;p&gt;也就是 字体大小 ，颜色， 斜体，等等。&lt;/p&gt;
&lt;p&gt;下面简单介绍一下吧。&lt;/p&gt;
&lt;p&gt;  &amp;lt;p&amp;gt;&lt;/p&gt;
&lt;p&gt;   &amp;lt;b&amp;gt;Hello World&amp;lt;/b&amp;gt; &amp;lt;br/&amp;gt;&lt;/p&gt;
&lt;p&gt;   &amp;lt;u&amp;gt; hi&amp;lt;/u&amp;gt; &amp;lt;br/&amp;gt;&lt;/p&gt;
&lt;p&gt;   &amp;lt;i&amp;gt;www.17rumen.com&amp;lt;/i&amp;gt;&lt;/p&gt;
&lt;p&gt;  &amp;lt;/p&amp;gt;&lt;/p&gt;
&lt;p&gt;还有很多，不一一介绍了， 当然 有一些标签 是和 浏览器有关系的，&lt;/p&gt;
&lt;p&gt;在一些浏览器中不支持 某些标签的，这是要注意的。&lt;br /&gt;
好了，视频就到这里，下次会演示一下和用户交互的一些操作， 谢谢观看！&lt;/p&gt;
&lt;div id=&quot;mydownload_main&quot;&gt;
&lt;div id=&quot;mydownload_left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;视频下载地址：请使用WinRAR或者7-Zip进行解压&lt;/li&gt;
&lt;li&gt;点击进入下载页面：&lt;a href='http://ishare.iask.sina.com.cn/f/6349459.html' target='_blank'&gt;下载地址1&lt;/a&gt; | &lt;a href=&quot;http://www.boxcn.net/shared/6m56rzuvs1&quot; target=&quot;_blank&quot;&gt;下载地址2&lt;/a&gt; | &lt;a href=&quot;http://cid-3c48ae7e8ca88362.skydrive.live.com/self.aspx?path=%2f.Public%2fWML%e5%bc%80%e5%8f%91%e6%89%8b%e6%9c%bawap%e7%bd%91%e7%ab%99%20%e8%a7%86%e9%a2%91%e6%95%99%e7%a8%8b%2fwml%5e_05%20ontimer%5eJonenterforward%e4%ba%8b%e4%bb%b6%e4%bd%bf%e7%94%a8%e5%92%8c%e6%a0%87%e7%ad%be%e6%a0%bc%e5%bc%8f%e5%8c%96%e6%96%87%e6%9c%ac%20%e8%a7%86%e9%a2%91%e6%bc%94%e7%a4%ba.7z&quot; target=&quot;_blank&quot;&gt;下载地址3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div id=&quot;mydownload_right&quot;&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/317868097/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/185.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868097/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868097/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.17rumen.com/archives/185.html/feed</wfw:commentRss><description>一个好的 wml 页面， 需要一些人性化的东西， 才能带给用户最好的体验，
例如一些自动化操作， 还有一些友好的界面风格， 文本内容大小适中，看上去重点突出，等等。
那么今次这个视频 也就按照上面的思路 来学习一下 有关的知识。
===========================
首先要实现一些自动化的显示， 也就是一些动作事件，不用用户去点击，
看看我给大家介绍的 第一个 事件 ontimer
从字面上意思 跟 时间有关系， 没错，这个事件 就是当你设置好相应的时间，就会自动
执行一下动作。
下面我 根据上次视频 的代码文件 进行修改演示
这是我们上次的代码文件， 去掉一些多余部分。
看上去就是 现在这样。
&amp;#60;wml&amp;#62; 
 &amp;#60;card id=&quot;c1&quot; title=&quot;c1 card&quot;&amp;#62;
  &amp;#60;p&amp;#62;Hello World&amp;#60;/p&amp;#62;
 &amp;#60;/card&amp;#62;
 &amp;#60;card id=&quot;c2&quot; title=&quot;c2 card&quot;&amp;#62;
  &amp;#60;p&amp;#62;Hi , c2&amp;#60;/p&amp;#62;
 &amp;#60;/card&amp;#62;
&amp;#60;/wml&amp;#62;
为它 加入 ontimer 事件
&amp;#60;card id=&quot;c1&quot; title=&quot;c1 card&quot; ontimer=&quot;#c2&quot;&amp;#62;
 &amp;#60;timer value=&quot;30&quot; /&amp;#62;
这样表示 ， 3秒后 进入 c2 的卡片
这种事件 最适合就是 开始显示一个 欢迎界面，然后进入到具体的页面。
下面进行浏览一下。看到效果了吧，就是这样停顿一下
======================
另外一个事件 就是 跳转页面事件， onenterforward 这个事件名字有点长
你可以分解成这样 on enter [...]&lt;img src=&quot;http://www1.feedsky.com/t1/317868097/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/185.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868097/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868097/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>J2ME|WML</category><category>wml</category><pubDate>Mon, 28 Dec 2009 12:57:26 +0800</pubDate><author>A-One</author><comments>http://www.17rumen.com/archives/185.html#comments</comments><guid isPermaLink="false">http://www.17rumen.com/?p=185</guid><dc:creator>A-One</dc:creator><fs:srclink>http://www.17rumen.com/archives/185.html</fs:srclink><fs:srcfeed>http://www.17rumen.com/feed</fs:srcfeed><fs:itemid>feedsky/17rumen/~7037509/317868097/5145437</fs:itemid></item><item><title>wml_04 多卡片card管理和导航(do go prev标签的使用)</title><link>http://www.17rumen.com/archives/183.html</link><content:encoded>&lt;p&gt;在上次视频中提到 wml 页面 有多个卡片组成的， 这也是区别与web网页（html或者htm页面）之处。&lt;/p&gt;
&lt;p&gt;为什么这样说呢 ？ 今次视频就可以演示一下了， 先运行上次的例子。&lt;/p&gt;
&lt;p&gt;这是我们上次写的第一个页面， 那么大家想一下，如果我现在 想在手机模拟器上&lt;/p&gt;
&lt;p&gt;再显示其他东西呢， 要另外做一个页面吗 ？ 这是否定的。&lt;/p&gt;
&lt;p&gt;这是上次的代码&lt;/p&gt;
&lt;p&gt;&amp;lt;wml&amp;gt; &lt;/p&gt;
&lt;p&gt; &amp;lt;card&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Hello World&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;/card&amp;gt;&lt;br /&gt;
&amp;lt;/wml&amp;gt;&lt;/p&gt;
&lt;p&gt;我们如果想在 屏幕上显示其他东西，不需要 再写多一个 .wml 文件。&lt;/p&gt;
&lt;p&gt;只要写多一个 &amp;lt;card&amp;gt; &amp;lt;/card&amp;gt; 标签组就可以了。&lt;/p&gt;
&lt;p&gt;好了，现在马上 演示一下&lt;/p&gt;
&lt;p&gt;因为现在出现多个 &amp;lt;card&amp;gt;&amp;lt;/card&amp;gt; 组，所以我们为了区别和以后好操作，加入一个属性id。&lt;/p&gt;
&lt;p&gt; &amp;lt;card id=&quot;c2&quot;&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Hi , c2&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;/card&amp;gt;&lt;br /&gt;
这是加入的代码， 用刷新一下 模拟器&lt;/p&gt;
&lt;p&gt;没什么效果出来， 原来你想显示 c2 的内容， 需要一个按钮，让用手机的人 去点击&lt;br /&gt;
操作才可以 把 c2 的内容显示出来的。&lt;/p&gt;
&lt;p&gt;这个操作应该放在 第一张卡片上，因为这是最先显示的。&lt;/p&gt;
&lt;p&gt;  &amp;lt;do type=&quot;accept&quot; label=&quot;Next&quot;&amp;gt;&lt;br /&gt;
   &amp;lt;go href=&quot;#c2&quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/do&amp;gt;&lt;br /&gt;
解析一下上面代码的意思吧，do 可以看着是一个 动作吧， 就是用户操作的内容&lt;/p&gt;
&lt;p&gt;accept 你可以理解成 后操作， label=&quot;Next&quot; 显示给用户操作的信息， 也就是用户&lt;/p&gt;
&lt;p&gt;会看到 Next 这个选项， 当用户点击了 Next 就会 执行 &amp;lt;go href=&quot;#c2&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;这不难理解， 就会 跳转到 c2 显示 &amp;lt;p&amp;gt;Hi , c2&amp;lt;/p&amp;gt; 内容了，&lt;/p&gt;
&lt;p&gt;这是我们的分析， 现在 刷新一下 手机模拟器 看看是否真的这样&lt;/p&gt;
&lt;p&gt;========================&lt;/p&gt;
&lt;p&gt;好，现在还是显示 第一张卡片 的 内容，&lt;/p&gt;
&lt;p&gt;这个时候 你要点击 手机上的一个按钮 Options&lt;/p&gt;
&lt;p&gt;看到一个 Next 选项了吧， 我们选择它，然后 点击 Select&lt;/p&gt;
&lt;p&gt;然后就看到 Hi,c2 的内容了&lt;/p&gt;
&lt;p&gt;点击 Back 就回到第一个页面了&lt;/p&gt;
&lt;p&gt;===============================&lt;/p&gt;
&lt;p&gt;accept 刚才说错了， 应该理解成 先后显示， 也就是显示下一张卡片&lt;/p&gt;
&lt;p&gt;因为 do 标签还有 prev 这个属性， 是向前的， 可以理解成 后退&lt;/p&gt;
&lt;p&gt;可以加入到 第二章卡片 ， 后退就是变成 第一张了。&lt;/p&gt;
&lt;p&gt;可能是因为手机自带了 Back 这个功能按钮，所以添加上去 没有什么效果出来。&lt;/p&gt;
&lt;p&gt;为了好看一点，在card 标签中， 可以加入 title 这个属性， 上次视频&lt;/p&gt;
&lt;p&gt;也介绍过，这里再用一下吧。&lt;/p&gt;
&lt;p&gt;====================&lt;/p&gt;
&lt;p&gt;最后做一个 小总结吧，&lt;/p&gt;
&lt;p&gt;既然有了 card 那么， 我们做一个 wap网站 只需要一个 wml文件就可以了 ？&lt;/p&gt;
&lt;p&gt;按照我自己的理解， 一个页面不建议太多 card ， 太多的card，导航也会相当复杂。&lt;/p&gt;
&lt;p&gt; 转来转去的操作，会让用户觉得反感。&lt;/p&gt;
&lt;p&gt;另外就是 如果只用一个 wml 文件，这样也会使这个文件比较大。&lt;/p&gt;
&lt;p&gt;还有代码太多 不利于维护。&lt;/p&gt;
&lt;p&gt;下次 会介绍多个 .wml 文件之间操作， 还有一些 事件。。谢谢观看&lt;/p&gt;
&lt;div id=&quot;mydownload_main&quot;&gt;
&lt;div id=&quot;mydownload_left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;视频下载地址：请使用WinRAR或者7-Zip进行解压&lt;/li&gt;
&lt;li&gt;点击进入下载页面：&lt;a href='http://ishare.iask.sina.com.cn/f/6348304.html' target='_blank'&gt;下载地址1&lt;/a&gt; | &lt;a href=&quot;http://www.boxcn.net/shared/u8v55tnv4j&quot; target=&quot;_blank&quot;&gt;下载地址2&lt;/a&gt; | &lt;a href=&quot;http://cid-3c48ae7e8ca88362.skydrive.live.com/self.aspx?path=%2f.Public%2fWML%e5%bc%80%e5%8f%91%e6%89%8b%e6%9c%bawap%e7%bd%91%e7%ab%99%20%e8%a7%86%e9%a2%91%e6%95%99%e7%a8%8b%2fwml%5e_04%20%e5%a4%9a%e5%8d%a1%e7%89%87card%e7%ae%a1%e7%90%86%e5%92%8c%e5%af%bc%e8%88%aa%5e5do%20go%20prev%e6%a0%87%e7%ad%be%e7%9a%84%e4%bd%bf%e7%94%a8%5e6%20.7z&quot; target=&quot;_blank&quot;&gt;下载地址3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div id=&quot;mydownload_right&quot;&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/317868098/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/183.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868098/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868098/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.17rumen.com/archives/183.html/feed</wfw:commentRss><description>在上次视频中提到 wml 页面 有多个卡片组成的， 这也是区别与web网页（html或者htm页面）之处。
为什么这样说呢 ？ 今次视频就可以演示一下了， 先运行上次的例子。
这是我们上次写的第一个页面， 那么大家想一下，如果我现在 想在手机模拟器上
再显示其他东西呢， 要另外做一个页面吗 ？ 这是否定的。
这是上次的代码
&amp;#60;wml&amp;#62; 
 &amp;#60;card&amp;#62;
  &amp;#60;p&amp;#62;Hello World&amp;#60;/p&amp;#62;
 &amp;#60;/card&amp;#62;
&amp;#60;/wml&amp;#62;
我们如果想在 屏幕上显示其他东西，不需要 再写多一个 .wml 文件。
只要写多一个 &amp;#60;card&amp;#62; &amp;#60;/card&amp;#62; 标签组就可以了。
好了，现在马上 演示一下
因为现在出现多个 &amp;#60;card&amp;#62;&amp;#60;/card&amp;#62; 组，所以我们为了区别和以后好操作，加入一个属性id。
 &amp;#60;card id=&quot;c2&quot;&amp;#62;
  &amp;#60;p&amp;#62;Hi , c2&amp;#60;/p&amp;#62;
 &amp;#60;/card&amp;#62;
这是加入的代码， 用刷新一下 模拟器
没什么效果出来， 原来你想显示 c2 的内容， 需要一个按钮，让用手机的人 去点击
操作才可以 把 c2 的内容显示出来的。
这个操作应该放在 第一张卡片上，因为这是最先显示的。
  &amp;#60;do type=&quot;accept&quot; label=&quot;Next&quot;&amp;#62;
   &amp;#60;go href=&quot;#c2&quot; /&amp;#62;
  &amp;#60;/do&amp;#62;
解析一下上面代码的意思吧，do 可以看着是一个 动作吧， 就是用户操作的内容
accept 你可以理解成 后操作， label=&quot;Next&quot; 显示给用户操作的信息， 也就是用户
会看到 Next 这个选项， 当用户点击了 Next 就会 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/317868098/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/183.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868098/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868098/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>J2ME|WML</category><category>wml</category><pubDate>Mon, 28 Dec 2009 11:00:23 +0800</pubDate><author>A-One</author><comments>http://www.17rumen.com/archives/183.html#comments</comments><guid isPermaLink="false">http://www.17rumen.com/?p=183</guid><dc:creator>A-One</dc:creator><fs:srclink>http://www.17rumen.com/archives/183.html</fs:srclink><fs:srcfeed>http://www.17rumen.com/feed</fs:srcfeed><fs:itemid>feedsky/17rumen/~7037509/317868098/5145437</fs:itemid></item><item><title>使用Mysql全文搜索Full-Text (fulltext和 match...against)</title><link>http://www.17rumen.com/archives/181.html</link><content:encoded>&lt;p&gt;一个SELECT查询中的LIKE语句来执行这种查询，尽管这种方法可行，&lt;/p&gt;
&lt;p&gt;但对于全文查找而言，这是一种效率极端低下的方法，尤其在处理大量数据的时候。&lt;/p&gt;
&lt;p&gt;-------------------&lt;br /&gt;
上面这句话 我是在网上看到的， 说得挺有道理的， mysql 本身提供了一种叫做全文搜索的技术吧，&lt;/p&gt;
&lt;p&gt;不过这好像从后来的版本才有的， 比较旧的版本不支持，不过那是很早期的版本了，&lt;/p&gt;
&lt;p&gt;现在大家使用的版本 应该都支持的。我现在使用 mysql6.0.4 来演示&lt;/p&gt;
&lt;p&gt;全文搜索 比起 索引 我觉得更加全面， 索引只对某一个字段，然后在查询时候使用 like 配合。&lt;/p&gt;
&lt;p&gt;全文搜索它可以设置多个字段进行搜索，可以说是比起 select .... like 高级吧。&lt;/p&gt;
&lt;p&gt;好了， 既然 全文搜索 有这样的优点，下面我们来看看 是否真的如此。&lt;/p&gt;
&lt;p&gt;下面提供的测试例子，是 mysql 手册上面的一个例子&lt;/p&gt;
&lt;p&gt;CREATE TABLE articles (&lt;/p&gt;
&lt;p&gt;   id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,&lt;/p&gt;
&lt;p&gt;   title VARCHAR(200),&lt;/p&gt;
&lt;p&gt;    body TEXT,&lt;/p&gt;
&lt;p&gt;     FULLTEXT (title,body)&lt;/p&gt;
&lt;p&gt;   );&lt;/p&gt;
&lt;p&gt;上面这是创建表的 mysql 语句， 其中最后一句  FULLTEXT (title,body)&lt;/p&gt;
&lt;p&gt;就是为 title 和 body 创建一个 全文搜索，也就是 以后 方便搜索 标题 和&lt;/p&gt;
&lt;p&gt;标题正文的内容。复制语句上去 就成功创建一张表了。&lt;br /&gt;
查看一下 全文搜索 是否被创建， 下面语句作用是：查看表的 主键， 索引， 全文搜索&lt;/p&gt;
&lt;p&gt;show indexes from 表名&lt;/p&gt;
&lt;p&gt;mysql&amp;gt; show indexes from articles;&lt;br /&gt;
+----------+------------+----------+--------------+-------------+&lt;br /&gt;
| Table    | Non_unique | Key_name | Seq_in_index | Column_name |&lt;br /&gt;
+----------+------------+----------+--------------+-------------+&lt;br /&gt;
| articles |          0 | PRIMARY  |            1 | id          |&lt;br /&gt;
| articles |          1 | title    |            1 | title       |&lt;br /&gt;
| articles |          1 | title    |            2 | body        |&lt;br /&gt;
+----------+------------+----------+--------------+-------------+&lt;br /&gt;
3 rows in set (0.01 sec)&lt;/p&gt;
&lt;p&gt;可以看到 成功创建了， Key_name名字叫做 title ， 它的字段列名Column_name是 title 和 body&lt;/p&gt;
&lt;p&gt;=================&lt;/p&gt;
&lt;p&gt;下面为 表 添加数据内容， 好让我们进行测试。&lt;/p&gt;
&lt;p&gt;INSERT INTO articles (title,body) VALUES&lt;/p&gt;
&lt;p&gt;    ('MySQL Tutorial','DBMS stands for DataBase ...'),&lt;/p&gt;
&lt;p&gt;    ('How To Use MySQL Well','After you went through a ...'),&lt;/p&gt;
&lt;p&gt;    ('Optimizing MySQL','In this tutorial we will show ...'),&lt;/p&gt;
&lt;p&gt;    ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),&lt;/p&gt;
&lt;p&gt;    ('MySQL vs. YourSQL','In the following database comparison ...'),&lt;/p&gt;
&lt;p&gt;    ('MySQL Security','When configured properly, MySQL ...');&lt;/p&gt;
&lt;p&gt;mysql&amp;gt; select * from articles;&lt;br /&gt;
+----+-----------------------+------------------------------------------+&lt;br /&gt;
| id | title                 | body                                     |&lt;br /&gt;
+----+-----------------------+------------------------------------------+&lt;br /&gt;
|  1 | MySQL Tutorial        | DBMS stands for DataBase ...             |&lt;br /&gt;
|  2 | How To Use MySQL Well | After you went through a ...             |&lt;br /&gt;
|  3 | Optimizing MySQL      | In this tutorial we will show ...        |&lt;br /&gt;
|  4 | 1001 MySQL Tricks     | 1. Never run mysqld as root. 2. ...      |&lt;br /&gt;
|  5 | MySQL vs. YourSQL     | In the following database comparison ... |&lt;br /&gt;
|  6 | MySQL Security        | When configured properly, MySQL ...      |&lt;br /&gt;
+----+-----------------------+------------------------------------------+&lt;br /&gt;
6 rows in set (0.00 sec)&lt;/p&gt;
&lt;p&gt;添加好数据库， 下面我们就使用 全文搜索 提供的 查询语句 进行测试。&lt;/p&gt;
&lt;p&gt;=================================================&lt;/p&gt;
&lt;p&gt;使用语句的模版如下：&lt;/p&gt;
&lt;p&gt;SELECT 表字段 FROM 表名 WHERE MATCH (全文搜索表字段) AGAINST ('搜索字符串');&lt;/p&gt;
&lt;p&gt;下面 搜索 title 和 body 包含 database 这个字符串&lt;/p&gt;
&lt;p&gt; mysql&amp;gt; SELECT * FROM articles&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt;     WHERE MATCH (title,body) AGAINST ('database');&lt;br /&gt;
+----+-------------------+------------------------------------------+&lt;br /&gt;
| id | title             | body                                     |&lt;br /&gt;
+----+-------------------+------------------------------------------+&lt;br /&gt;
|  5 | MySQL vs. YourSQL | In the following database comparison ... |&lt;br /&gt;
|  1 | MySQL Tutorial    | DBMS stands for DataBase ...             |&lt;br /&gt;
+----+-------------------+------------------------------------------+&lt;br /&gt;
2 rows in set (0.00 sec)&lt;/p&gt;
&lt;p&gt;MATCH 相当于要找的列， 而  AGAINST 就是要找的内容。&lt;/p&gt;
&lt;p&gt;比起 like 有点不一样&lt;/p&gt;
&lt;p&gt;而且 match ... against 还提供很多 操作， 对数据 进一步过滤，&lt;/p&gt;
&lt;p&gt;一般可以作为 比较精确的搜索，&lt;/p&gt;
&lt;p&gt;例如下面的这个例子： 搜索title和body中包含 MySQL ，但是不能有 YourSQL 的结果。&lt;/p&gt;
&lt;p&gt; SELECT * FROM articles WHERE MATCH (title,body)&lt;/p&gt;
&lt;p&gt;    AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE);&lt;/p&gt;
&lt;p&gt;------------------&lt;/p&gt;
&lt;p&gt;|  5 | MySQL vs. YourSQL     | In the following database comparison ... |&lt;/p&gt;
&lt;p&gt;你会发现 可以看到 这个结果被过滤掉了&lt;/p&gt;
&lt;p&gt;fulltext 还提供了 更加多的逻辑搜索，也就是一些 模糊搜索 等等，要求更加高的&lt;br /&gt;
匹配字符搜索， 大家可以上 mysql 官方网站查看。&lt;/p&gt;
&lt;p&gt;=============================================================&lt;/p&gt;
&lt;p&gt;上面 建立全文搜索 是在 建立表的同时建立的， 如果你已经建好表了， 但是想加入&lt;br /&gt;
这个功能的话， 可以使用下面语句&lt;/p&gt;
&lt;p&gt;mysql&amp;gt; alter table articles add fulltext index(title,body);&lt;/p&gt;
&lt;p&gt;--------------------&lt;/p&gt;
&lt;p&gt;为了演示，我先把刚才的删除掉&lt;/p&gt;
&lt;p&gt;mysql&amp;gt; drop index title on articles;&lt;/p&gt;
&lt;p&gt;再查看一下， 已经被删除了。&lt;br /&gt;
mysql&amp;gt; show indexes from articles;&lt;/p&gt;
&lt;p&gt;再为表添加 fulltext 上去&lt;br /&gt;
mysql&amp;gt; alter table articles add fulltext index(title,body);&lt;/p&gt;
&lt;p&gt;看到了吧， 这样就通过修改现有的表来添加全文搜索功能， 希望这个教程可以帮你&lt;br /&gt;
日后使用到这个搜索功能。&lt;/p&gt;
&lt;div id=&quot;mydownload_main&quot;&gt;
&lt;div id=&quot;mydownload_left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;视频下载地址：请使用WinRAR或者7-Zip进行解压&lt;/li&gt;
&lt;li&gt;点击进入下载页面：&lt;a href='http://ishare.iask.sina.com.cn/f/6315581.html' target='_blank'&gt;下载地址1&lt;/a&gt; | &lt;a href=&quot;http://www.boxcn.net/shared/7755mxda91&quot; target=&quot;_blank&quot;&gt;下载地址2&lt;/a&gt; | &lt;a href=&quot;http://cid-3c48ae7e8ca88362.skydrive.live.com/self.aspx/.Public/MySql%e8%a7%86%e9%a2%91%e6%95%99%e7%a8%8b/%e4%bd%bf%e7%94%a8Mysql%e5%85%a8%e6%96%87%e6%90%9c%e7%b4%a2%20^5fulltext%e5%92%8c%20match^2.against^6.7z&quot; target=&quot;_blank&quot;&gt;下载地址3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div id=&quot;mydownload_right&quot;&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/317868099/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/181.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868099/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868099/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.17rumen.com/archives/181.html/feed</wfw:commentRss><description>一个SELECT查询中的LIKE语句来执行这种查询，尽管这种方法可行，
但对于全文查找而言，这是一种效率极端低下的方法，尤其在处理大量数据的时候。
-------------------
上面这句话 我是在网上看到的， 说得挺有道理的， mysql 本身提供了一种叫做全文搜索的技术吧，
不过这好像从后来的版本才有的， 比较旧的版本不支持，不过那是很早期的版本了，
现在大家使用的版本 应该都支持的。我现在使用 mysql6.0.4 来演示
全文搜索 比起 索引 我觉得更加全面， 索引只对某一个字段，然后在查询时候使用 like 配合。
全文搜索它可以设置多个字段进行搜索，可以说是比起 select .... like 高级吧。
好了， 既然 全文搜索 有这样的优点，下面我们来看看 是否真的如此。
下面提供的测试例子，是 mysql 手册上面的一个例子
CREATE TABLE articles (
   id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
   title VARCHAR(200),
    body TEXT,
     FULLTEXT (title,body)
   );
上面这是创建表的 mysql 语句， 其中最后一句  FULLTEXT (title,body)
就是为 title 和 body 创建一个 全文搜索，也就是 以后 方便搜索 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/317868099/17rumen/feedsky/s.gif?r=http://www.17rumen.com/archives/181.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/17rumen/317868099/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/17rumen/317868099/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>Linux</category><category>mysql</category><pubDate>Thu, 24 Dec 2009 18:41:13 +0800</pubDate><author>fanzg</author><comments>http://www.17rumen.com/archives/181.html#comments</comments><guid isPermaLink="false">http://www.17rumen.com/?p=181</guid><dc:creator>fanzg</dc:creator><fs:srclink>http://www.17rumen.com/archives/181.html</fs:srclink><fs:srcfeed>http://www.17rumen.com/feed</fs:srcfeed><fs:itemid>feedsky/17rumen/~7037509/317868099/5145437</fs:itemid></item></channel></rss>