﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-空间无限-文章分类-编程语言</title><link>http://www.blogjava.net/jx1984520/category/21847.html</link><description>身是菩提树，心如明镜台，时时勤拂拭，勿使染尘埃。 
菩提本无树，明镜亦非台，本来无一物，何处惹尘埃。</description><language>zh-cn</language><lastBuildDate>Mon, 15 Oct 2007 14:49:00 GMT</lastBuildDate><pubDate>Mon, 15 Oct 2007 14:49:00 GMT</pubDate><ttl>60</ttl><item><title>Apache+php+mysql在windows下的安装与配置图解(3)</title><link>http://www.blogjava.net/jx1984520/articles/152705.html</link><dc:creator>javabright</dc:creator><author>javabright</author><pubDate>Sun, 14 Oct 2007 04:56:00 GMT</pubDate><guid>http://www.blogjava.net/jx1984520/articles/152705.html</guid><wfw:comment>http://www.blogjava.net/jx1984520/comments/152705.html</wfw:comment><comments>http://www.blogjava.net/jx1984520/articles/152705.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jx1984520/comments/commentRss/152705.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jx1984520/services/trackbacks/152705.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em"><strong>三、<a href="http://www.qqread.com/keys/mysql/index.html" target="_blank">mysql</a>的<nobr oncontextmenu="return false;" onmousemove="kwM(5);" id="key5" onmouseover="kwE(event,5, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">安装</nobr>，与<a href="http://www.qqread.com/keys/php/index.html" target="_blank">php</a>、<a href="http://www.qqread.com/z/apache/index.html" target="_blank">Apache</a>相结合</strong></p>
<p style="text-indent: 2em">打开下载的mysql安装文件mysql-4.1.14-win32.zip，双击解压缩，运行&#8220;setup.exe&#8221;，出现如下界面</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_29.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图二十九）" src="http://www.qqread.com/ArtImage/20060207/xc234_29.gif" border="0" /></a>&nbsp;</center>
<p style="text-indent: 2em">mysql安装向导启动，按&#8220;Next&#8221;继续</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_30.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图三十）" src="http://www.qqread.com/ArtImage/20060207/xc234_30.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">选择安装类型，有&#8220;Typical（默认）&#8221;、&#8220;Complete（完全）&#8221;、&#8220;Custom（<nobr oncontextmenu="return false;" onmousemove="kwM(2);" id="key2" onmouseover="kwE(event,2, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">用户</nobr>自定义）&#8221;三个选项，我们选择&#8220;Custom&#8221;，有更多的选项，也方便熟悉安装过程</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_31.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图三十）" src="http://www.qqread.com/ArtImage/20060207/xc234_31.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">在&#8220;Developer Components（开发者部分）&#8221;上左键单击，选择&#8220;This feature, and all subfeatures, will be installed on local hard drive.&#8221;，即&#8220;此部分，及下属子部分内容，全部安装在本地<a href="http://www.qqread.com/keys/yingpan/index.html" target="_blank">硬盘</a>上&#8221;。在上面的&#8220;MySQL Server（mysql服务器）&#8221;、&#8220;Client Programs（mysql客户端<nobr oncontextmenu="return false;" onmousemove="kwM(1);" id="key1" onmouseover="kwE(event,1, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">程序</nobr>）&#8221;、&#8220;Documentation（文档）&#8221;也如此操作，以保证安装所有文件。点选&#8220;Change...&#8221;，手动指定安装目录。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_32.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图三十二）" src="http://www.qqread.com/ArtImage/20060207/xc234_32.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">填上安装目录，我的是&#8220;D:\mysql&#8221;，也建议不要放在与操作系统同一分区，这样可以防止<a href="http://www.qqread.com/z/system/backup/index.html" target="_blank">系统备份</a>还原的时候，数据被清空。按&#8220;OK&#8221;继续。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_33.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图三十三）" src="http://www.qqread.com/ArtImage/20060207/xc234_33.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">返回刚才的界面，按&#8220;Next&#8221;继续。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_34.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图三十四）" src="http://www.qqread.com/ArtImage/20060207/xc234_34.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">确认一下先前的设置，如果有误，按&#8220;Back&#8221;返回重做。按&#8220;Install&#8221;开始安装。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_35.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图三十五）" src="http://www.qqread.com/ArtImage/20060207/xc234_35.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">正在安装中，请稍候，直到出现下面的界面</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_36.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图三十六）" src="http://www.qqread.com/ArtImage/20060207/xc234_36.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">这里是询问你是否要注册一个mysql.com的账号，或是使用已有的账号登陆mysql.com，一般不需要了，点选&#8220;Skip Sign-Up&#8221;，按&#8220;Next&#8221;略过此步骤。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_37.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图三十七）" src="http://www.qqread.com/ArtImage/20060207/xc234_37.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">现在软件安装完成了，出现上面的界面，这里有一个很好的功能，mysql<nobr oncontextmenu="return false;" onmousemove="kwM(4);" id="key4" onmouseover="kwE(event,4, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">配置</nobr>向导，不用向以前一样，自己手动乱七八糟的配置my.ini了，将 &#8220;Configure the Mysql Server now&#8221;前面的勾打上，点&#8220;Finish&#8221;结束软件的安装并启动mysql配置向导。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_38.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图三十八）" src="http://www.qqread.com/ArtImage/20060207/xc234_38.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">mysql配置向导启动界面，按&#8220;Next&#8221;继续。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_39.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图三十九）" src="http://www.qqread.com/ArtImage/20060207/xc234_39.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">选择配置方式，&#8220;Detailed Configuration（手动精确配置）&#8221;、&#8220;Standard Configuration（标准配置）&#8221;，我们选择&#8220;Detailed Configuration&#8221;，方便熟悉配置过程。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_40.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图四十）" src="http://www.qqread.com/ArtImage/20060207/xc234_40.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">选择服务器类型，&#8220;Developer Machine（开发测试类，mysql占用很少资源）&#8221;、&#8220;Server Machine（服务器类型，mysql占用较多资源）&#8221;、&#8220;Dedicated MySQL Server Machine（专门的数据库服务器，mysql占用所有可用资源）&#8221;，大家根据自己的类型选择了，一般选&#8220;Server Machine&#8221;，不会太少，也不会占满。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_41.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图四十）" src="http://www.qqread.com/ArtImage/20060207/xc234_41.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">选择<a href="http://www.qqread.com/z/mysql/backup/index.html" target="_blank">mysql数据</a>库的大致用途，&#8220;Multifunctional Database（通用多功能型，好）&#8221;、&#8220;Transactional Database Only（服务器类型，专注于事务处理，一般）&#8221;、&#8220;Non-Transactional Database Only（非事务处理型，较简单，主要做一些监控、记数用，对MyISAM数据类型的支持仅限于non-transactional），随自己的用途而选择了，我这里选择&#8220;Transactional Database Only&#8221;，按&#8220;Next&#8221;继续。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_42.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图四十二）" src="http://www.qqread.com/ArtImage/20060207/xc234_42.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">对InnoDB Tablespace进行配置，就是为InnoDB 数据库文件选择一个存储空间，如果修改了，要记住位置，重装的时候要选择一样的地方，否则可能会造成数据库损坏，当然，对数据库做个备份就没问题了，这里不详述。我这里没有修改，使用用默认位置，直接按&#8220;Next&#8221;继续</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_43.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图四十三）" src="http://www.qqread.com/ArtImage/20060207/xc234_43.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">选择您的网站的一般mysql访问量，同时连接的数目，&#8220;Decision Support(DSS)/OLAP（20个左右）&#8221;、&#8220;Online Transaction Processing(OLTP)（500个左右）&#8221;、&#8220;Manual Setting（手动设置，自己输一个数）&#8221;，我这里选&#8220;Online Transaction Processing(OLTP)&#8221;，自己的服务器，应该够用了，按&#8220;Next&#8221;继续</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_44.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图四十四）" src="http://www.qqread.com/ArtImage/20060207/xc234_44.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">是否启用<a href="http://www.qqread.com/z/tcp_ip/index.html" target="_blank">TCP/IP</a>连接，设定端口，如果不启用，就只能在自己的机器上访问mysql数据库了，我这里启用，把前面的勾打上，Port Number：3306，按&#8220;Next&#8221;继续</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_45.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图四十五）" src="http://www.qqread.com/ArtImage/20060207/xc234_45.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">这个比较重要，就是对mysql默认数据库语言编码进行设置，第一个是西文编码，第二个是多字节的通用utf8编码，都不是我们通用的编码，这里选择第三个，然后在Character Set那里选择或填入&#8220;gbk&#8221;，当然也可以用&#8220;gb2312&#8221;，区别就是gbk的字库容量大，包括了gb2312的所有汉字，并且加上了繁体字、和其它乱七八糟的字——使用mysql的时候，在执行数据操作命令之前运行一次&#8220;SET NAMES GBK;&#8221;（运行一次就行了，GBK可以替换为其它值，视这里的设置而定），就可以正常的使用汉字（或其它文字）了，否则不能正常显示汉字。按 &#8220;Next&#8221;继续。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_46.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图四十六）" src="http://www.qqread.com/ArtImage/20060207/xc234_46.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">选择是否将mysql安装为<nobr oncontextmenu="return false;" onmousemove="kwM(3);" id="key3" onmouseover="kwE(event,3, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">windows</nobr>服务，还可以指定Service Name（服务标识名称），是否将mysql的bin目录加入到Windows PATH（加入后，就可以直接使用bin下的文件，而不用指出目录名，比如连接，&#8220;mysql.exe -uusername -ppassword;&#8221;就可以了，不用指出mysql.exe的完整地址，很方便），我这里全部打上了勾，Service Name不变。按&#8220;Next&#8221;继续。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_47.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图四十七）" src="http://www.qqread.com/ArtImage/20060207/xc234_47.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">这一步询问是否要修改默认root用户（超级<nobr oncontextmenu="return false;" onmousemove="kwM(0);" id="key0" onmouseover="kwE(event,0, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">管理</nobr>）的密码（默认为空），&#8220;New root password&#8221;如果要修改，就在此填入新密码（如果是重装，并且之前已经设置了密码，在这里更改密码可能会出错，请留空，并将&#8220;Modify Security Settings&#8221;前面的勾去掉，安装配置完成后另行修改密码），&#8220;Confirm（再输一遍）&#8221;内再填一次，防止输错。&#8220;Enable root <a href="http://www.qqread.com/access/index.html" target="_blank">access</a> from remote machines（是否允许root用户在其它的机器上登陆，如果要<a href="http://www.qqread.com/security/index.html" target="_blank">安全</a>，就不要勾上，如果要方便，就勾上它）&#8221;。最后&#8220;Create An Anonymous Account（新建一个匿名用户，匿名用户可以连接数据库，不能操作数据，包括查询）&#8221;，一般就不用勾了，设置完毕，按&#8220;Next&#8221;继续。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_48.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图四十八）" src="http://www.qqread.com/ArtImage/20060207/xc234_48.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">确认设置无误，如果有误，按&#8220;Back&#8221;返回检查。按&#8220;Execute&#8221;使设置生效。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_49.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图四十九）" src="http://www.qqread.com/ArtImage/20060207/xc234_49.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">设置完毕，按&#8220;Finish&#8221;结束mysql的安装与配置——这里有一个比较常见的错误，就是不能&#8220;Start service&#8221;，一般出现在以前有安装mysql的服务器上，解决的办法，先保证以前安装的mysql服务器彻底卸载掉了；不行的话，检查是否按上面一步所说，之前的密码是否有修改，照上面的操作；如果依然不行，将mysql安装目录下的data文件夹备份，然后删除，在安装完成后，将安装生成的 data文件夹删除，备份的data文件夹移回来，再重启mysql服务就可以了，这种情况下，可能需要将数据库检查一下，然后修复一次，防止数据出错。</p>
<p style="text-indent: 2em">与Apache及php相结合，前面已提过，这里再说一下，在php安装目录下，找到先前重命名并编辑过的 php.ini，如下图所示，Ln563，把&#8220;;extension=php_mysql.dll&#8221;前的&#8220;;&#8221;去掉，加载mysql模块。保存，关闭后，重启apache就可以了。这里也可以选择其它要加载的模块，去掉前面的&#8220;;&#8221;，就表示要加载此模块了，加载的越多，占用的资源也就多一点，不过也多不到哪去。所有的模块文件都放在php解压缩目录的&#8220;ext&#8221;之下，我这里的截图是把所有能加载的模块都加载上去了，前面的&#8220;;&#8221;没去掉的，是因为&#8220;ext&#8221; 目录下默认没有此模块，加载会提示找不到文件而出错。这里只是参考，一般不需要加载这么多，需要的加载上就可以了，编辑好后保存，关闭。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_24.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图二十四）" src="http://www.qqread.com/ArtImage/20060207/xc234_24.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">同样，加载了模块后，就要指明模块的位置，否则重启Apache的时候会提示&#8220;找不到指定模块&#8221;的错误，这里介绍一种最简单的方法，直接将 php安装路径、里面的ext路径指定到windows系统路径中——在&#8220;我的电脑&#8221;上右键，&#8220;属性&#8221;，选择&#8220;高级&#8221;标签，点选&#8220;环境变量&#8221;，在&#8220;系统变量&#8221;下找到&#8220;Path&#8221;变量，选择，双击或点击&#8220;编辑&#8221;，将&#8220;;D:\php;D:\php\ext&#8221;加到原有值的后面，当然，其中的&#8220;D:\php&#8221;是我的安装目录，你要将它改为自己的php安装目录，如下图所示，全部确定。系统路径添加好后要重启电脑才能生效，可以现在重启，也可以在所有软件安装或配置好后重启。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_25.gif" target="_blank"><img src="http://www.qqread.com/ArtImage/20060207/xc234_25.gif"  alt="" /><br />
(图片较大，请拉动滚动条观看)</a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">原文：http://www.isblog.cn/user1/1032/archives/2006/3127.html <img height="9" alt="更多文章" src="http://www.qqread.com/2007css/dian_1.gif" width="11" /> 更多内容请看<a href="http://www.qqread.com/mysql/tech/0.html" target="_blank"><font color="#ff0033"></font></a>&nbsp;&nbsp;<a href="http://www.qqread.com/z/server/apache/index.html" target="_blank"><font color="#ff0033">Apache技术专题</font></a>&nbsp;&nbsp;<a href="http://www.qqread.com/z/apache/index.html" target="_blank"><font color="#ff0033">Apache配置专题</font></a>专题，或<a class="font_12" title="在这里你会得到众多高手的技术帮助" href="http://group.qqread.com/" target="_blank">进入讨论组</a>讨论。 </p>
 <img src ="http://www.blogjava.net/jx1984520/aggbug/152705.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jx1984520/" target="_blank">javabright</a> 2007-10-14 12:56 <a href="http://www.blogjava.net/jx1984520/articles/152705.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Apache+php+mysql在windows下的安装与配置图解(2)</title><link>http://www.blogjava.net/jx1984520/articles/152703.html</link><dc:creator>javabright</dc:creator><author>javabright</author><pubDate>Sun, 14 Oct 2007 04:55:00 GMT</pubDate><guid>http://www.blogjava.net/jx1984520/articles/152703.html</guid><wfw:comment>http://www.blogjava.net/jx1984520/comments/152703.html</wfw:comment><comments>http://www.blogjava.net/jx1984520/articles/152703.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jx1984520/comments/commentRss/152703.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jx1984520/services/trackbacks/152703.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em"><strong>二、<a href="http://www.qqread.com/keys/php/index.html" target="_blank">php</a>的安装、以module方式，将php与<a href="http://www.qqread.com/z/apache/index.html" target="_blank">apache</a>结合使你的网站<a href="http://www.qqread.com/network/server/index.html" target="_blank">服务器</a><nobr oncontextmenu="return false;" onmousemove="kwM(1);" id="key1" onmouseover="kwE(event,1, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">支持</nobr>php服务器脚本程序</strong></p>
<p style="text-indent: 2em">将下载的php安装文件php-5.0.5-Win32.zip右键解压缩。</p>
<p style="text-indent: 2em">
<center><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图二十）" src="http://www.qqread.com/ArtImage/20060207/xc234_21.gif" border="0" /></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">指定解压缩的位置，我的设定在&#8220;D:\php&#8221;</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_22.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图二十二）" src="http://www.qqread.com/ArtImage/20060207/xc234_22.gif" border="0" /></a>
<div class="left_6_1">
<ul></ul>
    </div>
    <div class="left_6_1" id="w_hzh">&nbsp;</div>
    </center>
    <p>&nbsp;</p>
    <p style="text-indent: 2em"></p>
    <p style="text-indent: 2em">查看解压缩后的文件夹内容，找到&#8220;php.ini-dist&#8221;文件，将其重命名为&#8220;php.ini&#8221;，打开编辑，找到下面图中的地方， Ln385，有一个&#8220;register_globals = Off&#8221;值，这个值是用来打开全局变量的，比如表单送过来的值，如果这个值设为&#8220;Off&#8221;，就只能用&#8220;$_POST['变量名']、$_GET['变量名 ']&#8221;等来取得送过来的值，如果设为&#8220;On&#8221;，就可以直接使用&#8220;$变量名&#8221;来获取送过来的值，当然，设为&#8220;Off&#8221;就比较<a href="http://www.qqread.com/security/index.html" target="_blank">安全</a>，不会让人轻易将网页间传送的数据截取。这个值是否改成&#8220;On&#8221;就看自己感觉了，是安全重要还是方便重要？</p>
    <p style="text-indent: 2em">
    <center><a href="http://www.qqread.com/ArtImage/20060207/xc234_23.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图二十三）" src="http://www.qqread.com/ArtImage/20060207/xc234_23.gif" border="0" /></a></center>
    <p>&nbsp;</p>
    <p style="text-indent: 2em"></p>
    <p style="text-indent: 2em">这里还有一个地方要编辑，功能就是使php能够直接调用其它模块，比如访问mysql，如下图所示，Ln563，选择要加载的模块，去掉前面的 &#8220;;&#8221;，就表示要加载此模块了，加载的越多，占用的资源也就多一点，不过也多不到哪去，比如我要用mysql，就要把&#8220;;extension= php_mysql.dll&#8221;前的&#8220;;&#8221;去掉。所有的模块文件都放在php解压缩目录的&#8220;ext&#8221;之下，我这里的截图是把所有能加载的模块都加载上去了，前面的&#8220;;&#8221;没去掉的，是因为&#8220;ext&#8221;目录下默认没有此模块，加载会提示找不到文件而出错。这里只是参考，一般不需要加载这么多，需要的加载上就可以了，编辑好后保存，关闭。</p>
    <p style="text-indent: 2em">
    <center><a href="http://www.qqread.com/ArtImage/20060207/xc234_24.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图二十四）" src="http://www.qqread.com/ArtImage/20060207/xc234_24.gif" border="0" /></a></center>
    <p>&nbsp;</p>
    <p style="text-indent: 2em"></p>
    <p style="text-indent: 2em">如果上一步加载了其它模块，就要指明模块的位置，否则重启Apache的时候会提示&#8220;找不到指定模块&#8221;的错误，这里介绍一种最简单的方法，直接将php安装路径、里面的ext路径指定到windows系统路径中——在&#8220;我的<nobr oncontextmenu="return false;" onmousemove="kwM(2);" id="key2" onmouseover="kwE(event,2, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">电脑</nobr>&#8221;上右键，&#8220;属性&#8221;，选择&#8220;高级&#8221;标签，点选&#8220;环境变量&#8221;，在&#8220;系统变量&#8221;下找到&#8220;Path&#8221;变量，选择，双击或点击&#8220;编辑&#8221;，将&#8220;;D:\php;D:\php\ext&#8221;加到原有值的后面，当然，其中的&#8220;D:\php&#8221; 是我的<nobr oncontextmenu="return false;" onmousemove="kwM(5);" id="key4" onmouseover="kwE(event,5, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">安装</nobr>目录，你要将它改为自己的php安装目录，如下图所示，全部确定。系统路径添加好后要重启电脑才能生效，可以现在重启，也可以在所有软件安装或<nobr oncontextmenu="return false;" onmousemove="kwM(4);" id="key3" onmouseover="kwE(event,4, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">配置</nobr>好后重启。</p>
    <p style="text-indent: 2em">
    <center><a href="http://www.qqread.com/ArtImage/20060207/xc234_25.gif" target="_blank"><img src="http://www.qqread.com/ArtImage/20060207/xc234_25.gif"  alt="" /><br />
    (图片较大，请拉动滚动条观看)</a></center>
    <p>&nbsp;</p>
    <p style="text-indent: 2em"></p>
    <p style="text-indent: 2em">现在开始将php以module方式与Apache相结合，使php融入Apache，照先前的方法打开Apache的配置文件，Ln 173，找到这里，添加进如图所示选中的两行，第一行&#8220;LoadModule php5_module D:/php/php5apache2.dll&#8221;是指以module方式加载php，第二行&#8220;PHPIniDir "D:/php"&#8221;是指明php的配置文件php.ini的位置，是当然，其中的&#8220;D:/php&#8221;要改成你先前选择的php解压缩的目录。</p>
    <p style="text-indent: 2em">
    <center><a href="http://www.qqread.com/ArtImage/20060207/xc234_26.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图二十六）" src="http://www.qqread.com/ArtImage/20060207/xc234_26.gif" border="0" /></a></center>
    <p>&nbsp;</p>
    <p style="text-indent: 2em"></p>
    <p style="text-indent: 2em">还是Apache的配置文件，Ln 757，加入&#8220;AddType application/x-httpd-php .php&#8221;、&#8220;AddType application/x-httpd-php .html&#8221;两行，你也可以加入更多，实质就是添加可以执行php的文件类型，比如你再加上一行&#8220;AddType application/x-httpd-php .htm&#8221;，则.htm文件也可以执行php程序了，你甚至还可以添加上一行&#8220;AddType application/x-httpd-php .txt&#8221;，让普通的文本<a href="http://www.qqread.com/keys/file-format/index.html" target="_blank">文件格式</a>也能运行php程序。</p>
    <p style="text-indent: 2em">
    <center><a href="http://www.qqread.com/ArtImage/20060207/xc234_27.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图二十七）" src="http://www.qqread.com/ArtImage/20060207/xc234_27.gif" border="0" /></a></center>
    <p>&nbsp;</p>
    <p style="text-indent: 2em"></p>
    <p style="text-indent: 2em">前面所说的目录默认索引文件也可以改一下，因为现在加了php，有些文件就直接存为.php了，我们也可以把&#8220;index.php&#8221;设为默认索引文件，优先顺序就自己排了，我的是放在第一位。编辑完成，保存，关闭。</p>
    <p style="text-indent: 2em">
    <center><a href="http://www.qqread.com/ArtImage/20060207/xc234_28.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图二十八）" src="http://www.qqread.com/ArtImage/20060207/xc234_28.gif" border="0" /></a></center>
    <p>&nbsp;</p>
    <p style="text-indent: 2em"></p>
    <p style="text-indent: 2em">现在，php的安装，与Apache的结合已经全部完成，用<nobr oncontextmenu="return false;" onmousemove="kwM(0);" id="key0" onmouseover="kwE(event,0, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">屏幕</nobr>右下角的小图标重启Apache，你的Apache服务器就支持了php。</p>
<img src ="http://www.blogjava.net/jx1984520/aggbug/152703.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jx1984520/" target="_blank">javabright</a> 2007-10-14 12:55 <a href="http://www.blogjava.net/jx1984520/articles/152703.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Apache+php+mysql在windows下的安装与配置图解(1)</title><link>http://www.blogjava.net/jx1984520/articles/152702.html</link><dc:creator>javabright</dc:creator><author>javabright</author><pubDate>Sun, 14 Oct 2007 04:54:00 GMT</pubDate><guid>http://www.blogjava.net/jx1984520/articles/152702.html</guid><wfw:comment>http://www.blogjava.net/jx1984520/comments/152702.html</wfw:comment><comments>http://www.blogjava.net/jx1984520/articles/152702.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jx1984520/comments/commentRss/152702.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jx1984520/services/trackbacks/152702.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">先准备好软件：</p>
<p style="text-indent: 2em">Apache官方下载地址：apache_2.0.55-win32-x86-no_ssl.msi，<a href="http://httpd.apache.org/download.cgi" target="_blank">更多版本在这里</a>；<nobr oncontextmenu="return false;" onmousemove="kwM(3);" id="key3" onmouseover="kwE(event,3, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">php</nobr>官方下载地址：php-5.0.5-Win32.zip，<a href="http://www.php.net/get/php-5.0.5-Win32.zip/from/a/mirror" target="_blank">更多镜像下载地址</a>，<a href="http://www.php.net/downloads.php" target="_blank">更多版本下载</a>；</p>
<p style="text-indent: 2em">mysql官方下载地址：mysql-4.1.14-win32.zip，<a href="http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-4.1.14-win32.zip/from/pick#mirrors" target="_blank">更多镜像下载地址</a>，<a href="http://dev.mysql.com/downloads/mysql/" target="_blank">更多版本下载</a>。</p>
<p style="text-indent: 2em"><strong>一、<nobr oncontextmenu="return false;" onmousemove="kwM(0);" id="key0" onmouseover="kwE(event,0, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">安装</nobr>Apache，<a href="http://www.qqread.com/z/sys/safe-seting/index.html" target="_blank">配置</a>成功一个普通网站服务器</strong></p>
<p style="text-indent: 2em">运行下载好的&#8220;apache_2.0.55-win32-x86-no_ssl.msi&#8221;，出现如下界面：</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_1.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图一）" src="http://www.qqread.com/ArtImage/20060207/xc234_1.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">出现Apache HTTP Server 2.0.55的安装向导界面，点&#8220;Next&#8221;继续</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_2.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图二）" src="http://www.qqread.com/ArtImage/20060207/xc234_2.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">确认同意软件安装使用许可条例，选择&#8220;I accept the terms in the license agreement&#8221;，点&#8220;Next&#8221;继续</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_3.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图三）" src="http://www.qqread.com/ArtImage/20060207/xc234_3.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">将Apache安装到Windows上的使用须知，请<nobr oncontextmenu="return false;" onmousemove="kwM(2);" id="key2" onmouseover="kwE(event,2, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">阅读</nobr>完毕后，按&#8220;Next&#8221;继续</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_4.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图四）" src="http://www.qqread.com/ArtImage/20060207/xc234_4.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">设置系统信息，在Network Domain下填入您的域名（比如：goodwaiter.com），在Server Name下填入您的服务器名称（比如：www.goodwaiter.com，也就是主机名加上域名），在Administrator's Email Address下填入<a href="http://www.qqread.com/keys/system-manage/index.html" target="_blank">系统管理</a>员的联系<a href="http://www.qqread.com/z/mail/safe/index.html" target="_blank">电子邮件</a>地址（比如：yinpeng@xinhuanet.com），上述三条信息仅供参考，其中联系<nobr oncontextmenu="return false;" onmousemove="kwM(1);" id="key1" onmouseover="kwE(event,1, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">电子</nobr>邮件地址会在当系统故障时提供给访问者，三条信息均可任意填写，无效的也行。下面有两个选择，图片上选择的是为系统所有用户安装，使用默认的80端口，并作为系统服务自动启动；另外一个是仅为当前用户安装，使用端口8080，手动启动。一般选择如图所示。按&#8220;Next&#8221;继续。]</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_5.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图五）" src="http://www.qqread.com/ArtImage/20060207/xc234_5.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">选择安装类型，Typical为默认安装，Custom为用户自定义安装，我们这里选择Custom，有更多可选项。按&#8220;Next&#8221;继续</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_6.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图六）" src="http://www.qqread.com/ArtImage/20060207/xc234_6.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">出现选择安装选项界面，如图所示，左键点选&#8220;Apache HTTP Server 2.0.55&#8221;，选择&#8220;This feature, and all subfeatures, will be installed on local hard drive.&#8221;，即&#8220;此部分，及下属子部分内容，全部安装在本地<a href="http://www.qqread.com/keys/yingpan/index.html" target="_blank">硬盘</a>上&#8221;。点选&#8220;Change...&#8221;，手动指定安装目录。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_7.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图七）" src="http://www.qqread.com/ArtImage/20060207/xc234_7.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">我这里选择安装在&#8220;D:\&#8221;，各位自行选取了，一般建议不要安装在操作系统所在盘，免得操作系统坏了之后，还原操作把Apache<nobr oncontextmenu="return false;" onmousemove="kwM(4);" id="key4" onmouseover="kwE(event,4, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">配置</nobr>文件也清除了。选&#8220;OK&#8221;继续。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_8.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图八）" src="http://www.qqread.com/ArtImage/20060207/xc234_8.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">返回刚才的界面，选&#8220;Next&#8221;继续。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_9.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图九）" src="http://www.qqread.com/ArtImage/20060207/xc234_9.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">确认安装选项无误，如果您认为要再检查一遍，可以点&#8220;Back&#8221;一步步返回检查。点&#8220;Install&#8221;开始按前面设定的安装选项安装。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_10.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图十）" src="http://www.qqread.com/ArtImage/20060207/xc234_10.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">正在安装界面，请耐心等待，直到出现下面的画面。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_11.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图十）" src="http://www.qqread.com/ArtImage/20060207/xc234_11.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">安装向导成功完成，这时右下角状态栏应该出现了下面的这个绿色图标，表示Apache服务已经开始运行，按&#8220;Finish&#8221;结束Apache的软件安装</p>
<p style="text-indent: 2em">
<center><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图十二）" src="http://www.qqread.com/ArtImage/20060207/xc234_12.gif" border="0" /></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">我们来熟悉一下这个图标，很方便的，在图标上左键单击，出现如下界面，有&#8220;Start（启动）&#8221;、&#8220;Stop（停止）&#8221;、&#8220;Restart（重启动）&#8221;三个选项，可以很方便的对安装的Apache服务器进行上述操作。</p>
<p style="text-indent: 2em">
<center><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图十三）" src="http://www.qqread.com/ArtImage/20060207/xc234_13.gif" border="0" /></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">好了现在我们来测试一下按默认配置运行的网站界面，在<a href="http://www.qqread.com/keys/ie/index.html" target="_blank">IE</a>地址栏打&#8220;http://127.0.0.1&#8221;，点&#8220;转到&#8221;，就可以看到如下页面，表示Apache服务器已安装成功。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_14.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图十四）" src="http://www.qqread.com/ArtImage/20060207/xc234_14.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">现在开始配置Apache服务器，使它更好的替我们服务，事实上，如果不配置，你的安装目录下的Apache2\htdocs文件夹就是网站的默认根目录，在里面放入文件就可以了。这里我们还是要配置一下，有什么问题或修改，配置始终是要会的，如图所示，&#8220;开始&#8221;、&#8220;所有程序&#8221;、&#8220;Apache HTTP Server 2.0.55&#8221;、&#8220;Configure Apache Server&#8221;、&#8220;Edit the Apache httpd conf Configuration file&#8221;，点击打开。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_15.gif" target="_blank"><img src="http://www.qqread.com/ArtImage/20060207/xc234_15.gif"  alt="" /><br />
(图片较大，请拉动滚动条观看)</a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">XP的记事本有了些小变化，很实用的一个功能就是可以看到文件内容的行、列位置，按下图所示，点&#8220;查看&#8221;，勾选&#8220;状态栏&#8221;，界面右下角就多了个标记，&#8220;Ln 78, Col 10&#8221;就表示&#8220;行 78，列 10&#8221;，这样可以迅速的在文件中定位，方便解说。当然，你也可以通过&#8220;编辑&#8221;，&#8220;查找&#8221;输入关键字来快速定位。每次配置文件的改变，保存后，必须在 Apache服务器重启动后生效，可以用前面讲的小图标方便的控制服务器随时&#8220;重启动&#8221;。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_16.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图十六）" src="http://www.qqread.com/ArtImage/20060207/xc234_16.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">现在正式开始配置Apache服务器，&#8220;Ln 228&#8221;，或者查找关键字&#8220;DocumentRoot&#8221;（也就是网站根目录），找到如下图所示地方，然后将""内的地址改成你的网站根目录，地址格式请照图上的写，主要是一般文件地址的&#8220;\&#8221;在Apache里要改成&#8220;/&#8221;。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_17.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图十七）" src="http://www.qqread.com/ArtImage/20060207/xc234_17.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">&#8220;Ln 253&#8221;，同样，你也可以通过查找&#8220;<directory&#8221;来定位，以后不再说明，将""内的地址改成跟documentroot的一样。< P></p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_18.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图十八）" src="http://www.qqread.com/ArtImage/20060207/xc234_18.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">&#8220;Ln321&#8221;，DirectoryIndex（目录索引，也就是在仅指定目录的情况下，默认显示的文件名），可以添加很多，系统会根据从左至右的顺序来优先显示，以单个半角空格隔开，比如有些网站的首页是index.htm，就在光标那里加上&#8220;index.htm &#8221;文件名是任意的，不一定非得&#8220;index.html&#8221;，比如&#8220;test.php&#8221;等，都可以。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_19.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图十九）" src="http://www.qqread.com/ArtImage/20060207/xc234_19.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">这里有一个选择配置选项，以前可能要配置，现在好像修正过来了，不用配置了，就是强制所有输出文件的语言编码，html文件里有语言标记（，这个就是设定文档语言为gb2312）的也会强制转换。如果打开的网页出现乱码，请先检查网页内有没有上述 html语言标记，如果没有，添加上去就能正常显示了。把&#8220;# DefaultLanguage nl&#8221;前面的&#8220;# &#8221;去掉，把&#8220;nl&#8221;改成你要强制输出的语言，中文是&#8220;zh-cn&#8221;，保存，关闭。</p>
<p style="text-indent: 2em">
<center><a href="http://www.qqread.com/ArtImage/20060207/xc234_20.gif" target="_blank"><img alt="Apache+php+mysql在windows下的安装与配置图解（最新版）（图二十）" src="http://www.qqread.com/ArtImage/20060207/xc234_20.gif" border="0" /></a></center>
<p>&nbsp;</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em">好了，简单的Apache配置就到此结束了，现在利用先前的小图标重启动，所有的配置就生效了，你的网站就成了一个网站服务器，如果你加载了<a href="http://www.qqread.com/z/soft/firewall/index.html" target="_blank">防火墙</a>，请打开80或8080端口，或者允许Apache程序访问网络，否则别人不能访问。如果你有公网IP（一般<a href="http://www.qqread.com/z/adsl/network/index.html" target="_blank">ADSL</a>或电话拨号<a href="http://www.qqread.com/keys/surf/index.html" target="_blank">上网</a>的都是），就可以邀请所有能上网的朋友访问使用http://你的<a href="http://www.qqread.com/z/tech/ip/index.html" target="_blank">IP地址</a>（IP地址查询可访问http://www.goodwaiter.com，查询内容内即是）你的网站了；如果你没有公网IP，也可以把内网IP地址告诉<a href="http://www.qqread.com/z/network/29/index.html" target="_blank">局域网</a>内的其它用户，让他们通过http://你的内网IP地址，访问你的网站。</p>
<img src ="http://www.blogjava.net/jx1984520/aggbug/152702.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jx1984520/" target="_blank">javabright</a> 2007-10-14 12:54 <a href="http://www.blogjava.net/jx1984520/articles/152702.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CSS样式语法基础</title><link>http://www.blogjava.net/jx1984520/articles/113197.html</link><dc:creator>javabright</dc:creator><author>javabright</author><pubDate>Tue, 24 Apr 2007 07:39:00 GMT</pubDate><guid>http://www.blogjava.net/jx1984520/articles/113197.html</guid><wfw:comment>http://www.blogjava.net/jx1984520/comments/113197.html</wfw:comment><comments>http://www.blogjava.net/jx1984520/articles/113197.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jx1984520/comments/commentRss/113197.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jx1984520/services/trackbacks/113197.html</trackback:ping><description><![CDATA[<strong>1. 基本语法<br><br></strong>CSS的定义是由三个部分构成：选择符（selector），属性（properties）和属性的取值（value）。<br>基本格式如下：
<div class=code>selector {property: value} </div>
（选择符 {属性：值}）<br>选择符是可以是多种形式，一般是你要定义样式的HTML标记，例如BODY、P、TABLE&#8230;&#8230;，你可以通过此方法定义它的属性和值，属性和值要用冒号隔开：
<div class=code>body {color: black}</div>
选择符body是指页面主体部分，color是控制文字颜色的属性，black是颜色的值，此例的效果是使页面中的文字为黑色。<br><br>如果属性的值是多个单词组成，必须在值上加引号，比如字体的名称经常是几个单词的组合：
<div class=code>p {font-family: "sans serif"}</div>
（定义段落字体为sans serif）<br><br>如果需要对一个选择符指定多个属性时，我们使用分号将所有的属性和值分开：
<div class=code>p {text-align: center; color: red}</div>
（段落居中排列；并且段落中的文字为红色）<br><br>为了使你定义的样式表方便阅读，你可以采用分行的书写格式：
<div class=code>p<br>{<br>text-align: center;<br>color: black;<br>font-family: arial<br>}</div>
（段落排列居中，段落中文字为黑色，字体是arial）<br><br><strong>2. 选择符组</strong><br><br>你可以把相同属性和值的选择符组合起来书写，用逗号将选择符分开，这样可以减少样式重复定义：
<div class=code>h1, h2, h3, h4, h5, h6 { color: green }</div>
（这个组里包括所有的标题元素，每个标题元素的文字都为绿色）
<div class=code>p, table{ font-size: 9pt }</div>
（段落和表格里的文字尺寸为9号字）<br>效果完全等效于：
<div class=code>p { font-size: 9pt }<br>table { font-size: 9pt }</div>
<br><strong>3. 类选择符</strong><br><br>用类选择符你能够把相同的元素分类定义不同的样式，定义类选择符时，在自定类的名称前面加一个点号。假如你想要两个不同的段落，一个段落向右对齐，一个段落居中，你可以先定义两个类：
<div class=code>p.right {text-align: right}<br>p.center {text-align: center}</div>
然后用不在不同的段落里，只要在HTML标记里加入你定义的class参数：
<div class=code>&lt;p class="right"&gt; 这个段落向右对齐的<br>&lt;/p&gt; <br><br>&lt;p class="center"&gt;<br>这个段落是居中排列的<br>&lt;/p&gt;</div>
<br>注意：类的名称可以是任意英文单词或以英文开头与数字的组合，一般以其功能和效果简要命名。<br><br>类选择符还有一种用法，在选择符中省略HTML标记名，这样可以把几个不同的元素定义成相同的样式：
<div class=code>.center {text-align: center}</div>
（定义.center的类选择符为文字居中排列）<br>这样的类可以被应用到任何元素上。下面我们使h1元素（标题1）和p元素（段落）都归为&#8220;center&#8221;类，这使两个元素的样式都跟随&#8220;.center&#8221;这个类选择符：
<div class=code>&lt;h1 class="center"&gt;<br>这个标题是居中排列的<br>&lt;/h1&gt;<br>&lt;p class="center"&gt;<br>这个段落也是居中排列的<br>&lt;/p&gt;</div>
注意：这种省略HTML标记的类选择符是我们经后最常用的CSS方法，使用这种方法，我们可以很方便的在任意元素上套用预先定义好的类样式。<br><br><strong>4. ID选择符</strong><br><br>在HTML页面中ID参数指定了某个单一元素，ID选择符是用来对这个单一元素定义单独的样式。<br>ID选择符的应用和类选择符类似，只要把CLASS换成ID即可。将上例中类用ID替代：
<div class=code>&lt;p id="intro"&gt;<br>这个段落向右对齐<br>&lt;/p&gt;</div>
定义ID选择符要在ID名称前加上一个&#8220;#&#8221;号。和类选择符相同，定义ID选择符的属性也有两种方法。下面这个例子，ID属性将匹配所有id="intro"的元素：
<div class=code>#intro<br>{<br>font-size:110%;<br>font-weight:bold;<br>color:#0000ff;<br>background-color:transparent<br>}</div>
（字体尺寸为默认尺寸的110%；粗体；蓝色；背景颜色透明）<br>下面这个例子，ID属性只匹配id="intro"的段落元素：
<div class=code>p#intro<br>{<br>font-size:110%;<br>font-weight:bold;<br>color:#0000ff;<br>background-color:transparent<br>}</div>
注意：ID选择符局限性很大，只能单独定义某个元素的样式，一般只在特殊情况下使用。<br><br><strong>5. 包含选择符</strong><br><br>可以单独对某种元素包含关系定义的样式表，元素1里包含元素2，这种方式只对在元素1里的元素2定义，对单独的元素1或元素2无定义，例如：
<div class=code>table a<br>{<br>font-size: 12px<br>}</div>
在表格内的链接改变了样式，文字大小为12象素，而表格外的链接的文字仍为默认大小。<br><br><strong>6. 样式表的层叠性</strong><br><br>层叠性就是继承性，样式表的继承规则是外部的元素样式会保留下来继承给这个元素所包含的其他元素。事实上，所有在元素中嵌套的元素都会继承外层元素指定的属性值，有时会把很多层嵌套的样式叠加在一起，除非另外更改。例如在DIV标记中嵌套P标记：
<div class=code>div { color: red; font-size:9pt}<br>&#8230;&#8230;<br>&lt;div&gt;<br>&lt;p&gt;<br>这个段落的文字为红色9号字<br>&lt;/p&gt;<br>&lt;/div&gt;</div>
（P元素里的内容会继承DIV定义的属性）<br>注意：有些情况下内部选择符不继承周围选择符的值，但理论上这些都是特殊的。例如，上边界属性值是不会继承的，直觉上，一个段落不会同文档BODY一样的上边界值。<br><br>另外，当样式表继承遇到冲突时，总是以最后定义的样式为准。如果上例中定义了P的颜色：
<div class=code>div { color: red; font-size:9pt}<br>p {color: blue}<br>&#8230;&#8230;<br>&lt;div&gt;<br>&lt;p&gt;<br>这个段落的文字为蓝色9号字<br>&lt;/p&gt;<br>&lt;/div&gt;</div>
我们可以看到段落里的文字大小为9号字是继承div属性的，而color属性则依照最后定义的。<br><br>不同的选择符定义相同的元素时，要考虑到不同的选择符之间的优先级。ID选择符，类选择符和HTML标记选择符，因为ID选择符是最后加上元素上的，所以优先级最高，其次是类选择符。如果想超越这三者之间的关系，可以用!important提升样式表的优先权，例如：
<div class=code>p { color: #FF0000!important }<br>.blue { color: #0000FF}<br>#id1 { color: #FFFF00}</div>
我们同时对页面中的一个段落加上这三种样式，它最后会依照被!important申明的HTML标记选择符样式为红色文字。如果去掉!important，则依照优先权最高的ID选择符为黄色文字。<br><br><strong>7. 注释</strong><br><br>你可以在CSS中插入注释来说明你代码的意思，注释有利于你或别人以后编辑和更改代码时理解代码的含义。在浏览器中，注释是不显示的。CSS注释以"/*" 开头，以"*/" 结尾，如下：
<div class=code>/* 定义段落样式表 */<br>p<br>{<br>text-align: center; /* 文本居中排列 */<br>color: black; /* 文字为黑色 */<br>font-family: arial /* 字体为arial */<br>}</div>
<img src ="http://www.blogjava.net/jx1984520/aggbug/113197.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jx1984520/" target="_blank">javabright</a> 2007-04-24 15:39 <a href="http://www.blogjava.net/jx1984520/articles/113197.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dwr与Spring入门实例</title><link>http://www.blogjava.net/jx1984520/articles/113061.html</link><dc:creator>javabright</dc:creator><author>javabright</author><pubDate>Mon, 23 Apr 2007 15:31:00 GMT</pubDate><guid>http://www.blogjava.net/jx1984520/articles/113061.html</guid><wfw:comment>http://www.blogjava.net/jx1984520/comments/113061.html</wfw:comment><comments>http://www.blogjava.net/jx1984520/articles/113061.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jx1984520/comments/commentRss/113061.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jx1984520/services/trackbacks/113061.html</trackback:ping><description><![CDATA[下面讲一下DWR与Spring的集成： <br>还是上面那个例子用Spring搞定大部分和上面一样 <br>新建类User（包换了） <br>
<div class=code_title>代码</div>
<div class=code_div>
<div class=dp-highlighter>
<div class=bar></div>
<ol class=dp-j>
    <li class=alt><span><span class=keyword>package</span><span>&nbsp;org.li.dwr.spring; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class=alt><span></span><span class=keyword>import</span><span>&nbsp;java.util.List; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class=alt><span></span><span class=keyword>import</span><span>&nbsp;org.li.dwr.Book; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class=alt><span></span><span class=keyword>public</span><span>&nbsp;</span><span class=keyword>class</span><span>&nbsp;User &nbsp;&nbsp;</span></span></li>
    <li class=""><span>{ &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>private</span><span>&nbsp;String&nbsp;welcome; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>private</span><span>&nbsp;String&nbsp;username; &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>private</span><span>&nbsp;String&nbsp;address; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>private</span><span>&nbsp;List&lt;Book&gt;&nbsp;books; &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>private</span><span>&nbsp;</span><span class=keyword>int</span><span>&nbsp;age; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>public</span><span>&nbsp;String&nbsp;getAddress() &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>return</span><span>&nbsp;address; &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>public</span><span>&nbsp;</span><span class=keyword>void</span><span>&nbsp;setAddress(String&nbsp;address) &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>this</span><span>.address&nbsp;=&nbsp;address; &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>public</span><span>&nbsp;</span><span class=keyword>int</span><span>&nbsp;getAge() &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>return</span><span>&nbsp;age; &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>public</span><span>&nbsp;</span><span class=keyword>void</span><span>&nbsp;setAge(</span><span class=keyword>int</span><span>&nbsp;age) &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>this</span><span>.age&nbsp;=&nbsp;age; &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>public</span><span>&nbsp;String&nbsp;getUsername() &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>return</span><span>&nbsp;username; &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>public</span><span>&nbsp;</span><span class=keyword>void</span><span>&nbsp;setUsername(String&nbsp;username) &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>this</span><span>.username&nbsp;=&nbsp;username; &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>public</span><span>&nbsp;String&nbsp;getWelcome() &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>return</span><span>&nbsp;welcome; &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>public</span><span>&nbsp;</span><span class=keyword>void</span><span>&nbsp;setWelcome(String&nbsp;welcome) &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>this</span><span>.welcome&nbsp;=&nbsp;welcome; &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>public</span><span>&nbsp;List&lt;Book&gt;&nbsp;getBooks() &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>return</span><span>&nbsp;books; &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>public</span><span>&nbsp;</span><span class=keyword>void</span><span>&nbsp;setBooks(List&lt;Book&gt;&nbsp;books) &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>this</span><span>.books&nbsp;=&nbsp;books; &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>public</span><span>&nbsp;User&nbsp;getUser(String&nbsp;welcome) &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>this</span><span>.welcome=welcome; &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>return</span><span>&nbsp;</span><span class=keyword>this</span><span>; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=alt><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<script>render_code();</script>
<br>Book还是以前那个 <br>在src下新建application.xml文件（spring的配置文件） <br>
<div class=code_title>代码</div>
<div class=code_div>
<div class=dp-highlighter>
<div class=bar></div>
<ol class=dp-xml>
    <li class=alt><span><span class=tag>&lt;?</span><span class=tag-name>xml</span><span>&nbsp;</span><span class=attribute>version</span><span>=</span><span class=attribute-value>"1.0"</span><span>&nbsp;</span><span class=attribute>encoding</span><span>=</span><span class=attribute-value>"UTF-8"</span><span class=tag>?&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&lt;!DOCTYPE&nbsp;beans&nbsp;PUBLIC&nbsp;"-//SPRING//DTD&nbsp;BEAN//EN"&nbsp;"http://www.springframework.org/dtd/spring-beans.dtd"</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class=tag>&lt;</span><span class=tag-name>beans</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>bean</span><span>&nbsp;</span><span class=attribute>id</span><span>=</span><span class=attribute-value>"user"</span><span>&nbsp;</span><span class=attribute>class</span><span>=</span><span class=attribute-value>"org.li.dwr.spring.User"</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>property</span><span>&nbsp;</span><span class=attribute>name</span><span>=</span><span class=attribute-value>"username"</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>value</span><span class=tag>&gt;</span><span>javafish</span><span class=tag>&lt;/</span><span class=tag-name>value</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;/</span><span class=tag-name>property</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>property</span><span>&nbsp;</span><span class=attribute>name</span><span>=</span><span class=attribute-value>"age"</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>value</span><span class=tag>&gt;</span><span>21</span><span class=tag>&lt;/</span><span class=tag-name>value</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;/</span><span class=tag-name>property</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>property</span><span>&nbsp;</span><span class=attribute>name</span><span>=</span><span class=attribute-value>"address"</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>value</span><span class=tag>&gt;</span><span>北京市海淀区</span><span class=tag>&lt;/</span><span class=tag-name>value</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;/</span><span class=tag-name>property</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;/</span><span class=tag-name>bean</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class=tag>&lt;/</span><span class=tag-name>beans</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
</div>
<script>render_code();</script>
<br>在dwr.xml加入： <br>
<div class=code_title>代码</div>
<div class=code_div>
<div class=dp-highlighter>
<div class=bar></div>
<ol class=dp-xml>
    <li class=alt><span><span class=tag>&lt;</span><span class=tag-name>create</span><span>&nbsp;</span><span class=attribute>javascript</span><span>=</span><span class=attribute-value>"springUser"</span><span>&nbsp;</span><span class=attribute>creator</span><span>=</span><span class=attribute-value>"spring"</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>param</span><span>&nbsp;</span><span class=attribute>name</span><span>=</span><span class=attribute-value>"beanName"</span><span>&nbsp;</span><span class=attribute>value</span><span>=</span><span class=attribute-value>"user"</span><span class=tag>&gt;</span><span class=tag>&lt;/</span><span class=tag-name>param</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=comments>&lt;!--&nbsp;指定Spring配置文件的位置，如果没设置DWR会根据web.xml找到主配置文件，不过速度上就慢了&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>param</span><span>&nbsp;</span><span class=attribute>name</span><span>=</span><span class=attribute-value>"location"</span><span>&nbsp;</span><span class=attribute>value</span><span>=</span><span class=attribute-value>"applicationContext.xml"</span><span class=tag>&gt;</span><span class=tag>&lt;/</span><span class=tag-name>param</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;/</span><span class=tag-name>create</span><span class=tag>&gt;</span><span class=tag>&lt;</span><span class=tag-name>convert</span><span>&nbsp;</span><span class=attribute>match</span><span>=</span><span class=attribute-value>"org.li.dwr.spring.User"</span><span>&nbsp;</span><span class=attribute>converter</span><span>=</span><span class=attribute-value>"bean"</span><span class=tag>&gt;</span><span class=tag>&lt;/</span><span class=tag-name>convert</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
</div>
<script>render_code();</script>
<br>新建springUserInfo.html <br>
<div class=code_title>代码</div>
<div class=code_div>
<div class=dp-highlighter>
<div class=bar></div>
<ol class=dp-xml>
    <li class=alt><span><span>&lt;!DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN"</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class=tag>&lt;</span><span class=tag-name>html</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>head</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>title</span><span class=tag>&gt;</span><span>UserInfo.html</span><span class=tag>&lt;/</span><span class=tag-name>title</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>meta</span><span>&nbsp;</span><span class=attribute>http-equiv</span><span>=</span><span class=attribute-value>"content-type"</span><span>&nbsp;</span><span class=attribute>content</span><span>=</span><span class=attribute-value>"text/html;&nbsp;charset=UTF-8"</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>script</span><span>&nbsp;</span><span class=attribute>type</span><span>=</span><span class=attribute-value>'text/javascript'</span><span>&nbsp;</span><span class=attribute>src</span><span>=</span><span class=attribute-value>'dwr/interface/springUser.js'</span><span class=tag>&gt;</span><span class=tag>&lt;/</span><span class=tag-name>script</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>script</span><span>&nbsp;</span><span class=attribute>type</span><span>=</span><span class=attribute-value>'text/javascript'</span><span>&nbsp;</span><span class=attribute>src</span><span>=</span><span class=attribute-value>'dwr/engine.js'</span><span class=tag>&gt;</span><span class=tag>&lt;/</span><span class=tag-name>script</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>script</span><span>&nbsp;</span><span class=attribute>type</span><span>=</span><span class=attribute-value>'text/javascript'</span><span>&nbsp;</span><span class=attribute>src</span><span>=</span><span class=attribute-value>'dwr/util.js'</span><span class=tag>&gt;</span><span class=tag>&lt;/</span><span class=tag-name>script</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>script</span><span>&nbsp;</span><span class=attribute>type</span><span>=</span><span class=attribute-value>"text/javascript"</span><span>&nbsp;</span><span class=attribute>src</span><span>=</span><span class=attribute-value>"springuserInfo.js"</span><span class=tag>&gt;</span><span class=tag>&lt;/</span><span class=tag-name>script</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;</span><span class=tag>&lt;/</span><span class=tag-name>head</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>body</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;请输入你的名字： &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>input</span><span>&nbsp;</span><span class=attribute>id</span><span>=</span><span class=attribute-value>"name"</span><span>&nbsp;</span><span class=attribute>type</span><span>=</span><span class=attribute-value>"text"</span><span class=tag>/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>input</span><span>&nbsp;</span><span class=attribute>id</span><span>=</span><span class=attribute-value>"jbutton"</span><span>&nbsp;</span><span class=attribute>type</span><span>=</span><span class=attribute-value>"button"</span><span>&nbsp;</span><span class=attribute>value</span><span>=</span><span class=attribute-value>"得到javafish(spring)的信息"</span><span class=tag>/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>div</span><span>&nbsp;</span><span class=attribute>id</span><span>=</span><span class=attribute-value>"result"</span><span class=tag>&gt;</span><span class=tag>&lt;/</span><span class=tag-name>div</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>script</span><span class=tag>&gt;</span><span>load()</span><span class=tag>&lt;/</span><span class=tag-name>script</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;</span><span class=tag>&lt;/</span><span class=tag-name>body</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class=tag>&lt;/</span><span class=tag-name>html</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
</div>
<script>render_code();</script>
<br>新建springUserInfo.js <br>
<div class=code_title>代码</div>
<div class=code_div>
<div class=dp-highlighter>
<div class=bar></div>
<ol class=dp-j>
    <li class=alt><span><span>function&nbsp;load() &nbsp;&nbsp;</span></span></li>
    <li class=""><span>{ &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;jbutton&nbsp;=&nbsp;$(</span><span class=string>"jbutton"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;jbutton.onclick=function(event) &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bOnClick(); &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;sbutton&nbsp;=&nbsp;$(</span><span class=string>"sbutton"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;sbutton.onclick=function(event) &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sOnClick(); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;</span></li>
    <li class=alt><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>function&nbsp;bOnClick() &nbsp;&nbsp;</span></li>
    <li class=alt><span>{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;springUser.getUser($(</span><span class=string>"name"</span><span>).value,callback); &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>function&nbsp;callback(msg) &nbsp;&nbsp;</span></li>
    <li class=alt><span>{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;user&nbsp;=&nbsp;msg; &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;DWRUtil.setValue('result',</span><span class=string>"欢迎你！"</span><span>+user.welcome+</span><span class=string>"&nbsp;&nbsp;&nbsp;姓名："</span><span>+user.username+</span><span class=string>",年龄："</span><span>+user.age+</span><span class=string>"，住址："</span><span>+user.address); &nbsp;&nbsp;</span></span></li>
    <li class=""><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<script>render_code();</script>
<br>在web.xml中加入 <br>&lt;context-param&gt; <br>&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt; <br>&lt;param-value&gt;/WEB-INF/classes/applicationContext.xml&lt;/param-value&gt; <br>&lt;/context-param&gt; <br>&lt;listener&gt; <br>&lt;listener-class&gt; <br>org.springframework.web.context.ContextLoaderListener <br>&lt;/listener-class&gt; <br>&lt;/listener&gt; <br>运行服务器输入http://localhost:8080/DWRStudy/springUserInfo.html，可以看到运行结果 <br>主要的区别是dwr.xml的配置，需要在creator=spring,然后里面的&lt;param&gt;的name用beanName,值是spring的配置文件里的bean的id。Name=location是指定spring的配置文件的路径（如果不指定DWR可以根据web.xml自动找到spring的主配置文件）。
<img src ="http://www.blogjava.net/jx1984520/aggbug/113061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jx1984520/" target="_blank">javabright</a> 2007-04-23 23:31 <a href="http://www.blogjava.net/jx1984520/articles/113061.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dwr入实例</title><link>http://www.blogjava.net/jx1984520/articles/112927.html</link><dc:creator>javabright</dc:creator><author>javabright</author><pubDate>Mon, 23 Apr 2007 05:16:00 GMT</pubDate><guid>http://www.blogjava.net/jx1984520/articles/112927.html</guid><wfw:comment>http://www.blogjava.net/jx1984520/comments/112927.html</wfw:comment><comments>http://www.blogjava.net/jx1984520/articles/112927.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jx1984520/comments/commentRss/112927.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jx1984520/services/trackbacks/112927.html</trackback:ping><description><![CDATA[DWR是作为远程调用的ajax框架，将服务端的java类，方法和浏览器的javascript的类，方法对应起来。现在官方最新的版本是DWR2.0，可以在http://getahead.ltd.uk/dwr/download下载到。 <br>我们真对DWR2.0做一些例子讲解一下它的特性： <br>Hello World： <br>新建一个web项目DWRStudy，在项目中构建路径中加入dwr.jar， <br>新建类Hello如下： <br>
<div class=code_title>代码</div>
<div class=code_div>
<div class=dp-highlighter>
<div class=bar></div>
<ol class=dp-j>
    <li class=alt><span><span class=keyword>package</span><span>&nbsp;org.li.dwr; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class=alt><span></span><span class=keyword>package</span><span>&nbsp;org.li.dwr; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class=alt><span></span><span class=keyword>import</span><span>&nbsp;java.util.Date; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class=alt><span></span><span class=keyword>public</span><span>&nbsp;</span><span class=keyword>class</span><span>&nbsp;Hello &nbsp;&nbsp;</span></span></li>
    <li class=""><span>{ &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>public</span><span>&nbsp;String&nbsp;getHelloWorld() &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>return</span><span>&nbsp;</span><span class=string>"现在的时间为："</span><span>+</span><span class=keyword>new</span><span>&nbsp;Date(); &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=alt><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<script>render_code();</script>
<br>在WEB-INF目录下新建dwr.xml文件： <br>
<div class=code_title>代码</div>
<div class=code_div>
<div class=dp-highlighter>
<div class=bar></div>
<ol class=dp-xml>
    <li class=alt><span><span class=tag>&lt;?</span><span class=tag-name>xml</span><span>&nbsp;</span><span class=attribute>version</span><span>=</span><span class=attribute-value>"1.0"</span><span>&nbsp;</span><span class=attribute>encoding</span><span>=</span><span class=attribute-value>"UTF-8"</span><span class=tag>?&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&lt;!DOCTYPE&nbsp;dwr&nbsp;PUBLIC&nbsp;"-//GetAhead&nbsp;Limited//DTD&nbsp;Direct&nbsp;Web&nbsp;Remoting&nbsp;2.0//EN"&nbsp;"http://www.getahead.ltd.uk/dwr/dwr20.dtd"</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span></span><span class=tag>&lt;</span><span class=tag-name>dwr</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>allow</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=comments>&lt;!--&nbsp;javascript的对象是jshello,create="new"是DWR自己创建类&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>create</span><span>&nbsp;</span><span class=attribute>javascript</span><span>=</span><span class=attribute-value>"jshello"</span><span>&nbsp;</span><span class=attribute>creator</span><span>=</span><span class=attribute-value>"new"</span><span>&nbsp;</span><span class=attribute>scope</span><span>=</span><span class=attribute-value>"application"</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>param</span><span>&nbsp;</span><span class=attribute>name</span><span>=</span><span class=attribute-value>"class"</span><span>&nbsp;</span><span class=attribute>value</span><span>=</span><span class=attribute-value>"org.li.dwr.Hello"</span><span class=tag>&gt;</span><span class=tag>&lt;/</span><span class=tag-name>param</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;/</span><span class=tag-name>create</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;/</span><span class=tag-name>allow</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class=tag>&lt;/</span><span class=tag-name>dwr</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
</div>
<script>render_code();</script>
<br>在WebRoot目录里新建hello.js <br>
<div class=code_title>代码</div>
<div class=code_div>
<div class=dp-highlighter>
<div class=bar></div>
<ol class=dp-j>
    <li class=alt><span><span>function&nbsp;load()</span><span class=comment>//载入的时候调用 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>{ &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;jbutton&nbsp;=&nbsp;document.getElementById(</span><span class=string>"jbutton"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;jbutton.onclick=function(event)</span><span class=comment>//注册按钮点击事件 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jbClick(); &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class=alt><span>function&nbsp;jbClick()</span><span class=comment>//按钮点击事件 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>{ &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;jshello.getHelloWorld(callback);</span><span class=comment>//没有参数传递，只传递回调函数就行 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class=alt><span>function&nbsp;callback(msg)</span><span class=comment>//回调函数 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>{ &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;DWRUtil.setValue('jdiv',msg); &nbsp;&nbsp;</span></li>
    <li class=""><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<script>render_code();</script>
<br>在WebRoot目录里新建HelloWorld.html <br>
<div class=code_title>代码</div>
<div class=code_div>
<div class=dp-highlighter>
<div class=bar></div>
<ol class=dp-xml>
    <li class=alt><span><span>&lt;!DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN"</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class=tag>&lt;</span><span class=tag-name>html</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>head</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>title</span><span class=tag>&gt;</span><span>HelloWorld.html</span><span class=tag>&lt;/</span><span class=tag-name>title</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>meta</span><span>&nbsp;</span><span class=attribute>http-equiv</span><span>=</span><span class=attribute-value>"content-type"</span><span>&nbsp;</span><span class=attribute>content</span><span>=</span><span class=attribute-value>"text/html;&nbsp;charset=UTF-8"</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>script</span><span>&nbsp;</span><span class=attribute>type</span><span>=</span><span class=attribute-value>'text/javascript'</span><span>&nbsp;</span><span class=attribute>src</span><span>=</span><span class=attribute-value>'dwr/interface/jshello.js'</span><span class=tag>&gt;</span><span class=tag>&lt;/</span><span class=tag-name>script</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>script</span><span>&nbsp;</span><span class=attribute>type</span><span>=</span><span class=attribute-value>'text/javascript'</span><span>&nbsp;</span><span class=attribute>src</span><span>=</span><span class=attribute-value>'dwr/engine.js'</span><span class=tag>&gt;</span><span class=tag>&lt;/</span><span class=tag-name>script</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>script</span><span>&nbsp;</span><span class=attribute>type</span><span>=</span><span class=attribute-value>'text/javascript'</span><span>&nbsp;</span><span class=attribute>src</span><span>=</span><span class=attribute-value>'dwr/util.js'</span><span class=tag>&gt;</span><span class=tag>&lt;/</span><span class=tag-name>script</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>script</span><span>&nbsp;</span><span class=attribute>type</span><span>=</span><span class=attribute-value>"text/javascript"</span><span>&nbsp;</span><span class=attribute>src</span><span>=</span><span class=attribute-value>"hello.js"</span><span class=tag>&gt;</span><span class=tag>&lt;/</span><span class=tag-name>script</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;</span><span class=tag>&lt;/</span><span class=tag-name>head</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>body</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>input</span><span>&nbsp;</span><span class=attribute>id</span><span>=</span><span class=attribute-value>"jbutton"</span><span>&nbsp;</span><span class=attribute>type</span><span>=</span><span class=attribute-value>"button"</span><span>&nbsp;</span><span class=attribute>value</span><span>=</span><span class=attribute-value>"得到Hello&nbsp;World"</span><span class=tag>/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>div</span><span>&nbsp;</span><span class=attribute>id</span><span>=</span><span class=attribute-value>"jdiv"</span><span class=tag>&gt;</span><span class=tag>&lt;/</span><span class=tag-name>div</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>script</span><span class=tag>&gt;</span><span>load()</span><span class=tag>&lt;/</span><span class=tag-name>script</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;</span><span class=tag>&lt;/</span><span class=tag-name>body</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class=tag>&lt;/</span><span class=tag-name>html</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
</div>
<script>render_code();</script>
<br>在web.xml中加入一个dwr的servlet： <br>
<div class=code_title>代码</div>
<div class=code_div>
<div class=dp-highlighter>
<div class=bar></div>
<ol class=dp-xml>
    <li class=alt><span><span class=tag>&lt;</span><span class=tag-name>servlet</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>servlet-name</span><span class=tag>&gt;</span><span>dwr-invoker</span><span class=tag>&lt;/</span><span class=tag-name>servlet-name</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>servlet-class</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.directwebremoting.servlet.DwrServlet &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;/</span><span class=tag-name>servlet-class</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>init-param</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>param-name</span><span class=tag>&gt;</span><span>debug</span><span class=tag>&lt;/</span><span class=tag-name>param-name</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>param-value</span><span class=tag>&gt;</span><span>true</span><span class=tag>&lt;/</span><span class=tag-name>param-value</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;/</span><span class=tag-name>init-param</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>load-on-startup</span><span class=tag>&gt;</span><span>1</span><span class=tag>&lt;/</span><span class=tag-name>load-on-startup</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;/</span><span class=tag-name>servlet</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>servlet-mapping</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>servlet-name</span><span class=tag>&gt;</span><span>dwr-invoker</span><span class=tag>&lt;/</span><span class=tag-name>servlet-name</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;</span><span class=tag-name>url-pattern</span><span class=tag>&gt;</span><span>/dwr/*</span><span class=tag>&lt;/</span><span class=tag-name>url-pattern</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=tag>&lt;/</span><span class=tag-name>servlet-mapping</span><span class=tag>&gt;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
</div>
<script>render_code();</script>
<br>在运行一下服务器在浏览器里输入http://localhost:8080/DWRStudy/HelloWorld.html，然后点一下按钮下面就会显示服务端的系统时间了，而浏览器页面并没有被刷新。 <br>下面解释一下： <br>1. 新建的Hello类中有一个getHelloWorld方法这个方法就是作为远程调用的服务端方法，这个Hello类也就是远程调用的类。方法的返回值为服务端当前的时间 <br>2. dwr.xml是DWR用来配置服务端类和浏览器端javascript类之间的映射。可以下载dtd看一下，在&lt;allow&gt;&lt;/allow&gt;里类配置映射类如：&lt;create javascript="jshello" creator="new" scope="application"&gt; <br>&lt;param name="class" value="org.li.dwr.Hello"&gt;&lt;/param&gt; <br>&lt;/create&gt; <br>javascript="jshello"是在浏览器端的javascript的映射的类名，（不要用javascript里的关键字）creator="new"是表示这个类是dwr自己创建的，如果creator="new"那么就必须有下面的&lt;param name=&#8221;class&#8221; value=&#8221;类的全路径&#8221;&gt;&lt;/param&gt;，creator还可为spring(与spring集成的时候),script(与apache的一个框架BSF集成的时候用),后来又加入了struts,jsf,ejb3.现在是个HelloWorld让大家体验一下，具体后面会细讲。最后的scope=&#8221;application&#8221;是说这个pojo类的范围，和jsp是一样的。 <br>3. 创建hello.js和HelloWorld.html都是看自己是怎么发挥了，注意的是在HelloWorld.html中导入js文件的时候注意顺序和路径命名规律，自己发挥的这个hello.js一定放在后面，因为要调用其它js文件中的函数。由于在HelloWorld.html里写入了&lt;script&gt;load()&lt;/script&gt;所以在html加载的时候会调用hello.js里的load方法(注意这几个js文件里的函数最好不要重名)在load里面做的事情就是注册一下id为jbutton的按钮的点击事件。当我们点击id为jbutton的按钮的时候就开始用与服务器端的类相对应的javascript类了（jshello），直接调用jshello类的getHelloWorld方法，可以向函数传递参数，不过要在最后加一个回调函数。而我们的服务端的类没有参数就直接传回调函数了。在回调函数的形参msg是服务端Hello类中getHelloWorld方法返回值。在回调函数里面调用了DWR的工具类DWRUtil类的setValue方法设置id为jdiv的值。另外我们把doucment.getElementById(&#8220;jbutton&#8221;);换与$(&#8220;jbutton&#8221;)也可以得到同样的效果，这就有点像prototype了。 <br>4. 在web.xml里加入DWRServlet的配置一是为了远程调用，二是自动生成了&lt;script type='text/javascript' src='dwr/interface/jshello.js'&gt;&lt;/script&gt; <br>&lt;script type='text/javascript' src='dwr/engine.js'&gt;&lt;/script&gt; <br>&lt;script type='text/javascript' src='dwr/util.js'&gt;&lt;/script&gt;文件
<img src ="http://www.blogjava.net/jx1984520/aggbug/112927.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jx1984520/" target="_blank">javabright</a> 2007-04-23 13:16 <a href="http://www.blogjava.net/jx1984520/articles/112927.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>