<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>爱思特</title>
	<atom:link href="http://www.astesys.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.astesys.com</link>
	<description>专业的软件开发知识库</description>
	<lastBuildDate>Mon, 15 Mar 2010 09:30:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type='text/javascript' src='http://www.astesys.com/wp-includes/js/jquery/jquery.js?ver=1.3.2'></script>
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
	<item>
		<title>Centos5.4安装ispCP官方指导</title>
		<link>http://www.astesys.com/centos/639.html</link>
		<comments>http://www.astesys.com/centos/639.html#comments</comments>
		<pubDate>Sun, 14 Mar 2010 17:55:42 +0000</pubDate>
		<dc:creator>xums</dc:creator>
				<category><![CDATA[CentOS]]></category>
		<category><![CDATA[ispCP]]></category>

		<guid isPermaLink="false">http://www.astesys.com/centos/639.html</guid>
		<description><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
1.安装前准备 
1.1确保Centos是最新的

以超级用户登路，先关闭fastestmirror 
[root@server ~]# vi /etc/yum/pluginconf.d/fastestmirror.conf


Related posts:<ol><li><a href='http://www.astesys.com/centos/638.html' rel='bookmark' title='Permanent Link: 中国科技大学CentOS更新源'>中国科技大学CentOS更新源</a></li>
<li><a href='http://www.astesys.com/softdev/java/627.html' rel='bookmark' title='Permanent Link: Apache+Tomcat+Php+Mysql的集成'>Apache+Tomcat+Php+Mysql的集成</a></li>
<li><a href='http://www.astesys.com/website/dz/573.html' rel='bookmark' title='Permanent Link: Discuz技巧：怎么才能使横排显示简介?'>Discuz技巧：怎么才能使横排显示简介?</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
<p>From： http://www.isp-control.net/documentation/doku.php?id=start:installation:centos<br />
<big><strong>1.安装前准备</strong> </big><br />
<strong>1.1确保Centos是最新的</strong></p>
<p>以超级用户登路，先关闭fastestmirror<br />
[root@server ~]# vi /etc/yum/pluginconf.d/fastestmirror.conf<br />
设置 “enable=0”<br />
[root@server ~]# cd /etc/yum.repos.d/<br />
[root@server yum.repos.d]# wget http://mirrors.163.com/.help/CentOS-Base-163.repo<br />
[root@server yum.repos.d]# yum makecache<br />
[root@server yum.repos.d]# yum update</p>
<p><strong>1.2 添加额外的软件源</strong></p>
<p>Epel源(Extra Packages for Enterprise Linux）</p>
<p>[root@server yum.repos.d]# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm<br />
[root@server yum.repos.d]# yum install foo</p>
<p>对于x86_64 位系统可以执行以下命令：</p>
<p>[root@server yum.repos.d]# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-3.noarch.rpm<br />
[root@server yum.repos.d]# yum install foo</p>
<p>Les RPM de Remi源</p>
<p>[root@server yum.repos.d]# cd /etc/yum.repos.d<br />
[root@server yum.repos.d]# wget http://rpms.famillecollet.com/remi-enterprise.repo<br />
这个源里包含一些不需要的软件包，通过以下命令去掉它们<br />
[root@server yum.repos.d]# vi /etc/yum.repos.d/remi-enterprise.repo<br />
在[remi]段结尾,[remi-test]段之上添加一句<br />
includepkgs=mysql* php* sqlite*</p>
<p>RPMForge 源</p>
<p>[root@server yum.repos.d]# rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm<br />
x86_64系统可用下面命令<br />
[root@server yum.repos.d]# rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS//rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm<br />
[root@server yum.repos.d]# yum install foo</p>
<p>我们并不需要所有的RPMForge软件包,因为它会替换许多系统文件,故通过<br />
[root@server yum.repos.d]# vi /etc/yum.repos.d/rpmforge.repo<br />
在末尾加一句<br />
includepkgs=postgrey</p>
<p><strong>1.3 下载非库软件</strong></p>
<p>先建立一个目录<br />
[root@server yum.repos.d]# mkdir /root/tmp<br />
[root@server yum.repos.d]# cd /root/tmp</p>
<p>Courier-IMAP<br />
i386 (32-bit)： [root@server tmp]# wget http://www.thatfleminggent.com/packages/centos/5/i386/courier-imap-4.6.0-1.el5.mf.i386.rpm<br />
[root@server tmp]# wget http://www.thatfleminggent.com/packages/centos/5/i386/courier-authlib-0.62.4-1.el5.mf.i386.rpm<br />
[root@server tmp]# wget http://www.thatfleminggent.com/packages/centos/5/i386/courier-authlib-userdb-0.62.4-1.el5.mf.i386.rpm<br />
x86_64 (64-bit):   [root@server tmp]# wget http://www.thatfleminggent.com/packages/centos/5/x86_64/courier-imap-4.6.0-1.el5.mf.x86_64.rpm<br />
[root@server tmp]# wget http://www.thatfleminggent.com/packages/centos/5/x86_64/courier-authlib-0.62.4-1.el5.mf.x86_64.rpm<br />
[root@server tmp]# wget http://www.thatfleminggent.com/packages/centos/5/x86_64/courier-authlib-userdb-0.62.4-1.el5.mf.x86_64.rpm</p>
<p>policyd-weight</p>
<p>[root@server tmp]# wget http://downloads.sourceforge.net/project/policyd-weight/policyd-weight/0.1.15%20beta-3/policyd-weight-0.1.15dev3-1.noarch.rpm?use_mirror=ncu</p>
<p><strong>1.4 禁用SELinux</strong></p>
<p>[root@server tmp]# setenforce 0</p>
<p><strong>1.5 下载并解压ispCp</strong></p>
<p>[root@server tmp]# wget http://downloads.sourceforge.net/project/ispcp/ispCP%20Omega/ispCP%20Omega%201.0.3-1/ispcp-omega-1.0.3-1.tar.bz2?use_mirror=ncu<br />
[root@server tmp]# tar jxvf ispcp-omega-1.0.3-1.tar.bz2<br />
[root@server tmp]# cd ispcp-omega-1.0.3<br />
安装ispCP-omega-1.0.3<br />
[root@server ispcp-omega-1.0.3]# yum install `cat ./docs/CentOS/centos-packages` (x86_64位要排除32位的软件包vi /etc/yum.conf 在末尾加一句 exclude=*.i386 *.i586 *.i686 )<br />
之后还必须要装Perl包<br />
[root@server ispcp-omega-1.0.3]# perl -MCPAN -e &#8216;install Term::ReadPassword&#8217;      (提示是否要手动配置时输入no)<br />
安装之前下载的Courier-IMAP、policyd-weight RPM包<br />
[root@server ispcp-omega-1.0.3]# cd ..<br />
[root@server tmp]# rpm -Uvh courier-*<br />
[root@server tmp]# rpm -Uvh policyd-weight-*<br />
<strong><br />
1.6 移除不需要的软件包</strong></p>
<p>[root@server tmp]# yum remove sendmail<br />
<strong>1.7 配置服务</strong></p>
<p>[root@server tmp]# groupadd -g 3000 courier<br />
[root@server tmp]# useradd -u 3000 -c &#8216;Courier Mail Server&#8217; -d /dev/null -g courier -d /bin/false courier<br />
开启mySQL服务<br />
[root@server tmp]# service mysqld start<br />
配置mySQL,并且设置mySQL root用户的密码,注意这里配置了的话之后会用到<br />
[root@server tmp]# mysql_secure_installation<br />
清理Apache配置环境并且备份<br />
[root@server tmp]# mv /etc/httpd/conf.d /etc/httpd/conf.d-disabled</p>
<p><strong>1.8 BIND DNS配置</strong></p>
<p>[root@server tmp]# mv /var/named/data /var/named/data-disabled<br />
[root@server tmp]# ln -s /var/named/chroot/var/named/data /var/named/data<br />
[root@server tmp]# echo &#8216;include &#8220;/etc/named-ispcp.conf&#8221;;&#8217; &gt;&gt; /var/named/chroot/etc/named.conf<br />
<big><strong><br />
<big>2. 安装</big> </strong></big><br />
<strong>2.1 确认设置</strong></p>
<p>[root@server tmp]# cat /root/tmp/ispcp-omega-1.0.3/configs/centos/ispcp.conf<br />
<strong><br />
2.2 建立软件和安装到临时区域</strong></p>
<p>[root@server tmp]# cd ispcp-omega-1.0.3<br />
[root@server ispcp-omega-1.0.3]# make -f Makefile.centos</p>
<p><strong>2.3 安装icpCP ω</strong></p>
<p>[root@server ispcp-omega-1.0.3]# cp -RLf /tmp/ispcp/* /<br />
[root@server ispcp-omega-1.0.3]# cd /var/www/ispcp/engine/setup<br />
[root@server setup]# perl ispcp-setup<br />
<big><strong><br />
3. 安装后配置</strong> </big><br />
<strong>3.1 Postfix and SASL Authentication</strong></p>
<p>建立SASL 数据库<br />
[root@server setup]# touch /etc/sasldb2<br />
[root@server setup]# mkdir -p /var/spool/postfix/etc<br />
[root@server setup]# cp /etc/sasldb2 /var/spool/postfix/etc</p>
<p>[root@server setup]# vi /usr/lib/sasl2/smtpd.conf<br />
把下面文本写入smtpd.conf<br />
pwcheck_method: auxprop<br />
auxprop_plugin: sasldb<br />
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5<br />
<strong><br />
3.2 配置 Apache HTTPd</strong></p>
<p>[root@server setup]# echo &#8216;include vhosts/*.conf&#8217; &gt;&gt; /etc/httpd/conf/httpd.conf</p>
<p><strong>3.3 配置 Postgrey</strong></p>
<p>[root@server setup]#vi /etc/init.d/postgrey<br />
把这一行  OPTIONS=&#8221;&#8211;unix=$SOCKET&#8221;<br />
改为        OPTIONS=&#8221;&#8211;unix=$SOCKET &#8211;inet=60000&#8243;<br />
<strong><br />
3.4 设置服务为自启动</strong></p>
<p>chkconfig &#8211;level 345 httpd on<br />
chkconfig &#8211;level 345 mysqld on<br />
chkconfig &#8211;level 345 ispcp_network on<br />
chkconfig &#8211;level 345 ispcp_daemon on<br />
chkconfig &#8211;level 345 amavisd on<br />
chkconfig &#8211;level 345 named on<br />
chkconfig &#8211;level 345 proftpd on<br />
chkconfig &#8211;level 345 postgrey on<br />
chkconfig &#8211;level 345 spamassassin on</p>
<p>如果想不重启就启动服务输入以下命令</p>
<p>service httpd<br />
startservice mysqld start<br />
service ispcp_network start<br />
service ispcp_daemon start<br />
service amavisd start<br />
service named start<br />
service proftpd start<br />
service postgrey start<br />
service spamassassin start</p>
<p><strong>3.5 清理权限</strong></p>
<p>[root@server setup]# chmod 775 /var/www/ispcp/gui/phptmp<br />
<strong>3.6 删除icpCPω临时环境</strong></p>
<p>[root@server setup]# rm -R /tmp/ispcp</p>
<p><span id="more-639"></span></p>
<p>附：</p>
<p>安装过程会提一些问题，由你进行选择或者输入，以下是输入详解：</p>
<p>Please enter a fully qualified hostname. [server.astesys.com]:         //这里直接回车就可以了<br />
Please enter system network address.[192.168.1.150]:                    //这里也直接回车就可以了<br />
Please enter SQL server host. [localhost]:                                       //直接回车<br />
Please enter system SQL database. [ispcp]:                                    //直接回车<br />
Please enter system SQL user. [root]:                                             //直接回车<br />
Please enter system SQL password. [none]:                              //这里输入mysql数据库root帐号的密码<br />
Please repeat system SQL password:                                        //再次输入密码确认<br />
Please enter ispCP ftp SQL user. [vftp]:                            //直接回车<br />
Please enter ispCP ftp SQL user password. [auto generate]:    //这里是设置数据库用户vftp的密码的，可以采用自动生成，但是不建议，最好你自己建立密码，所以在这里输入一个密码。<br />
Please repeat ispCP ftp SQL user password:    //确认密码，再次输入你刚才输入的密码<br />
Please enter administrator login name. [admin]:   //超级管理员用户名，你可以直接回车默认成admin，也可以自己输入<br />
Please enter administrator password:         //确认超级管理员密码，再次输入密码<br />
Please enter administrator e-mail address:   //输入管理员邮箱地址，也可以直接回车忽略。<br />
Please enter the domain name where ispCP OMEGA will run on [admin.server.astesys.com]:   //输入ispCP控制面板的域名，这里随意，只要是能使用的域名都可以，不必按照他提示的进行，比如我这里输入host.astesys.com，以后登录ispCP就可以使用[<a href="http://host.ispcpcn.com登录了。/">http://host.astesys.com]登录了。<br />
</a> IP of Secondary DNS. (optional) []:    //输入第二个DNS域名解析服务器的IP，这个一般没用，除非你自己通过ispCP解析域名，所以直接回车。<br />
Use MySQL Prefix.<br />
Possible values: [i]nfront, [b]ehind, [n]one. [none]:  //使用数据库前缀，[i]nfront：之前；[b]ehind：之后；[none]：不使用，这个回车就可以了，当然你也可以选择，一般是用用户的ID作为前缀的。<br />
Please enter ispCP phpMyAdmin Control user. [pam]:         //这里直接回车<br />
Please enter ispCP phpMyAdmin Control user password. [auto generate]: //输入phpmyadmin控制用户密码，这里建议自己输入，不建议生成。<br />
Please repeat ispCP phpMyAdmin Control user password: //确认密码，再次输入<br />
FastCGI Version: [f]cgid or fast[c]gi. [fcgid]: //直接回车<br />
Activate AWStats. [no]  //直接回车</p>


<p>Related posts:<ol><li><a href='http://www.astesys.com/centos/638.html' rel='bookmark' title='Permanent Link: 中国科技大学CentOS更新源'>中国科技大学CentOS更新源</a></li>
<li><a href='http://www.astesys.com/softdev/java/627.html' rel='bookmark' title='Permanent Link: Apache+Tomcat+Php+Mysql的集成'>Apache+Tomcat+Php+Mysql的集成</a></li>
<li><a href='http://www.astesys.com/website/dz/573.html' rel='bookmark' title='Permanent Link: Discuz技巧：怎么才能使横排显示简介?'>Discuz技巧：怎么才能使横排显示简介?</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.astesys.com/centos/639.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>中国科技大学CentOS更新源</title>
		<link>http://www.astesys.com/centos/638.html</link>
		<comments>http://www.astesys.com/centos/638.html#comments</comments>
		<pubDate>Sun, 14 Mar 2010 08:49:20 +0000</pubDate>
		<dc:creator>xums</dc:creator>
				<category><![CDATA[CentOS]]></category>
		<category><![CDATA[CentOS更新源]]></category>

		<guid isPermaLink="false">http://www.astesys.com/centos/638.html</guid>
		<description><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
中国科技大学CentOS更新源目前是我使用的速度最快的国内更新源了，尤其是电信更是如此。


Related posts:<ol><li><a href='http://www.astesys.com/centos/639.html' rel='bookmark' title='Permanent Link: Centos5.4安装ispCP官方指导'>Centos5.4安装ispCP官方指导</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
<p>中国科技大学CentOS更新源目前是我使用的速度最快的国内更新源了，尤其是电信更是如此。</p>
<p>CentOS4的设置更新源的方法：<br />
# cd /etc/yum.repos.d<br />
# mv CentOS-Base.repo  CentOS-Base.repo.save<br />
# wget <a href="http://centos.ustc.edu.cn/CentOS-Base.repo">http://centos.ustc.edu.cn/CentOS-Base.repo</a></p>
<p>CentOS5的更新源设置方法：<br />
# cd /etc/yum.repos.d<br />
# mv CentOS-Base.repo  CentOS-Base.repo.save<br />
# wget <a href="http://centos.ustc.edu.cn/CentOS-Base.repo.5">http://centos.ustc.edu.cn/CentOS-Base.repo.5</a><br />
# mv CentOS-Base.repo.5 CentOS-Base.repo</p>


<p>Related posts:<ol><li><a href='http://www.astesys.com/centos/639.html' rel='bookmark' title='Permanent Link: Centos5.4安装ispCP官方指导'>Centos5.4安装ispCP官方指导</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.astesys.com/centos/638.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java模版引擎：Velocity 和 FreeMarker 孰优孰劣</title>
		<link>http://www.astesys.com/softdev/java/637.html</link>
		<comments>http://www.astesys.com/softdev/java/637.html#comments</comments>
		<pubDate>Fri, 26 Feb 2010 00:59:36 +0000</pubDate>
		<dc:creator>xums</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[FreeMarker]]></category>
		<category><![CDATA[Velocity]]></category>
		<category><![CDATA[模版引擎]]></category>

		<guid isPermaLink="false">http://www.astesys.com/softdev/java/637.html</guid>
		<description><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
对 Java 程序员来说，最优秀的模版引擎无外乎 Velocity 和 FreeMarker 了。但是对一个尚未接触过这两个项目的人来说，就不知道该选择哪个，哪个才是最适合自己的。下面的内容来自 FreeMarker 网站上一个比较中肯的比较，尽管更多的是倾向于 FreeMarker ：


Related posts:<ol><li><a href='http://www.astesys.com/softdev/java/624.html' rel='bookmark' title='Permanent Link: 通过java.net.URL类抓取某个网页的内容'>通过java.net.URL类抓取某个网页的内容</a></li>
<li><a href='http://www.astesys.com/softdev/java/627.html' rel='bookmark' title='Permanent Link: Apache+Tomcat+Php+Mysql的集成'>Apache+Tomcat+Php+Mysql的集成</a></li>
<li><a href='http://www.astesys.com/rcnd/331.html' rel='bookmark' title='Permanent Link: Eclipse 数据库插件比较'>Eclipse 数据库插件比较</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
<p><span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="text-align: left; line-height: 22px; font-family: &#39;Segoe UI&#39;, arial, helvetica, sans-serif, 宋体; font-size: 13px; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px" class="Apple-style-span">
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">对 Java 程序员来说，最优秀的模版引擎无外乎 Velocity 和<span class="Apple-converted-space">&#160;</span><a style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(62,98,166); padding-top: 0px" href="http://www.oschina.net/p/freemarker">FreeMarker</a><span class="Apple-converted-space">&#160;</span>了。但是对一个尚未接触过这两个项目的人来说，就不知道该选择哪个，哪个才是最适合自己的。下面的内容来自 FreeMarker 网站上一个比较中肯的比较，尽管更多的是倾向于 FreeMarker ：</p>
<hr style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">&#160;</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">相比较 FreeMarker 而言，Velocity 更加简单、轻量级，但它的功能却没有 FreeMarker 那么强大。</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">对于大部分的应用来说，使用 FreeMarker 比 Velocity 更简单，因为 Velocity 还必须编写一些自定义的toolbox类以及一遍遍重复的编写一些比较通用的模版代码，因此也就丧失了刚开始开发时更多的宝贵时间。另外使用工具类和变通的方法在模版引擎中似乎不是一个非常有效的做法。同时，Velocity 的做法使得在Velocity的模版中大量的跟 Java 对象进行交互，这违反了简单的原则，尽管你也可以将代码转入控制器中实现。当然，如果你像使用 Velocity 一样来使用 FreeMarker ，那么 FreeMarker 也可以跟 Velocity 一样简单。</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">Velocity 一个优于 FreeMarker 的地方在于它有很广泛的第三方支持以及一个非常庞大的用户社区，你可以通过这个社区获得到很多的帮助，相反的 FreeMarker 在这方面要差很多。当然，也有越来越多的第三方软件开始在支持 FreeMarker 。</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">下面是一些 FreeMarker 能做到的，而 Velocity 做不到的功能列表（且看着）：</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">1. 日期和数字的支持</strong>        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />您可以执行运算和比较，对任意数量的类型，包括任意精度类型，而不仅仅是整数。        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />您可以比较和显示（格式化）日期/时间值。</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">2. 国际化</strong>        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />您可以格式数字区域，各种各样的内置和自定义数字格式模式。        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />您可以格式日期地区和时区，各种各样的内置和定制的日期格式模式。        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />标识符（变量名）可以包含非英语字母一样重音字母，阿拉伯字母，汉字等</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">3. 循环处理</strong>        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />您可以退出循环        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />您可以访问控制变量外循环机构的内部循环        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />您可以得知当前是否到了循环的结束位置</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">4. 模版级别的数组处理</strong>        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />您可以使用[i]的语法来访问数组元素，包括原始的和非原始的指数        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />可以获取到数组的长度</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">5. 宏定义</strong>        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />宏调用可以通过位置或名称进行参数传递        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />宏的参数可以设定默认值，在调用宏时如果没有指定该参数，则使用默认值代替        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />通过<span class="Apple-converted-space">&#160;</span><code style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">&lt;@myMacro&gt;<em style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">body</em>&lt;/@myMacro&gt; 可以支持宏的嵌套          <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />可以通过文本表达的“宏的名称”来直接调用某个宏          <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />宏允许先使用再定义          <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />宏可以定义局部变量（新版本的Velocity也通过#local指令来实现该功能，尽管官方的文档还没有进行介绍）</code></p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">6. 命名空间</strong>        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />您可以使用多个名称空间的变数。当您建立“宏库”时是非常有用的 ，因为可以防止名称冲突与申请特定变量或与其他宏变量的库。</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">7. 内置与 Java 语言无关的字符串、列表、Map 的操作方法</strong></p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">8. 能提示模版中的拼写错误以及其他错误</strong>        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />当访问一个不存在的变量时，FreeMarker 在执行该模版时会报错，通过配置，你可以指定 FreeMarker 在碰到此类错误时是停止执行，还是忽略该错误，同时 FreeMarker 会在日志中记录此问题；        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />如果您输入错误指令的名称，FreeMarker将抛出一个异常。</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">9. 更高级的文本输出工具</strong>        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />You can enclose a block of template in a set of tags that will cause it to apply HTML escaping or XML escaping (or any other transformation you can express as a FreeMarker expression for that matter) on all interpolations (<code style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">${foo}</code>) in the block.        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />FreeMarker has transforms, which are blocks of template that when rendered, go through a transforming filter. Built-in transforms include whitespace compressor, HTML and XML escaper. Best of all, you can implement your own transformers as well (i.e. if you generate Java source code, you can write a Java code pretty-printer transform and insert it into the template). Naturally, transforms can be nested.        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />You can explicitly flush the output writer with a built-in flush-directive.        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />You can stop the rendering with a built-in stop-directive.</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">10. 文本处理</strong>        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />支持Java的特殊字符处理，例如<tt style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">\b</tt>,<span class="Apple-converted-space">&#160;</span><tt style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">\t</tt>,<span class="Apple-converted-space">&#160;</span><tt style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">\n</tt>,<span class="Apple-converted-space">&#160;</span><tt style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">\f</tt>,<span class="Apple-converted-space">&#160;</span><tt style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">\r</tt>,<span class="Apple-converted-space">&#160;</span><tt style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">\&quot;</tt>,<span class="Apple-converted-space">&#160;</span><tt style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">\'</tt>,<span class="Apple-converted-space">&#160;</span><tt style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">\\，以及UNICODE的</tt><tt style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">\xXXXX         <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /></tt>除了通常的字符串，数字，和布尔常量您可以定义列表和地图文字以及内部模板</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">11. 高级的空格清除</strong>        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />FreeMarker 将删除一些多余的空格、跳格、换行等字符，从而消除一些令人厌烦的明显多余的空格        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />FreeMarker 也提供指令来删除多于的空格</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">12. 与其他技术的集成</strong>        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />提供 JSP 标签库以便在 JSP 中嵌入 FreeMarker 模版        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />可以直接跟 Python 对象一起工作</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">13. 更强大的XML转换功能</strong></p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">14. 先进的模板元程序</strong>        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />您可以捕捉到输出的任意部分范本背景变量        <br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />您可以任意解释的范围变量，就好像它是一个模板定义</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">结束语：</p>
<p style="padding-bottom: 0px; text-indent: 0em; margin: 5px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">功能强不强大并不是最重要的，关键在于是否适应你的要求。</p>
<p>   </span></span></p>


<p>Related posts:<ol><li><a href='http://www.astesys.com/softdev/java/624.html' rel='bookmark' title='Permanent Link: 通过java.net.URL类抓取某个网页的内容'>通过java.net.URL类抓取某个网页的内容</a></li>
<li><a href='http://www.astesys.com/softdev/java/627.html' rel='bookmark' title='Permanent Link: Apache+Tomcat+Php+Mysql的集成'>Apache+Tomcat+Php+Mysql的集成</a></li>
<li><a href='http://www.astesys.com/rcnd/331.html' rel='bookmark' title='Permanent Link: Eclipse 数据库插件比较'>Eclipse 数据库插件比较</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.astesys.com/softdev/java/637.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSTL 学习、应用记录</title>
		<link>http://www.astesys.com/softdev/java/636.html</link>
		<comments>http://www.astesys.com/softdev/java/636.html#comments</comments>
		<pubDate>Wed, 24 Feb 2010 02:24:05 +0000</pubDate>
		<dc:creator>xums</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JSTL标签]]></category>

		<guid isPermaLink="false">http://www.astesys.com/softdev/java/636.html</guid>
		<description><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
JSP 标准标记库（ Standard Tag Library ， JSTL) 是一组以标准化格式实现许多通用的 Web 站点功能的定制标记。

JSP 技术的优势之一在于其定制标记库工具。除了核心 JSP 标记，如 jsp:include 之外，定制标记库工具使您能够创建唯一的标记来描述以站点或应用程序为导向的操作。一旦您创建了定制标记库 ( 简称 taglib) ，当您扩展项目或转向另一个项目时您可以重复使用这些标记。您还可以将 taglib 传递给其它开发人员，从而他们可以在自己的网站上使用，或者在您 Web 应用程序的其它部分使用。

      

       JSTL 的目标是为了简化 JSP 页面的设计。对于页面设计人员来说，使用脚本语言（默认值是 JAVA 语言）操作动态数据是比较困难的，而采用标签和表达式语言相对容易一些， JSTL 的使用为页面设计人员和程序开发人员的分工协作提供了便利。


Related posts:<ol><li><a href='http://www.astesys.com/hot/283.html' rel='bookmark' title='Permanent Link: extJS中tabPanel的实现详解'>extJS中tabPanel的实现详解</a></li>
<li><a href='http://www.astesys.com/softdev/java/372.html' rel='bookmark' title='Permanent Link: eclipse 插件及技巧 整理一'>eclipse 插件及技巧 整理一</a></li>
<li><a href='http://www.astesys.com/softdev/java/624.html' rel='bookmark' title='Permanent Link: 通过java.net.URL类抓取某个网页的内容'>通过java.net.URL类抓取某个网页的内容</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
<p><span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="text-align: left; line-height: 20px; font-family: georgia, verdana, arial, helvetica, sans-seriff; color: rgb(75,75,75); font-size: 13px" class="Apple-style-span">
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">原来一直没有看过，我说过我是新手，但是好多资料上似乎也不重视</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">JSTL</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">。我看项目源代码发现其中使用到了这个标签库，感觉其还真是方便，页面看起来更加清爽。减少了</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">JAVA</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">程序员亲自写的代码量，还真验证了，不懒不做程序员，程序员如果写代码不想着偷懒，那么生活是很无趣的。</span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体"><font color="#000080">下面总结总结，学习学习。：）</font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US">JSP<span class="Apple-converted-space">&#160;</span></span><span style="font-family: 宋体">标准标记库（</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">Standard Tag Library</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">，</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">JSTL)</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">是一组以标准化格式实现许多通用的</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">Web</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">站点功能的定制标记。</span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US">JSP</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">技术的优势之一在于其定制标记库工具。除了核心</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">JSP</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">标记，如</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">jsp:include<span class="Apple-converted-space">&#160;</span></span><span style="font-family: 宋体">之外，定制标记库工具使您能够创建唯一的标记来描述以站点或应用程序为导向的操作。一旦您创建了定制标记库</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">(</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">简称</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">taglib)</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">，当您扩展项目或转向另一个项目时您可以重复使用这些标记。您还可以将</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">taglib</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">传递给其它开发人员，从而他们可以在自己的网站上使用，或者在您</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">Web</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">应用程序的其它部分使用。</span></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><span><font color="#000080">&#160;&#160;&#160;&#160;&#160; </font></span></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>JSTL</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">的目标是为了简化</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">JSP<span class="Apple-converted-space">&#160;</span></span><span style="font-family: 宋体">页面的设计。对于页面设计人员来说，使用脚本语言（默认值是</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">JAVA</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">语言）操作动态数据是比较困难的，而采用标签和表达式语言相对容易一些，</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">JSTL</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">的使用为页面设计人员和程序开发人员的分工协作提供了便利。</span></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><font color="#000080"><span lang="EN-US"><span>一．</span><span class="Apple-converted-space">&#160;</span></span><span style="font-family: 宋体">配置</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">JSTL
</p>
<p>         </span></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">包括两个</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">JAR</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">文件，</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">jstl.jar<span class="Apple-converted-space">&#160;</span></span><span style="font-family: 宋体">和</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">standard.jar</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">。是什么没有必要管，重在应用（</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">1+1</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">？</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">=2</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">，我们没有必要深究，只需要知道这么用就行。）。</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">原文引入：</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;%@ taglib prefix=&quot;c&quot; uri=&quot;http://java.sun.com/jsp/jstl/core&quot; %&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;%@ taglib prefix=&quot;sql&quot; uri=&quot;http://java.sun.com/jsp/jstl/sql&quot; %&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;%@ taglib prefix=&quot;fmt&quot; uri=&quot;http://java.sun.com/jsp/jstl/fmt&quot; %&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
</p>
<p>         </font></span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><font color="#000080"><span lang="EN-US"><span>二．</span><span class="Apple-converted-space">&#160;</span></span><span lang="EN-US">Core</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">标签库</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US">Core</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">标签库主要包括了一般用途的标签、条件标签、迭代标签和</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">URL</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">相关的标签。在</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">JSP</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">页面使用</span><span lang="EN-US">Core</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">标签，要使用</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">taglig</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">指令，指定引用的标签库，如下：</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;%@ taglib rui=”http://java.sun.com/jsp/jstl/core”<span>&#160;<span class="Apple-converted-space">&#160;</span></span>prefix=”c” %&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><b><span style="font-family: 宋体; color: rgb(255,102,0)">一般用途的标签有</span><span class="Apple-converted-space">&#160;</span></b><b><span style="color: rgb(255,102,0)" lang="EN-US">&lt;c:out&gt;</span><span class="Apple-converted-space">&#160;</span></b><b><span style="font-family: 宋体; color: rgb(255,102,0)">、</span><span class="Apple-converted-space">&#160;</span></b><b><span style="color: rgb(255,102,0)" lang="EN-US">&lt;c:set&gt;</span><span class="Apple-converted-space">&#160;</span></b><b><span style="font-family: 宋体; color: rgb(255,102,0)">、</span><span class="Apple-converted-space">&#160;</span></b><b><span style="color: rgb(255,102,0)" lang="EN-US">&lt;c:remove&gt;</span><span class="Apple-converted-space">&#160;</span></b><b><span style="font-family: 宋体; color: rgb(255,102,0)">、</span><span class="Apple-converted-space">&#160;</span></b><b><span style="color: rgb(255,102,0)" lang="EN-US">&lt;c:cath&gt;
</p>
<p>           </span></b></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><b><span lang="EN-US"><font color="#000080">1.&lt;c:out&gt;
</p>
<p>           </font></span></b></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">用于计算一个表达式并将结果输出。类似于</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">JSP<span class="Apple-converted-space">&#160;</span></span><span style="font-family: 宋体">中</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">&lt;%=%&gt;</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">表达式，或者是</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">EL</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">中</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">$ ${el-expression}</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">。</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><b><span lang="EN-US"><font color="#000080">2.&lt;c:set&gt;
</p>
<p>           </font></span></b></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">用于设置范围变量的值或者</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">javabean</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">对象的属性。</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">看个实际例子：</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:set var=”username” value=”lisi” scope=”session”/&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">这样就相当于设置了</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">session</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">。</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><b><span lang="EN-US"><font color="#000080">3.&lt;c:remove&gt;
</p>
<p>           </font></span></b></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">相对</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">&lt;c:set&gt;</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">其作用是移除范围变量。比如：</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">&lt;c:remove var=”nusername” scope=”session”/&gt;
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><b><span lang="EN-US"><font color="#000080">4.&lt;c:catch&gt;
</p>
<p>           </font></span></b></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><b><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>         </span></b></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">用于捕获在其中嵌套的操作所抛出的异常对象，并将异常信息保存到变量中。</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">我们将有可能抛出异常的代码放置到开始标签</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">:&lt;c:catch&gt;</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">和结束标签</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">:&lt;/c:catch&gt;</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">之间。如果其中代码出现异常，异常对象将被捕获，保存在</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">var</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">声明的变量中，该变量总是有</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">page</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">范围。如果没有发生异常，而</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">var</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">所标识的范围变量将被移除。</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">如果没有指定</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">var</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">属性，异常只是简单的被捕获，异常信息并不会被保存。</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US">Eg</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">：</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:catch var=”exception”&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;%
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>int i = 5;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>int j = 0;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>int k=i/j;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">%&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;/c:catch&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:out value=”${exception}” /&gt;&lt;br&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:out value=”${exception.massage}”/&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">后一句相当于：</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">exception.getMessage()
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><b><span style="font-family: 宋体; color: rgb(255,102,0)">条件标签包括</span><span class="Apple-converted-space">&#160;</span></b><b><span style="color: rgb(255,102,0)" lang="EN-US">&lt;c:if&gt;&lt;c:choose&gt;&lt;c:when&gt;&lt;c:otherwise&gt;
</p>
<p>           </span></b></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><b><span lang="EN-US"><font color="#000080">1.&lt;c:if&gt;
</p>
<p>           </font></span></b></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">用于实现</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">java</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">中的</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">if</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">语句功能。</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:if test=”${user.visitCount==1}”&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>This is your first visit .
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;/c:if&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">若为</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">true</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">，会打印中间部分。也可以声明</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">var</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">，方便下一步判断。</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:if test=”${param.name==’admin’}” value=”result”/&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:out value=”${result}” /&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><b><span lang="EN-US"><font color="#000080">2.&lt;c:choose&gt;
</p>
<p>           </font></span></b></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US">&lt;c:choose&gt;</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">和</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">&lt;c:when&gt;</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">、</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">&lt;c:otherwise&gt;</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">一起实现互斥条件执行，类似于</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">java</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">中的</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">if else.
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US">&lt;c:choose&gt;</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">一般作为</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">&lt;c:when&gt;</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">、</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">&lt;c:otherwise&gt;</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">的父标签。</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US">eg</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">：</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:choose&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>&lt;c:when test=&quot;${row.v_money&lt;10000}&quot;&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span></span><span style="font-family: 宋体">初学下海</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>&lt;/c:when&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>&lt;c:when test=&quot;${row.v_money&gt;=10000&amp;&amp;row.v_money&lt;20000}&quot;&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span></span><span style="font-family: 宋体">身手小试</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>&lt;/c:when&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>&lt;c:otherwise&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span></span><span style="font-family: 宋体">商业能手</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>&lt;/c:otherwise&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;/c:choose&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><b><span style="font-family: 宋体; color: rgb(255,102,0)">迭代标签</span><span class="Apple-converted-space">&#160;</span></b><b><span style="color: rgb(255,102,0)"></span></b><b><span style="font-family: 宋体; color: rgb(255,102,0)">迭代标签有</span><span class="Apple-converted-space">&#160;</span></b><b><span style="color: rgb(255,102,0)" lang="EN-US">&lt;c:forEach&gt;</span><span class="Apple-converted-space">&#160;</span></b><b><span style="font-family: 宋体; color: rgb(255,102,0)">和</span><span class="Apple-converted-space">&#160;</span></b><b><span style="color: rgb(255,102,0)" lang="EN-US">&lt;/c:forEach&gt;
</p>
<p>           </span></b></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US">//</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">遍历记录集</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:forEach items=&quot;${finalResult.rows}&quot; var=&quot;row&quot;&gt;<span>&#160;&#160;&#160;&#160;&#160;&#160; </span>
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt 10.5pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;tr class=&quot;&lt;%=tdClass[(rank+1)%2]%&gt;&quot;&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;td align=&quot;center&quot;&gt;&lt;span&gt;&lt;%=rank%&gt; &lt;/span&gt;&lt;/td&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;td align=&quot;center&quot;&gt;&lt;span &gt;&lt;c:out value=&quot;${row.player_name}&quot;/&gt;&lt;/span&gt; &lt;/td&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><font color="#000080"><span lang="EN-US">&lt;td align=&quot;center&quot;&gt;&lt;span &gt;</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">￥</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">&lt;c:out value=&quot;${row.money}&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt 10.5pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;/tr&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt 10.5pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;%rank++;%&gt;<span>&#160;&#160;&#160;&#160; </span>
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;/c:forEach&gt;<span>&#160;</span>
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">也可以设定固定次数。</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:forEach var =”i” begin=”100 “ end= “<chmetcnv tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="110" unitname="”" w:st="on">110”</chmetcnv>&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>${i}
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;/c:forEach&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">如果再加个</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">step=</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">“</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">2</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">”那么每次增长为</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">2</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">。</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><font color="#000080"><span lang="EN-US"><span>三．</span><span class="Apple-converted-space">&#160;</span></span><span lang="EN-US">sql</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">标签</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><b><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>         </span></b></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">设置数据源：</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:setDataSource dataSource=&quot;proxool.breadTycoon&quot; /&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US">//</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">将数据库某查询的结果声明为一个变量</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:query var=&quot;finalResult&quot; &gt;
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>select player_name,money from tb_player order by money DESC LIMIT 10<span>&#160;&#160; </span>
</p>
<p>         </font></span></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;/sql:query&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span></span><span style="font-family: 宋体">然后可以：</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;<span class="Apple-converted-space">&#160;</span></span>&lt;c:forEach items=&quot;${ finalResult.rows}&quot; var=&quot;row&quot; varStatus=&quot;s&quot;&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>advCosts[${s.index}]=${row.adv_cost};
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160; <span class="Apple-converted-space">&#160;</span></span>&lt;/c:forEach&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span></span><span style="font-family: 宋体">数据更新标签：</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="text-indent: 21pt; margin: 0cm 0cm 0pt 42pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:update&gt;<span>&#160; </span>
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>call proc_set_role_salespro(?,?,?,?,?);
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>&lt;sql:param value=&quot;30&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>&lt;sql:param value=&quot;39&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span><span>&#160; </span>&lt;sql:param value=&quot;&lt;%=spID%&gt;&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>&lt;sql:param value=&quot;&lt;%=productID%&gt;&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>&lt;sql:param value=&quot;1&quot;/&gt;<span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>&lt;/sql:update&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:query var=&quot;queryAllChannelCount&quot;&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">SELECT COUNT(*) as total FROM tb_channel WHERE game_id=? AND begin_round&lt;func_cur_round(?) AND player_id=? AND channel_flag=0
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:param value=&quot;${gameID}&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:param value=&quot;${gameID}&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:param value=&quot;${playerID}&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;/sql:query&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:forEach items=&quot;${queryAllChannelCount.rowsByIndex}&quot; var=&quot;channelCN&quot;&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>&lt;c:set value=&quot;${channelCN[0]}&quot; var=&quot;channelTotal&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;/c:forEach&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">调用存储过程更新数据库：</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:if test=&quot;${param.changsubmit!=null}&quot; &gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 10.5pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:forEach items=&quot;${paramValues.pro_id}&quot; var=&quot;getpro_id&quot; varStatus=&quot;getparamsta&quot;&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:update&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="margin: 0cm 0cm 0pt 42pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">call proc_set_role_product(?,?,?,?,?,?,?,?);
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 42pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="margin: 0cm 0cm 0pt 42pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:param value=&quot;${gameID}&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 42pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:param value=&quot;${playerID}&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 42pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:param value=&quot;${getpro_id}&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 42pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:param value=&quot;${getpro_id}&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 42pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:param value=&quot;${paramValues.pro_sort[getparamsta.index]}&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 42pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:param value=&quot;${paramValues.price[getparamsta.index]}&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 42pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:param value=&quot;${paramValues.output[getparamsta.index]}&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 42pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;sql:param value=&quot;0&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;/sql:update&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 10.5pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;/c:forEach&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;/c:if&gt;
</p>
<p>         </font></span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><font color="#000080"><span lang="EN-US"><span>四．</span><span class="Apple-converted-space">&#160;</span></span><span style="font-family: 宋体">格式化标签</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;fmt: formatNumber value =”<chmetcnv tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="12.3" unitname="”" w:st="on">12.3”</chmetcnv><span class="Apple-converted-space">&#160;</span>pattern=”<chmetcnv tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="”" w:st="on">.000”</chmetcnv>/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">将输出</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">12.300.</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">应用样式</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">”<chmetcnv tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="”" w:st="on">.000”</chmetcnv>,</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">将使格式化后的小数部分有</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">3</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">位。不足</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">3</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">位将以</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">0</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">补齐。</span><span lang="EN-US">
</p>
<p>         </span></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span>&lt;fmt:formatDate value=”&lt;%=new java.util.Date() %&gt;” type=”date” /&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span></span><span style="font-family: 宋体">格式化的结果是：</span><span class="Apple-converted-space">&#160;</span><chsdate w:st="on" isrocdate="False" islunardate="False" day="27" month="5" year="2007"><span lang="EN-US">2007-5-27</span><span class="Apple-converted-space">&#160;</span></chsdate><span lang="EN-US">.
</p>
<p>         </span></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;fmt:formatDate value=”&lt;%=new java.util.Date() %&gt;” type=”time” /&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">格式化的结果是：</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">9:25:11
</p>
<p>         </span></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;fmt:formatDate value=”&lt;%=new java.util.Date() %&gt;” type=”both” /&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">格式化的结果是：</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US"><chsdate w:st="on" isrocdate="False" islunardate="False" day="27" month="5" year="2007">2007-5-27</chsdate><span class="Apple-converted-space">&#160;</span>9:25:11
</p>
<p>         </span></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span style="font-family: 宋体">补充知识点：</span><span><span lang="EN-US">
</p>
<p>           </span></span></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US">1.</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">替换</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">request.getParameter(&quot;test&quot;):
</p>
<p>         </span></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:if test=&quot;${param.test!=null}&quot; &gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:out value=&quot;${param.test}&quot; /&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;/c:if&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">2. &lt;c:redirect url=&quot;a.jsp&quot;&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">3.&lt;c:redirect url=&quot;/max.jsp&quot; context=&quot;/ch16&quot;&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;c:param name=&quot;name1&quot; value=&quot;665&quot;/&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080"><span lang="EN-US">&lt;c:param name=&quot;name3&quot; value=&quot;</span><span class="Apple-converted-space">&#160;</span><span style="font-family: 宋体">斯蒂芬</span><span class="Apple-converted-space">&#160;</span><span lang="EN-US">&quot;/&gt;
</p>
<p>         </span></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;/c:redirect&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US">
<p><font color="#000080">&#160;</font></p>
<p>       </span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">4.&lt;c:forTokens items=&quot;zhangsan:lisi:as&quot; delims=&quot;:&quot; var=&quot;name&quot;&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">${name}
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080">&lt;/c:forTokens&gt;
</p>
<p>         </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font color="#000080"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="Apple-converted-space">&#160;</span></span><span>&#160;&#160; </span></font></span></p>
<p>   </span></span></p>


<p>Related posts:<ol><li><a href='http://www.astesys.com/hot/283.html' rel='bookmark' title='Permanent Link: extJS中tabPanel的实现详解'>extJS中tabPanel的实现详解</a></li>
<li><a href='http://www.astesys.com/softdev/java/372.html' rel='bookmark' title='Permanent Link: eclipse 插件及技巧 整理一'>eclipse 插件及技巧 整理一</a></li>
<li><a href='http://www.astesys.com/softdev/java/624.html' rel='bookmark' title='Permanent Link: 通过java.net.URL类抓取某个网页的内容'>通过java.net.URL类抓取某个网页的内容</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.astesys.com/softdev/java/636.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse 3.5 反编译工具安装（jad  jadclipse）</title>
		<link>http://www.astesys.com/softdev/java/634.html</link>
		<comments>http://www.astesys.com/softdev/java/634.html#comments</comments>
		<pubDate>Sat, 20 Feb 2010 09:15:27 +0000</pubDate>
		<dc:creator>xums</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Eclipse  反编译]]></category>
		<category><![CDATA[jadclipse]]></category>

		<guid isPermaLink="false">http://www.astesys.com/softdev/java/634.html</guid>
		<description><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
jad是java的反编译工具，是命令行执行，反编译出来的源文件可读性较高。可惜用起来不太方便。还好找到eclipse下的插件，叫jadclipse，安装好之后，只要双击。tech.Phontol.comclass文件，就能直接看源文件，包括jar包中的class文件，也可以直接反编译。
1.在http://www.varaneckas.com/jad下载对应版本的jad后解压。 解压缩后将jad.exe拷贝到JRE的bin目录下，如\Java\jre1.6.0\bin



    2.下载 jadclipse_3.3.jar
http://jaist.dl.sourceforge.net/sourceforge/jadclipse/net.sf.jadclipse_3.3.0.jar
    将jadclipse_3.3.0.jar复制到eclipse\plugins目录下。


Related posts:<ol><li><a href='http://www.astesys.com/softdev/java/372.html' rel='bookmark' title='Permanent Link: eclipse 插件及技巧 整理一'>eclipse 插件及技巧 整理一</a></li>
<li><a href='http://www.astesys.com/rcnd/331.html' rel='bookmark' title='Permanent Link: Eclipse 数据库插件比较'>Eclipse 数据库插件比较</a></li>
<li><a href='http://www.astesys.com/softdev/java/624.html' rel='bookmark' title='Permanent Link: 通过java.net.URL类抓取某个网页的内容'>通过java.net.URL类抓取某个网页的内容</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
<p>jad是java的反编译工具，是命令行执行，反编译出来的源文件可读性较高。可惜用起来不太方便。还好找到eclipse下的插件，叫jadclipse，安装好之后，只要双击。tech.Phontol.comclass文件，就能直接看源文件，包括jar包中的class文件，也可以直接反编译。</p>
<p>&#160;&#160;&#160; 1.在<a title="http://www.varaneckas.com/jad" href="http://www.varaneckas.com/jad">http://www.varaneckas.com/jad</a>下载对应版本的jad后解压。 解压缩后将jad.exe拷贝到JRE的bin目录下，如\Java\jre1.6.0\bin</p>
<p>&#160;</p>
<p>&#160;&#160;&#160; 2.下载 jadclipse_3.3.jar   <br /><a href="http://jaist.dl.sourceforge.net/sourceforge/jadclipse/net.sf.jadclipse_3.3.0.jar">http://jaist.dl.sourceforge.net/sourceforge/jadclipse/net.sf.jadclipse_3.3.0.jar</a>    <br />&#160;&#160;&#160; 将jadclipse_3.3.0.jar复制到eclipse\plugins目录下。</p>
<p>&#160;</p>
<p>&#160;&#160;&#160; 3.启动Eclipse后，在Windows——&gt;Perference——&gt;Java下面应该会多出一个JadClipse目录，相关的设置可以在此修改配置jadclipse：   <br />&#160;&#160;&#160; 设置path to decompiler为jad.exe的全路径，如：C:\Program Files\Java\jdk1.6.0_03\bin\jad.exe</p>
<p>&#160;&#160; 在Directory for temporary files中指定&#160; 临时文件的路径，如：F:\B02_JavaProject\temp</p>
<p>&#160;</p>
<p>&#160;&#160;&#160; 4、在Eclipse的Windows——&gt;Perference——&gt;General-&gt;Editors-&gt;File Associations   <br />中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”</p>
<p>&#160;</p>
<p>&#160;&#160;&#160; 5、安装完成，双击class文件，Eclipse将自动反编译了。</p>


<p>Related posts:<ol><li><a href='http://www.astesys.com/softdev/java/372.html' rel='bookmark' title='Permanent Link: eclipse 插件及技巧 整理一'>eclipse 插件及技巧 整理一</a></li>
<li><a href='http://www.astesys.com/rcnd/331.html' rel='bookmark' title='Permanent Link: Eclipse 数据库插件比较'>Eclipse 数据库插件比较</a></li>
<li><a href='http://www.astesys.com/softdev/java/624.html' rel='bookmark' title='Permanent Link: 通过java.net.URL类抓取某个网页的内容'>通过java.net.URL类抓取某个网页的内容</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.astesys.com/softdev/java/634.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Struts2+Spring+Hibernate整合入门详解</title>
		<link>http://www.astesys.com/softdev/java/633.html</link>
		<comments>http://www.astesys.com/softdev/java/633.html#comments</comments>
		<pubDate>Thu, 04 Feb 2010 04:56:44 +0000</pubDate>
		<dc:creator>xums</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Struts2]]></category>

		<guid isPermaLink="false">http://www.astesys.com/softdev/java/633.html</guid>
		<description><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
基本概念和典型实用例子。  
  
一、基本概念   
  
     Struts：作为基于 MVC 模式的 Web 应用最经典框架，两个项目Struts 和webwork已经集成，成为现在的Struts2。目前的最新版本是2.0.9（2007-7）。  
  
     Spring： 是一个轻型的容器，利用它可以使用一个外部 XML 配置文件方便地将对象连接在一起。每个对象都可以通过显示一个 JavaBean 属性收到一个到依赖对象的引用，留给您的简单任务就只是在一个 XML 配置文件中把它们连接好。  
  
     Hibernate 是一个纯 Java 的对象关系映射和持久性框架，它允许您用 XML 配置文件把普通 Java 对象映射到关系数据库表。使用 Hibernate 能够节约大量项目开发时间，因为整个 JDBC 层都由这个框架管理。这意味着您的应用程序的数据访问层位于 Hibernate 之上，完全是从底层数据模型中抽象出来的。   
  
     三种技术到目前已经比较成熟，而且他们都是免费的！让我们对三者集成进行一个初览（简单而不专业）：


Related posts:<ol><li><a href='http://www.astesys.com/softdev/java/629.html' rel='bookmark' title='Permanent Link: Struts 与 Spring, Hibernate集成的大概思路'>Struts 与 Spring, Hibernate集成的大概思路</a></li>
<li><a href='http://www.astesys.com/softdev/java/624.html' rel='bookmark' title='Permanent Link: 通过java.net.URL类抓取某个网页的内容'>通过java.net.URL类抓取某个网页的内容</a></li>
<li><a href='http://www.astesys.com/softdev/java/627.html' rel='bookmark' title='Permanent Link: Apache+Tomcat+Php+Mysql的集成'>Apache+Tomcat+Php+Mysql的集成</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
<p><span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="text-align: left; line-height: 18px; font-family: consolas, &#39;Courier New&#39;, courier, mono; font-size: 12px" class="Apple-style-span">
<ol style="border-bottom: rgb(209,215,220) 1px solid; border-left: rgb(209,215,220) 1px solid; padding-bottom: 2px; line-height: 1.4em; background-color: rgb(255,255,255); list-style-type: decimal; margin: 0px 0px 1px; padding-left: 0px; padding-right: 0px; color: rgb(43,145,175); font-size: 1em; border-top: rgb(209,215,220) 1px solid; border-right: rgb(209,215,220) 1px solid; padding-top: 2px" class="dp-j">
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: black">基本概念和典型实用例子。&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">一、基本概念&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; Struts：作为基于 MVC 模式的 Web 应用最经典框架，两个项目Struts 和webwork已经集成，成为现在的<span style="background-color: rgb(255,255,0); color: black" class="hilite1">Struts2</span>。目前的最新版本是<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">（</span><span style="color: rgb(192,0,0)" class="number">2007</span><span style="color: black">-</span><span style="color: rgb(192,0,0)" class="number">7</span><span style="color: black">）。&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; <span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>： 是一个轻型的容器，利用它可以使用一个外部 XML 配置文件方便地将对象连接在一起。每个对象都可以通过显示一个 JavaBean 属性收到一个到依赖对象的引用，留给您的简单任务就只是在一个 XML 配置文件中把它们连接好。&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; Hibernate 是一个纯 Java 的对象关系映射和持久性框架，它允许您用 XML 配置文件把普通 Java 对象映射到关系数据库表。使用 Hibernate 能够节约大量项目开发时间，因为整个 JDBC 层都由这个框架管理。这意味着您的应用程序的数据访问层位于 Hibernate 之上，完全是从底层数据模型中抽象出来的。&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; 三种技术到目前已经比较成熟，而且他们都是免费的！让我们对三者集成进行一个初览（简单而不专业）：&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; 我们用Struts实现从Web（网页，MVC中的View）到后台系统的映射（WebàAction），然后由<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>管理这些Action，把它们作为Bean和其他对象一起处理。这些Bean之间处理业务逻辑、数据、系统状态等，且它们被<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>统一管理，为了区分，就算大概包括MVC的MC部分吧。然后需要持久化的数据由<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>和Hibernate之间的接口交由Hibernate处理（这个属于持久层）。&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; 必须基础：只要Java基础，一点HTML知识、XML基础就可以了。本文的目的就是从零开始建立第一个Struts+<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>+Hibernate应用。即使它是最简单的，我们也希望初学者能够从中理解一些思想，其中也包括系统架构的设计思想。&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">二、环境搭建&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; 我们坚持免费才是硬道理，开源才是好事情，所以我们全部使用开源免费的工具和软件。如果使用MyEclipse，其中的工具将有助于简化下面演示的工程开发，但本文不用。&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; 所需软件包如下表：&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">序号&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> 包&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> 下载地址和文件（包）名&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> 说明&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(192,0,0)" class="number">1</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> JDK5.<span style="color: rgb(192,0,0)" class="number">0</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> http:<span style="color: rgb(0,130,0)" class="comment">//java.sun.com/javase/downloads/index.jsp</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> JDK5.<span style="color: rgb(192,0,0)" class="number">0</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(192,0,0)" class="number">2</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> Eclipse WTP&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> Eclipse IDE <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">for</span><span style="color: black"> Java EE Developers&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">下载All in One，这样不用自己下载其他插件&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> 包含网站开发的Eclipse，v3.<span style="color: rgb(192,0,0)" class="number">3</span><span style="color: black">，下载All in One&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(192,0,0)" class="number">3</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> HibernateSynchronizer-<span style="color: rgb(192,0,0)" class="number">3.1</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> https:<span style="color: rgb(0,130,0)" class="comment">//sourceforge.net/project/showfiles.php?group_id=99370</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> 帮助开发Hibernate应用的Eclipse插件&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(192,0,0)" class="number">4</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> Hibernate3&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> http:<span style="color: rgb(0,130,0)" class="comment">//sourceforge.net/project/showfiles.php?group_id=40712 à hibernate3所指示的包</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> Hibernate支持包&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(192,0,0)" class="number">5</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> http:<span style="color: rgb(0,130,0)" class="comment">//sourceforge.net/project/showfiles.php?group_id=73357</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;<span style="background-color: rgb(85,255,85); color: black" class="hilite2">spring</span>-framework-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">6</span><span style="color: black">-with-dependencies.zip&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(192,0,0)" class="number">6</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> SpringIDE（可选）&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> http:<span style="color: rgb(0,130,0)" class="comment">//springide.org/updatesite/ 包名如</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">springide_updatesite_2.<span style="color: rgb(192,0,0)" class="number">0</span><span style="color: black">.1_v200707300600.zip&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(192,0,0)" class="number">7</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> Struts&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> http:<span style="color: rgb(0,130,0)" class="comment">//struts.apache.org/download.cgi</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> 为了较全的例子和文档，建议下载&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">struts-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">-all.zip否则只下载lib：struts-</span><span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">-lib.zip&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(192,0,0)" class="number">8</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> Tomcat&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> http:<span style="color: rgb(0,130,0)" class="comment">//tomcat.apache.org？</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> 建议下载v5.<span style="color: rgb(192,0,0)" class="number">5</span><span style="color: black">以上版本，应用服务器（支持JSP等）Apache项目之一&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> MySQL&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> Hibernate演示需要&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; <span style="color: rgb(192,0,0)" class="number">1</span><span style="color: black">、下载了eclipse以后安装。在所安装的目录下有两个子目录plugins和features，这是两个放eclipse插件的目录，即可以通过拷贝需要的文件到这些目录里面，从而给eclipse添加新的功能。&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; <span style="color: rgb(192,0,0)" class="number">2</span><span style="color: black">、将第</span><span style="color: rgb(192,0,0)" class="number">3</span><span style="color: black">、</span><span style="color: rgb(192,0,0)" class="number">6</span><span style="color: black">的包解压，将其中的plugins目录直接复制到eclipse安装目录下，选择“全部”替换。&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; <span style="color: rgb(192,0,0)" class="number">3</span><span style="color: black">、运行eclipse，选择一个空目录作为工作区（WorkSpace），启动以后可以看到Welcome.html的欢迎界面。现在建立新工程FileàNewàProject，在打开的New Project窗口中选择WebàDynamic Web Project。输入Project name，在Target Runtime一项选择新建(New)，选择你所安装的Apache Tomcat，在弹出窗口输入相关信息（Tomcat安装目录等）。&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; 新建工程流程如下图。&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">工程结构如下：&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">其中我们要写的Java代码在Java Resource: src（以后直接称src）下，网站根目录内容在WebContent下，类所在根目录是WEB-INF/classes，Eclipse会自动将build/classes里面已经编译的类同步过去。&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">向WEB-INF下的lib目录添加如下所列的jar包。&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">（<span style="color: rgb(192,0,0)" class="number">1</span><span style="color: black">）这些包在下载解压后<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>，Struts，Hibernate的lib目录或者dist/module目录下面（如果不在，可以到网上google一把。列表中mysql-*.jar包是MySQL数据库的JDBC Driver）。也可以把所有lib和dist下的jar包拷贝过来（可以在系统复制这些jar包，然后到Eclipse里面选中WEB-INF里面的lib包，然后粘帖就可以了）。但要注意全拷贝可能会存在冲突，如struts*plugin.jar等包不能引入，否则不能运行。&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">（<span style="color: rgb(192,0,0)" class="number">2</span><span style="color: black">）这些Jar包是：&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">antlr-<span style="color: rgb(192,0,0)" class="number">2.7</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">2</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">cglib-nodep-<span style="color: rgb(192,0,0)" class="number">2</span><span style="color: black">.1_3.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">commons-beanutils-<span style="color: rgb(192,0,0)" class="number">1.6</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">commons-chain-<span style="color: rgb(192,0,0)" class="number">1.1</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">commons-collections-<span style="color: rgb(192,0,0)" class="number">2.1</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">1</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">commons-dbcp.jar&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">commons-digester.jar&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">commons-logging-<span style="color: rgb(192,0,0)" class="number">1.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">4</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">commons-logging-api-<span style="color: rgb(192,0,0)" class="number">1.1</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">commons-pool.jar&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">commons-validator-<span style="color: rgb(192,0,0)" class="number">1.3</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">0</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">dom4j-<span style="color: rgb(192,0,0)" class="number">1.6</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">1</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">el-api.jar&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">el-ri.jar&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">freemarker-<span style="color: rgb(192,0,0)" class="number">2.3</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">8</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">hibernate3.jar&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">jsf-api.jar&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">jta.jar&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">mysql-connector-java-<span style="color: rgb(192,0,0)" class="number">3.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">14</span><span style="color: black">-production-bin.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">ognl-<span style="color: rgb(192,0,0)" class="number">2.6</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">11</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">oro-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">8</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="background-color: rgb(85,255,85); color: black" class="hilite2">spring</span>-hibernate3.jar&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="background-color: rgb(85,255,85); color: black" class="hilite2">spring</span>.jar&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">struts-config.xml&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">struts-core-<span style="color: rgb(192,0,0)" class="number">1.3</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">5</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="background-color: rgb(255,255,0); color: black" class="hilite1">struts2</span>-codebehind-plugin-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="background-color: rgb(255,255,0); color: black" class="hilite1">struts2</span>-config-browser-plugin-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="background-color: rgb(255,255,0); color: black" class="hilite1">struts2</span>-core-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="background-color: rgb(255,255,0); color: black" class="hilite1">struts2</span>-jasperreports-plugin-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="background-color: rgb(255,255,0); color: black" class="hilite1">struts2</span>-jfreechart-plugin-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="background-color: rgb(255,255,0); color: black" class="hilite1">struts2</span>-jsf-plugin-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="background-color: rgb(255,255,0); color: black" class="hilite1">struts2</span>-pell-multipart-plugin-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="background-color: rgb(255,255,0); color: black" class="hilite1">struts2</span>-plexus-plugin-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="background-color: rgb(255,255,0); color: black" class="hilite1">struts2</span>-sitegraph-plugin-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="background-color: rgb(255,255,0); color: black" class="hilite1">struts2</span>-sitemesh-plugin-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="background-color: rgb(255,255,0); color: black" class="hilite1">struts2</span>-<span style="background-color: rgb(85,255,85); color: black" class="hilite2">spring</span>-plugin-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="background-color: rgb(255,255,0); color: black" class="hilite1">struts2</span>-struts1-plugin-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="background-color: rgb(255,255,0); color: black" class="hilite1">struts2</span>-tiles-plugin-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">9</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">tiles-api-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">4</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">tiles-core-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">4</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">tiles-jsp-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">4</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">xwork-<span style="color: rgb(192,0,0)" class="number">2.0</span><span style="color: black">.</span><span style="color: rgb(192,0,0)" class="number">4</span><span style="color: black">.jar&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">三、开始工作&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">在WebContent下建立index.jsp，建立方式如图。&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">index.jsp的内容如表，我们暂时不分析。&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&lt;%@ page contentType=<span style="color: blue" class="string">&quot;text/html; charset=UTF-8&quot;</span><span style="color: black"> %&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&lt;html&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; &lt;head&gt; &lt;title&gt;Example by Doer Liu<span style="color: rgb(100,100,100)" class="annotation">@UTStarcom</span><span style="color: black"> sz &lt;/title&gt;&lt;/head&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; &lt;body&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; This is my JSP page. &lt;br&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; &lt;form name=<span style="color: blue" class="string">&quot;userInfoForm&quot;</span><span style="color: black"> action=</span><span style="color: blue" class="string">&quot;login.do&quot;</span><span style="color: black"> method=</span><span style="color: blue" class="string">&quot;post&quot;</span><span style="color: black">&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; 用户名:&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; &lt;input name=<span style="color: blue" class="string">&quot;username&quot;</span><span style="color: black"> type=</span><span style="color: blue" class="string">&quot;text&quot;</span><span style="color: black"> /&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; 密码:&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; &lt;input name=<span style="color: blue" class="string">&quot;password&quot;</span><span style="color: black"> type=</span><span style="color: blue" class="string">&quot;password&quot;</span><span style="color: black">&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; &lt;input name=<span style="color: blue" class="string">&quot;sub&quot;</span><span style="color: black"> type=</span><span style="color: blue" class="string">&quot;submit&quot;</span><span style="color: black"> value=</span><span style="color: blue" class="string">&quot;增加&quot;</span><span style="color: black"> /&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; &lt;input name=<span style="color: blue" class="string">&quot;res&quot;</span><span style="color: black"> type=</span><span style="color: blue" class="string">&quot;reset&quot;</span><span style="color: black"> value=</span><span style="color: blue" class="string">&quot;重置&quot;</span><span style="color: black"> /&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; &lt;/form&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; &lt;/body&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&lt;/html&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">此时就可以运行该工程，忙了这么久，看看效果吧。&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">运行方式：右键点击index.jsp，选择Run/Debug AsàRun on Server，在弹出窗口中默认我们使用的Tomcat Server，点击finish完成。可以看到eclipse中内嵌的浏览器显示我们的网页。其中表单的输入在我们的工程中将得到输入数据（用户名和密码），这些数据会传给我们将要建立的Action处理。&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">现在来看看如何建立我们的Action。在src下新建一个<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">package</span><span style="color: black">（包）名为action用于保存响应Web请求的Action类。在action包下新建Action类LoginAction（action.LoginAction）如下，注意类的继承关系。&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">package</span><span style="color: black"> action;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> javax.servl, et.http.HttpServletRequest;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> javax.servlet.http.HttpServletResponse;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> org.apache.struts.action.ActionForm;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> org.apache.struts.action.ActionForward;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> org.apache.struts.action.ActionMapping;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> org.apache.struts.validator.DynaValidatorForm;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> org.springframework.web.struts.ActionSupport;&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">//我们继承<span style="background-color: rgb(85,255,85); color: black" class="hilite2">spring</span>提供的Action衍生类org.springframework.web.struts.ActionSupport</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span><span style="color: black">&#160;</span><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">class</span><span style="color: black"> LoginAction </span><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">extends</span><span style="color: black"> ActionSupport{&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span><span style="color: black"> ActionForward execute(&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ActionMapping mapping,&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ActionForm form,&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; HttpServletRequest request,&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; HttpServletResponse response) {&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">return</span><span style="color: black"> mapping.findForward(</span><span style="color: blue" class="string">&quot;success&quot;</span><span style="color: black">);&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; }&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">}&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">但是现在index.jsp的内容怎么和LoginAction的数据匹配呢，我们看到LoginAction的execute方法有一个属性ActionForm，于是我们建立一个类forms.UserInfoForm如下，继承ActionForm。&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">package</span><span style="color: black"> forms;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> org.apache.struts.action.ActionForm;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span><span style="color: black">&#160;</span><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">class</span><span style="color: black"> UserInfoForm </span><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">extends</span><span style="color: black"> ActionForm {&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">private</span><span style="color: black"> String username;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">private</span><span style="color: black"> String password;&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span><span style="color: black"> String getUsername() { </span><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">return</span><span style="color: black"> username; }&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span><span style="color: black">&#160;</span><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">void</span><span style="color: black"> setUsername(String username)&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; { <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">this</span><span style="color: black">.username = username; }&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span><span style="color: black"> String getPassword() { </span><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">return</span><span style="color: black"> password; }&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span><span style="color: black">&#160;</span><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">void</span><span style="color: black"> setPassword(String password)&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; { <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">this</span><span style="color: black">.password = password; }&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">}&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">有了两个头，又有了保持内容的类，现在看看我们如何用struts把他们联系起来吧。&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">现在需要在WEB-INF下建立文件struts-config.xml。其中form-beans定义了表单是如何映射的，这里用我们刚刚定义的forms.UserInfoForm。&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&lt;?xml version=”<span style="color: rgb(192,0,0)" class="number">1.0</span><span style="color: black">” encoding=</span><span style="color: blue" class="string">&quot;ISO-8859-1&quot;</span><span style="color: black">?&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&lt;!DOCTYPE struts-config PUBLIC&#160;&#160; <span style="color: blue" class="string">&quot;-//Apache Software Foundation//DTD Struts Configuration 1.1//EN&quot;</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: blue" class="string">&quot;http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd&quot;</span><span style="color: black">&gt;&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&lt;struts-config&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; &lt;form-beans&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160; &lt;form-bean name=<span style="color: blue" class="string">&quot;userInfoForm&quot;</span><span style="color: black"> type=</span><span style="color: blue" class="string">&quot;forms.UserInfoForm&quot;</span><span style="color: black">/&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; &lt;/form-beans&gt;&#160;&#160;&#160;&#160;&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; &lt;action-mappings&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160; &lt;action attribute=<span style="color: blue" class="string">&quot;userInfoForm&quot;</span><span style="color: black"> path=</span><span style="color: blue" class="string">&quot;/login&quot;</span><span style="color: black"> input=</span><span style="color: blue" class="string">&quot;/index.jsp&quot;</span><span style="color: black">&#160;</span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; type=</span><span style="color: blue" class="string">&quot;org.springframework.web.struts.DelegatingActionProxy&quot;</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; name=<span style="color: blue" class="string">&quot;userInfoForm&quot;</span><span style="color: black"> scope=</span><span style="color: blue" class="string">&quot;session&quot;</span><span style="color: black"> validate=</span><span style="color: blue" class="string">&quot;false&quot;</span><span style="color: black">&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;forward name=<span style="color: blue" class="string">&quot;success&quot;</span><span style="color: black"> path=</span><span style="color: blue" class="string">&quot;/success.html&quot;</span><span style="color: black">/&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160; &lt;/action&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; &lt;/action-mappings&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&lt;/struts-config&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">在&lt;action-mappings&gt;中定义了我们的Action。它的属性attribute指出Action的内容输入是我们自定义的ActionForm，path给Action赋予一个路径，input指明只接受index.jsp的输入，&lt;forward标签定义了当Action返回<span style="color: blue" class="string">&quot;success&quot;</span><span style="color: black">的时候，将定向到/success.html这个网页。 最重要的是type，它定义了这个处理这个请求的Action类，本来应该是我们自定义的LoginAction，但我们却用了<span style="background-color: rgb(85,255,85); color: black" class="hilite2">spring</span>的一个Action，为什么？因为我们要用<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>管理我们自定义的Action。看，struts和<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>在这里就开始连接起来了。&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">但还有两个问题，Struts和<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>又是如何知道对方的存在，如何沟通呢？<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>如何知道把控制权交给我们自定义的LoginAction呢？&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">我们先来解决第一个问题，web.xml是Tomcat这些应用服务器管理的，因此我们在这里将struts和<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>配置联系起来。这是整个web.xml。请看注释。&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&lt;?xml version=<span style="color: blue" class="string">&quot;1.0&quot;</span><span style="color: black"> encoding=</span><span style="color: blue" class="string">&quot;UTF-8&quot;</span><span style="color: black">?&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&lt;web-app version=<span style="color: blue" class="string">&quot;2.5&quot;</span><span style="color: black"> id=</span><span style="color: blue" class="string">&quot;WebApp&quot;</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; xmlns=<span style="color: blue" class="string">&quot;http://java.sun.com/xml/ns/javaee&quot;</span><span style="color: black">&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; xmlns:xsi=<span style="color: blue" class="string">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span><span style="color: black">&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; xsi:schemaLocation=&quot;http:<span style="color: rgb(0,130,0)" class="comment">//java.sun.com/xml/ns/javaee </span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160; http:<span style="color: rgb(0,130,0)" class="comment">//java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot;&gt;</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&lt;display-name&gt; <span style="background-color: rgb(255,255,0); color: black" class="hilite1">Struts2</span>+Spring2+Hibernate3 simple example by Doer Liu<span style="color: rgb(100,100,100)" class="annotation">@UTstarcom</span><span style="color: black">&lt;/display-name&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;!&#8211; filter就理解为一些对网页请求的过滤吧 &#8211;&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;!&#8211; encodingFilter是为了处理国际化，交由<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>处理，设置为UTF-<span style="color: rgb(192,0,0)" class="number">8</span><span style="color: black"> &#8211;&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;filter&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;filter-name&gt;encodingFilter&lt;/filter-name&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;filter-<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">class</span><span style="color: black">&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-</span><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">class</span><span style="color: black">&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;init-param&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;param-name&gt;encoding&lt;/param-name&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;param-value&gt;UTF-<span style="color: rgb(192,0,0)" class="number">8</span><span style="color: black">&lt;/param-value&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;/init-param&gt;&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;/filter&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;!&#8211; struts 是struts的filter，这个定义就将可以将请求交给struts过滤一番了 &#8211;&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;filter&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;filter-name&gt;struts&lt;/filter-name&gt; &lt;filter-<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">class</span><span style="color: black">&gt;org.apache.<span style="background-color: rgb(255,255,0); color: black" class="hilite1">struts2</span>.dispatcher.FilterDispatcher&lt;/filter-</span><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">class</span><span style="color: black">&gt;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;/filter&gt;&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&lt;!&#8211; 那么哪些请求交给struts过滤呢，这里包括 /struts2spring2hib3bydoer下和根目录/下的所有请求&#8211;&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;filter-mapping&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;filter-name&gt;struts&lt;/filter-name&gt;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"> &lt;url-pattern&gt;/struts2spring2hib3bydoer<span style="color: rgb(0,130,0)" class="comment">/*&lt;/url-pattern&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;url-pattern&gt;/*&lt;/url-pattern&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;/filter-mapping&gt; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;!&#8211; 定义一个监听器，处理整个WebContext，简单的理解为整个网站的上下文环境监听器吧 这个属于<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>&#8211;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;listener&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;listener-class&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; org.springframework.web.context.ContextLoaderListener</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/listener-class&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;/listener&gt; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&lt;!&#8211; servlet定义一个servlet为struts的ActionServlet &#8211;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; &lt;servlet&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; &lt;servlet-name&gt;doertest&lt;/servlet-name&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; &lt;servlet-class&gt;org.apache.struts.action.ActionServlet&lt;/servlet-class&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; &lt;/servlet&gt; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&lt;!&#8211; servlet-mapping将servlet和请求对应起来，这里是所有*.do的请求交由上面定义的doertest处理 &#8211;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; &lt;servlet-mapping&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; &lt;servlet-name&gt;doertest&lt;/servlet-name&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;url-pattern&gt;*.do&lt;/url-pattern&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; &lt;/servlet-mapping&gt; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&lt;!&#8211; 定义默认返回页，如输入http://127.0.0.1/那么根目录下的index.html或者其他文件就被请求 &#8211;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; &lt;welcome-file-list&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; &lt;welcome-file&gt;index.html&lt;/welcome-file&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; &lt;welcome-file&gt;index.htm&lt;/welcome-file&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; &lt;welcome-file&gt;default.html&lt;/welcome-file&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; &lt;welcome-file&gt;default.htm&lt;/welcome-file&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; &lt;welcome-file&gt;default.jsp&lt;/welcome-file&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; &lt;/welcome-file-list&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&lt;/web-app&gt; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">通过web.xml两者联系上了。现在它们各自还需要一些配置。</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">Struts在我们的例子里比较简单，在build/class下面（最终会被eclipse同步到网站的WEB-INF/classes下面）建立struts.xml：</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&lt;!DOCTYPE struts PUBLIC</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;-//Apache Software Foundation//DTD Struts Configuration 2.0//EN&quot;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;http://struts.apache.org/dtds/struts-2.0.dtd&quot;&gt; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&lt;struts&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; &lt;include file=&quot;struts-default.xml&quot; /&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&lt;/struts&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"><span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>的默认配置文件是WEB-INF/applicationContext.xml，目前其内容很简单，我们只是把struts的Bean放进来，如下：</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">映射的规则：bean的name属性必须等于struts-config.xml里面定义的action的path属性，class就是这个bean的类action.LoginAction。</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#160; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&lt;!DOCTYPE beans PUBLIC &quot;-//<span style="background-color: rgb(85,255,85); color: black" class="hilite2">SPRING</span>//DTD BEAN//EN&quot; &quot;http://www.springframework.org/dtd/<span style="background-color: rgb(85,255,85); color: black" class="hilite2">spring</span>-beans.dtd&quot;&gt;&#160;&#160; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&lt;beans&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;!&#8211; Action Bean , 对应的部分 struts-config.xml form-bean and action-mappings &#8211;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;bean name=&quot;/login&quot; class=&quot;action.LoginAction &quot; singleton=&quot;false&quot;&gt;&#160;&#160; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/property&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/bean&gt;&#160; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&lt;/beans&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">现在在WebContent下面建立success时重定向的目标success.html，方法和index.jsp类似，但选择THML类型，随便输入内容以便测试。这时候struts和<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>就简单的连接起来了。先停掉刚才运行起来的Tomcat，重新启动，运行index.jsp，点击网页中的按钮&lt;添加&gt;，看看有什么效果。</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">现在，然我们简略描述一下数据和请求的流程。</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">点击&lt;添加&gt;，index.jsp的这个表单发送的请求是login.do(&lt;form name=&quot;userInfoForm&quot; action=&quot;login.do&quot; method=&quot;post&quot;&gt;)，请求被传给后台，生成了doertest（处理*.do的请求）集合的一个servlet，然后传到path为/login的action，被<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>的org.springframework.web.struts.DelegatingActionProxy处理，该类找到name是/login的Bean，转交处理权，等待结果。这个Bean就是我们的action.LoginAction。我们的execute中返回一个forward是&quot;success&quot;对应的网页，就是success.html。所以……，你已经看到了，struts和<span style="background-color: rgb(85,255,85); color: black" class="hilite2">spring</span>已经联系起来了。OK！ </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">下面我们需要把hibernate整合进来了，本来考虑到例子的简单性，打算用更简单的类，但既然用三者整合，就是要有良好的设计。我们需要以下几个层次的设计：表现层，业务层，持久层。表现层就是网页；表现层和业务层之间的接口就是网页和action的接口，由struts处理了；业务层包括业务逻辑和事务管理等，由<span style="background-color: rgb(85,255,85); color: black" class="hilite2">Spring</span>管理，我们只是建立具体处理对象；业务层和持久层之间由数据访问对象DAO处理，持久层交给hibernate处理。贯穿这些层的是领域对象(domain object)，即表示现实世界的对象（base object），如订单对象，人物信息对象等等。现在看看我们需要的剩余设计结构。</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">业务层：放进包service</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">数据访问对象: 放进包dao</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">持久层：hibernate</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">领域对象：放进包bo</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">既然领域对象是最基本的对象，我们就得首先建立，本例中，可以借助HibernateSynchronizer生成：</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">首先在mysql中创建表</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">CREATE TABLE `userinfo` (&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; `id` int(11) primary key auto_increment,&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; `username` varchar(20) default NULL,&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; `Password` varchar(20) default NULL&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; )</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">在Eclipse中，建立hibernate的map文件：右键点击WEB-INF（或其他目录都可，后面会提到如何使用该文件），选择newàother，在弹出窗口中选择Hibernate Mapping File。在弹出窗口输入url，用户名和密码后点击Refresh，可以看到你选择的数据库的表，选中userinfo表。输入包bo，用来保存从数据库提取的领域对象。在Properties中将Id generator改为native。</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">HibernateSynchronizer将在WEB-INF下生成Uerinfo.hbm.xml文件。</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">右键点击该文件，选择Hibernate SynchronizeràSynchronize Files。将自动生成bo.base.BaseUserinfo和bo.Userinfo类。这两个就是领域对象。工具正好啊！</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">现在bo包里面的对象自动生成了。</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">下面建立dao包中对象dao.UserinfoDAO：</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">package dao;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">import org.springframework.orm.hibernate3.support.HibernateDaoSupport;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">import bo.Userinfo;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">//从HibernateDaoSupport继承，从而可以使用getHibernateTemplate().save保存数据。</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">public class UserinfoDAO extends HibernateDaoSupport { </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; public void save(Userinfo userinfo) {</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(&quot;saved!&quot;);</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; getHibernateTemplate().save(userinfo);</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; } </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">} </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">再建立service包中的业务对象，service.UserinfoService：</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">package service;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">import dao.UserinfoDAO;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">import bo.Userinfo;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">package service;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">public class LoginService {</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; private UserinfoDAO userinfoDAO; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; public UserinfoDAO getUserinfoDAO() {</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(&quot;shit&quot;);</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; return userinfoDAO;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; } </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; public void setUserinfoDAO(UserinfoDAO userinfoDAO) {</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(&quot;LoginService:setAdminDAO&quot;);</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; this.userinfoDAO = userinfoDAO;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; } </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; public void saveinfo(Userinfo userinfo) {</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //进行相关业务处理，比如validate之类的。</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160; userinfoDAO.save(userinfo);</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; }</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">}</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">好了，所有我们应该建立的对象都生成了，现在把hibernate整合进来再进行一些后续处理。</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">首先，在applicationContext.xml文件中加入必需的Bean定义，成为如下内容，注意其中注释。</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#160; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&lt;!DOCTYPE beans PUBLIC &quot;-//<span style="background-color: rgb(85,255,85); color: black" class="hilite2">SPRING</span>//DTD BEAN//EN&quot; &quot;http://www.springframework.org/dtd/<span style="background-color: rgb(85,255,85); color: black" class="hilite2">spring</span>-beans.dtd&quot;&gt;&#160;&#160; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&lt;beans&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;!&#8211; Action Bean , 对应的部分 struts-config.xml form-bean and action-mappings &#8211;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;bean name=&quot;/login&quot; class=&quot;action.LoginAction&quot; singleton=&quot;false&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;!&#8211; property是该bean的属性，如下面的property，在类LoginAction 中必有字段定义LoginService loginService;和getLoginService()以及setLoginService方法&#8211;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;property name=&quot;loginService&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; &lt;ref bean=&quot;loginService&quot; /&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/property&gt;&#160; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/bean&gt;&#160; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;!&#8211; 定义DBCP的数据库连接属性，该数据源会被hibernate使用，DBCP是连接池开源包，其中的url,username,password需要替换成你的数据库访问属性 &#8211;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;bean id=&quot;dataSource&quot; class=&quot;org.apache.commons.dbcp.BasicDataSource&quot; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; destroy-method=&quot;close&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;property name=&quot;driverClassName&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; &lt;value&gt;com.mysql.jdbc.Driver&lt;/value&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/property&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;property name=&quot;url&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; &lt;value&gt;jdbc:mysql://localhost/mysql&lt;/value&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/property&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;property name=&quot;username&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; &lt;value&gt;root&lt;/value&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/property&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;property name=&quot;password&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; &lt;value&gt;doerliu&lt;/value&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/property&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;/bean&gt; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;!&#8211; 配置sessionFactory, 为Hibernate配置属性&#160; &#8211;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;bean id=&quot;sessionFactory&quot; class=&quot;org.springframework</span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .orm.hibernate3.LocalSessionFactoryBean&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;property name=&quot;dataSource&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; &lt;ref local=&quot;dataSource&quot; /&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/property&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;property name=&quot;mappingResources&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; &lt;list&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; &lt;!—Hibernate的map 文件在这里配置了，注意文件的相对位置。 &#8211;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; &lt;value&gt;../Userinfo.hbm.xml&lt;/value&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; &lt;/list&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/property&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;property name=&quot;hibernateProperties&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; &lt;props&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; &lt;prop key=&quot;hibernate.dialect&quot;&gt;org.hibernate.dialect.MySQLDialect&lt;/prop&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; &lt;prop key=&quot;hibernate.show_sql&quot;&gt;true&lt;/prop&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; &lt;/props&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/property&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;/bean&gt; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;!&#8211; 业务层的事务管理由该bean管理&#8211;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;bean id=&quot;transactionManager&quot; class=&quot;org.springframework</span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .orm.hibernate3.HibernateTransactionManager&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;property name=&quot;sessionFactory&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; &lt;ref local=&quot;sessionFactory&quot; /&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/property&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;/bean&gt; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;!&#8211; 事务处理环境（代理）配置，为业务处理LoginService定义一个事务处理*****&#8211;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;bean id=&quot;userDAOProxy&quot; class=&quot;org.springframework.transaction.interceptor.TransactionProxyFactoryBean&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;property name=&quot;transactionManager&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; &lt;ref bean=&quot;transactionManager&quot; /&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/property&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;property name=&quot;target&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; &lt;ref local=&quot;loginService&quot; /&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/property&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;property name=&quot;transactionAttributes&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; &lt;props&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; &lt;prop key=&quot;save*&quot;&gt;PROPAGATION_REQUIRED&lt;/prop&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; &lt;prop key=&quot;get*&quot;&gt;PROPAGATION_REQUIRED,readOnly&lt;/prop&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160;&#160; &lt;prop key=&quot;is*&quot;&gt;PROPAGATION_REQUIRED,readOnly&lt;/prop&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; &lt;/props&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/property&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;/bean&gt; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;!&#8211; 业务处理Bean定义 &#8211;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;bean id=&quot;loginService&quot; class=&quot;service.LoginService&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;property name=&quot;userinfoDAO&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;&#160; &lt;ref bean=&quot;userinfoDAO&quot; /&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;/property&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;/bean&gt; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;!&#8211; 数据访问对象的Bean &#8211;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;bean id=&quot;userinfoDAO&quot; class=&quot;dao.UserinfoDAO&quot;&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160; &lt;property name=&quot;sessionFactory&quot;&gt;&lt;ref local=&quot;sessionFactory&quot;/&gt;&lt;/property&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> &lt;/bean&gt; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&lt;/beans&gt;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">&#160;</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">最后，LoginAction可以处理请求并和业务层进行交流了。因此需要增加实质性内容：</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">package action; </span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">/* @sample for training.</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> * @author doer.liu@utstarcom</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> * @date 2007-7-30</span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"></span>&#160;</span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment"> */</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> javax.servlet.http.HttpServletRequest;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> javax.servlet.http.HttpServletResponse;&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> org.apache.struts.action.ActionForm;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> org.apache.struts.action.ActionForward;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> org.apache.struts.action.ActionMapping;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> org.springframework.web.struts.ActionSupport;&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> bo.Userinfo;&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> forms.UserInfoForm;&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">import</span><span style="color: black"> service.LoginService;&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(0,130,0)" class="comment">//我们继承<span style="background-color: rgb(85,255,85); color: black" class="hilite2">spring</span>提供的Action衍生类org.springframework.web.struts.ActionSupport</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span><span style="color: black">&#160;</span><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">class</span><span style="color: black"> LoginAction </span><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">extends</span><span style="color: black"> ActionSupport {&#160;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; LoginService loginService;&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span><span style="color: black"> ActionForward execute(ActionMapping mapping, ActionForm form,&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; HttpServletRequest request, HttpServletResponse response) {&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; UserInfoForm userInfoForm = (UserInfoForm) form;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String username = userInfoForm.getUsername();&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String password = userInfoForm.getPassword();&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Userinfo userinfo = <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">new</span><span style="color: black"> Userinfo();&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; userinfo.setUsername(username);&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; userinfo.setPassword(password);&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; loginService.saveinfo(userinfo);<span style="color: rgb(0,130,0)" class="comment">// 保存前台的数据，插入数据库</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">return</span><span style="color: black"> mapping.findForward(</span><span style="color: blue" class="string">&quot;success&quot;</span><span style="color: black">); </span><span style="color: rgb(0,130,0)" class="comment">//返回页。</span><span style="color: black">&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; }&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span><span style="color: black"> LoginService getLoginService() {&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">return</span><span style="color: black"> loginService;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; }&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span><span style="color: black">&#160;</span><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">void</span><span style="color: black"> setLoginService(LoginService loginService) {&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(<span style="color: blue" class="string">&quot;setLoginService=&quot;</span><span style="color: black"> + loginService);&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">this</span><span style="color: black">.loginService = loginService;&#160; </span></span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160;&#160;&#160; }&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">}&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160;&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&#160; </span></li>
<li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">Ok！整个流程到此就走通了。运行看看吧。还有什么说的呢，动手开始吧，在此基础上不断修改测试，再参考相关文档，一切都将越来越简单！——有问题，看日志！&#160; </span></li>
</ol>
<p>   </span></span></p>


<p>Related posts:<ol><li><a href='http://www.astesys.com/softdev/java/629.html' rel='bookmark' title='Permanent Link: Struts 与 Spring, Hibernate集成的大概思路'>Struts 与 Spring, Hibernate集成的大概思路</a></li>
<li><a href='http://www.astesys.com/softdev/java/624.html' rel='bookmark' title='Permanent Link: 通过java.net.URL类抓取某个网页的内容'>通过java.net.URL类抓取某个网页的内容</a></li>
<li><a href='http://www.astesys.com/softdev/java/627.html' rel='bookmark' title='Permanent Link: Apache+Tomcat+Php+Mysql的集成'>Apache+Tomcat+Php+Mysql的集成</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.astesys.com/softdev/java/633.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Struts 与 Spring, Hibernate集成的大概思路</title>
		<link>http://www.astesys.com/softdev/java/629.html</link>
		<comments>http://www.astesys.com/softdev/java/629.html#comments</comments>
		<pubDate>Fri, 29 Jan 2010 04:57:18 +0000</pubDate>
		<dc:creator>xums</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Struts]]></category>

		<guid isPermaLink="false">http://www.astesys.com/softdev/java/629.html</guid>
		<description><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
这篇文章是笔者在再次读了夏昕的《Spring Guide》后的一些总结。由于本人最熟悉的是Struts，而对Spring、Hibernate还没有很多的实践经验，所以虽然这篇文章讲的是三者的集成，但主要还是以Struts为中心。
    首先看一下Struts与Spring的集成。
    首先看一下在struts-config.xml中需要做的改动，最开始是加入插件声明：


Related posts:<ol><li><a href='http://www.astesys.com/softdev/java/633.html' rel='bookmark' title='Permanent Link: Struts2+Spring+Hibernate整合入门详解'>Struts2+Spring+Hibernate整合入门详解</a></li>
<li><a href='http://www.astesys.com/softdev/java/8.html' rel='bookmark' title='Permanent Link: 初学者如何学习J2SE直到J2EE相关进阶视频点评'>初学者如何学习J2SE直到J2EE相关进阶视频点评</a></li>
<li><a href='http://www.astesys.com/softdev/java/628.html' rel='bookmark' title='Permanent Link: 一个程序员的多年珍藏(1月23日最新更新)'>一个程序员的多年珍藏(1月23日最新更新)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
<p>这篇文章是笔者在再次读了夏昕的《Spring Guide》后的一些总结。由于本人最熟悉的是Struts，而对Spring、Hibernate还没有很多的实践经验，所以虽然这篇文章讲的是三者的集成，但主要还是以Struts为中心。   <br />&#160;&#160;&#160; 首先看一下Struts与Spring的集成。    <br />&#160;&#160;&#160; 首先看一下在struts-config.xml中需要做的改动，最开始是加入插件声明：</p>
<p>Java代码</p>
<ol>
<li>&lt;struts-config&gt;&#160;&#160; </li>
<li>&lt;plug-in className=&quot;org.springframework.web.struts.ContextLoaderPlugIn&quot;&gt;&#160;&#160; </li>
<li>&lt;set-property property=&quot;contextConfigLocation&quot; value=&quot;/WEB-INF/applicationContext.xml&quot; /&gt;&#160;&#160; </li>
<li>&lt;/plug-in&gt;&#160;&#160; </li>
<li>&lt;/struts-config&gt;&#160;&#160; </li>
</ol>
<p>&#160;&#160;&#160; 还有一个需要在Struts配置文件中改的是它的ActionMapping部分，这个在后面再说。   <br />&#160;&#160;&#160; 事实上Struts中加入Spring并不是很复杂，最重要的是我们需要清楚系统是不是一定要Spring，即Spring的所谓依赖注入等特性对开发的意义是不是要大于使用Spring后增加的开发成本。    <br />&#160;&#160;&#160; 下面用图来说明Struts与Spring结合后的程序运行基本流程：</p>
<p>&#160;</p>
<p><a href="http://www.astesys.com/wp-content/uploads/2010/01/a5cdf53321d53f35bd46ad075fbacfd1.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="a5cdf533-21d5-3f35-bd46-ad075fbacfd1" border="0" alt="a5cdf533-21d5-3f35-bd46-ad075fbacfd1" src="http://www.astesys.com/wp-content/uploads/2010/01/a5cdf53321d53f35bd46ad075fbacfd1_thumb.jpg" width="574" height="776" /></a> </p>
<p>&#160;</p>
<p>&#160;&#160;&#160; 如上所示，Struts与Spring集成最重要的一点就是改变struts-config.xml中的Action-Mapping设置，在进入Struts的Action之前，Spring就获得了控制权。    <br />Spring和Struts集成的部分就先说到这里。    <br />&#160;&#160;&#160; 有关Struts和Hibernate的集成，内容不是很复杂，我归纳了以下几个要点：    <br />&#160;&#160;&#160; 1、Hibernate-Context.xml    <br />&#160;&#160;&#160; 这个文件的&lt;bean&gt;项中需要设定SessionFactory属性，Spring已经整合了SessionFactory设置，所以无需hibernate.cfg.xml再设了。同时，这个项中也可以设定映射文件.hbm.xml的列表。    <br />&#160;&#160;&#160; 2、DAO继承HibernateDaoSupport，以调用其函数    <br />&#160;&#160;&#160; HibnernateDaoSupport实现了HibernateTemplate与SessionFactory的关联。HibernateTemplate（用HibnernateDaoSupport里的getHibernateTemplate()可以获得）对Hibernate Session进行了封装，可省去获得Session实例、事务启动与提交/回滚以及异常处理等一系列步骤，所以非常简单。    <br />&#160;&#160;&#160; 上面从两个方面讲了Struts、Spring和Hibernate三者的集成，最后简单归纳一下：    <br />&#160;&#160;&#160; 通过修改Struts的配置文件，Spring得以获得对Struts中Action的控制权，同时也将Spring的特性加入了Struts。而与Hibernate结合以后，通过利用上述的Spring特征，简化了数据库操作。</p>


<p>Related posts:<ol><li><a href='http://www.astesys.com/softdev/java/633.html' rel='bookmark' title='Permanent Link: Struts2+Spring+Hibernate整合入门详解'>Struts2+Spring+Hibernate整合入门详解</a></li>
<li><a href='http://www.astesys.com/softdev/java/8.html' rel='bookmark' title='Permanent Link: 初学者如何学习J2SE直到J2EE相关进阶视频点评'>初学者如何学习J2SE直到J2EE相关进阶视频点评</a></li>
<li><a href='http://www.astesys.com/softdev/java/628.html' rel='bookmark' title='Permanent Link: 一个程序员的多年珍藏(1月23日最新更新)'>一个程序员的多年珍藏(1月23日最新更新)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.astesys.com/softdev/java/629.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个程序员的多年珍藏(1月23日最新更新)</title>
		<link>http://www.astesys.com/softdev/java/628.html</link>
		<comments>http://www.astesys.com/softdev/java/628.html#comments</comments>
		<pubDate>Fri, 29 Jan 2010 04:47:49 +0000</pubDate>
		<dc:creator>xums</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[电子书]]></category>

		<guid isPermaLink="false">http://www.astesys.com/softdev/java/628.html</guid>
		<description><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
程序员珍藏的东西会是什么？呵呵，除了平时写的代码，就是那些百看不厌的电子书了。
昨天很郁闷，我用了5年的移动硬盘，莫名奇妙的坏掉了。里面40G的资料全部报销了。
为了不再重蹈覆辙，我决定把重要的电子书都放到网络硬盘上去备份。索性将这些资料的下载方式公布出来，与大家分享，一定会有你想要的！
下载的兄弟注意了，点击下载后，可以在url中看到后缀名：），如果把后缀名改错了就看不了了，所有的资料都有人下载过了，应该都能看。


Related posts:<ol><li><a href='http://www.astesys.com/softdev/java/8.html' rel='bookmark' title='Permanent Link: 初学者如何学习J2SE直到J2EE相关进阶视频点评'>初学者如何学习J2SE直到J2EE相关进阶视频点评</a></li>
<li><a href='http://www.astesys.com/softdev/java/624.html' rel='bookmark' title='Permanent Link: 通过java.net.URL类抓取某个网页的内容'>通过java.net.URL类抓取某个网页的内容</a></li>
<li><a href='http://www.astesys.com/website/wordpress/274.html' rel='bookmark' title='Permanent Link: 如何在WORDPRESS中使代码高亮'>如何在WORDPRESS中使代码高亮</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
<p>程序员珍藏的东西会是什么？呵呵，除了平时写的代码，就是那些百看不厌的电子书了。   <br />昨天很郁闷，我用了5年的移动硬盘，莫名奇妙的坏掉了。里面40G的资料全部报销了。    <br />为了不再重蹈覆辙，我决定把重要的电子书都放到网络硬盘上去备份。索性将这些资料的下载方式公布出来，与大家分享，一定会有你想要的！    <br />下载的兄弟注意了，点击下载后，可以在url中看到后缀名：），如果把后缀名改错了就看不了了，所有的资料都有人下载过了，应该都能看。    <br />Python相关的资料还可以看：<a href="http://jythoner.javaeye.com/blog/569987">http://jythoner.javaeye.com/blog/569987</a>    <br /><strong>新书区</strong>    <br />Python源码剖析：<a href="http://www.xun6.com/file/041b1c603/Python%E6%BA%90%E7%A0%81%E5%89%96%E6%9E%90.chm.html">下載文件 Python源码剖析.chm (670.21 KB)</a>    <br />Python黑客：<a href="http://www.xun6.com/file/517dd84c3/Gray+Hat+Python+Python+Programming+for+Hackers+and+Reverse+Engineers.pdf.html">下載文件 Gray Hat Python Python Programming for Hackers and Reverse Engineers.pdf (3.30 MB)</a>    <br />上一本书的源码：<a href="http://www.xun6.com/file/2eebd8513/ghpython_src.zip.html">下載文件 ghpython_src.zip (606.56 KB)</a>    <br />php5手册：<a href="http://www.xun6.com/file/802d7a2e3/php5%E6%89%8B%E5%86%8C.chm.html">下載文件 php5手册.chm (5.70 MB)</a>    <br />Google Adsense的秘密：<a href="http://www.xun6.com/file/fce52ded3/%E3%80%8AGoogle+Adsense%E7%9A%84%E7%A7%98%E5%AF%86%E3%80%8B%E4%B8%AD%E6%96%87%E7%89%88.pdf.html">下載文件 《Google Adsense的秘密》中文版.pdf (905.51 KB)</a>    <br />《Google_Cash》快速致富手册，主要讲如何利用Google Adwords网赚：<a href="http://www.xun6.com/file/5bb0620d3/%E3%80%8AGoogle_Cash%E3%80%8B%E5%BF%AB%E9%80%9F%E8%87%B4%E5%AF%8C%E6%89%8B%E5%86%8C.pdf.html">下載文件 《Google_Cash》快速致富手册.pdf (2.23 MB)</a>    <br />Google cash补充，Day job killer中文版：<a href="http://www.xun6.com/file/49fb53915/%E8%B7%9F%E6%89%93%E5%B7%A5%E7%94%9F%E6%B6%AF%E8%AF%B4%E5%86%8D%E8%A7%81.pdf.html">下載文件 跟打工生涯说再见.pdf (749.96 KB)</a>    <br /><strong>Java</strong>    <br />Java API 1.6中文版：<a href="http://www.xun6.com/file/dd30a9f20/JDK_API_1_6_zh_CN.CHM.html">下載文件 JDK API 1.6.0 zh_CN.CHM (35.12 MB)</a>    <br /><a href="http://www.xun6.com/file/85212c724/%E3%80%8Ajava%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3%E3%80%8B%E7%AC%AC%E4%B8%89%E7%89%88+%E7%AC%AC%E5%9B%9B%E7%89%88%EF%BC%88%E5%AE%8C%E6%95%B4%E7%89%88%E7%94%B5%E5%AD%90%E4%B9%A6+%E4%B9%A0%E9%A2%98%E7%AD%94%E6%A1%88%EF%BC%89.zip.html">下載文件 《java编程思想》第三版 第四版包括习题答案(8.92 MB)</a>    <br /><a href="http://www.xun6.com/file/0e1604320/Java+Collections.pdf.html">下載文件 Java Collections.pdf (1.33 MB)</a>    <br /><a href="http://www.xun6.com/file/c633efc20/Java_Collections-src.zip.html">下載文件 Java_Collections-src.zip (150.21 KB)</a>    <br /><a href="http://www.xun6.com/file/45b507320/Java+IO.chm.html">下載文件 Java IO.chm (2.76 MB)</a>    <br /><a href="http://www.xun6.com/file/db5e8fd20/Java+NIO.pdf.html">下載文件 Java NIO.pdf (1.40 MB)</a>    <br /><a href="http://www.xun6.com/file/bcbbd7220/IO.gif.html">下載文件 IO.gif (36.00 KB)</a>    <br /><a href="http://www.xun6.com/file/0772846d9/JDBC+Recipes+A+Problem+Solution+Approach.pdf.html">下載文件 JDBC Recipes A Problem Solution Approach.pdf (5.23 MB)</a>    <br /><a href="http://www.xun6.com/file/f41011d29/Java+Network+Programming.chm.html">下載文件 Java Network Programming.chm (1.97 MB)</a>    <br /><a href="http://www.xun6.com/file/d32bad899/Servlets+and+JavaServer+Pages+The+J2EE+Technology+Web+Tier.chm.html">下載文件 Servlets and JavaServer Pages The J2EE Tier.pdf&#160; (4.73 MB)</a>    <br />英文版：<a href="http://www.xun6.com/file/79cedf114/Java.Threads.3rd.Edition.chm.html">下載文件 Java.Threads.3rd.Edition.chm (685.45 KB)</a>    <br />中文版：<a href="http://www.xun6.com/file/3b591cc24/java%E7%BA%BF%E7%A8%8B.pdf.html">下載文件 java线程.pdf (20.26 MB)</a>    <br />Java与模式绝对高清版：<a href="http://www.xun6.com/file/53bb34d14/Java%E4%B8%8E%E6%A8%A1%E5%BC%8F.pdf.html">下載文件 Java与模式.pdf (39.64 MB)</a>    <br />为什么要看上面的那些书？请看我以前<strong>转</strong>的帖子：Java 推荐读物与源代码阅读：<a href="http://jythoner.javaeye.com/blog/311434">http://jythoner.javaeye.com/blog/311434</a>    <br />Java程序员必备的书籍，比API更有用：<a href="http://www.xun6.com/file/1c68dec20/The+Java+Developers+Almanac+1.4.chm.html">下載文件 The Java Developers Almanac 1.4.chm (679.90 KB)</a>    <br />找工作必备：<a href="http://www.xun6.com/file/54b3c1d19/125%E6%9D%A1%E5%B8%B8%E8%A7%81%E7%9A%84java%E9%9D%A2%E8%AF%95%E7%AC%94%E8%AF%95%E9%A2%98%E5%A4%A7%E6%B1%87%E6%80%BB.pdf.html">下載文件 125条常见的java面试笔试题大汇总.pdf&#160; (95.17 KB)</a>    <br />一本Java实现的数据结构书籍：<a href="http://www.xun6.com/file/eda7caf14/Java%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.pdf.html">下載文件 Java数据结构与算法.pdf (25.35 MB)</a>    <br />学Struts,Hibernate,Spring，如果不懂反射的原理，就不用谈了：<a href="http://www.xun6.com/file/19cce65d9/Java+Reflection+In+Action.pdf.html">下載文件 Java Reflection In Action.pdf (1.70 MB)</a>    <br />JMX，Jboss的基础，jdk5后被纳入进来：<a href="http://www.xun6.com/file/644390b99/JMX+In+Action.pdf.html">下載文件 JMX In Action.pdf (4.76 MB)</a>    <br />Junit绝对经典书籍：<a href="http://www.xun6.com/file/18dec5c14/Junit+in+action.pdf.html">下載文件 Junit in action.pdf (15.64 MB)</a>    <br />一本专门讲jdk1.5新特性的书，英文版：<a href="http://www.xun6.com/file/fb8517114/Java+1.5+Tiger+A+Developer%27s+Notebook.chm.html">下載文件 Java 1.5 Tiger A Developer&#8217;s Notebook.chm(411.57 KB)</a>    <br />中文版：<a href="http://www.xun6.com/file/734cdbb14/Java+1.5+Tiger+A+Developer%27s+Notebook.pdf.html">下載文件 Java 1.5 Tiger A Developer&#8217;s Notebook.pdf (7.23 MB)</a>    <br />源代码：<a href="http://www.xun6.com/file/3570a2d14/Java+1.5+Tiger+A+Developer%27s+Notebook.zip.html">下載文件 Java 1.5 Tiger A Developer&#8217;s Notebook.zip (38.18 KB)</a>    <br /><a href="http://www.xun6.com/file/c79fe8eb4/Java%E6%9E%81%E9%99%90%E7%BC%96%E7%A8%8B.pdf.html">下載文件 Java极限编程.pdf (23.96 MB)</a>    <br /><a href="http://www.xun6.com/file/b42ff4854/uml+distilled.chm.html">下載文件 uml distilled.chm (1.52 MB)</a>    <br /><a href="http://www.xun6.com/file/c09734314/Expert+One-on-One+J2EE+Design+and+Development.chm.html">下載文件 Expert One-on-One J2EE Design and Development.chm (10.66 MB)</a>    <br /><a href="http://www.xun6.com/file/feb057484/%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91.pdf.html">下載文件 测试驱动开发.pdf (6.89 MB)</a>    <br />如果不知道上面4本书的作者，那么基本上你的Java算白学了    <br />Ant手册：<a href="http://www.xun6.com/file/bc02198c9/Apache+Ant+Manual+1.7.chm.html">下載文件 Apache Ant Manual 1.7.chm (949.48 KB)</a>    <br />英文版：<a href="http://www.xun6.com/file/4c7f41e84/UML+for+Java+Programmers.pdf.html">下載文件 UML for Java Programmers.pdf (1.77 MB)</a>    <br />中文版：<a href="http://www.xun6.com/file/3b1f16c44/UML+for+Java+Programmers%E4%B8%AD%E6%96%87%E7%89%88.pdf.html">下載文件 UML for Java Programmers中文版.pdf (2.51 MB)</a>    <br />源代码：<a href="http://www.xun6.com/file/af2f88874/UML+for+Java+Programmers.rar.html">下載文件 UML for Java Programmers.rar (465.36 KB)</a>    <br /><a href="http://www.xun6.com/file/8163fe8b4/Java%E5%AE%9E%E7%94%A8%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97.pdf.html">下載文件 Java实用系统开发指南.pdf (57.82 MB)</a>    <br /><a href="http://www.xun6.com/file/892dbbb14/JAVA%E4%BC%98%E5%8C%96%E7%BC%96%E7%A8%8B.pdf.html">下載文件 JAVA优化编程.pdf (13.58 MB)</a>    <br /><a href="http://www.xun6.com/file/612e4b414/Java+and+XML%28%E8%8B%B1%E6%96%87%E7%AC%AC%E4%B8%89%E7%89%88%29.chm.html">下載文件 Java and XML(英文第三版).chm (3.79 MB)</a>    <br /><a href="http://www.xun6.com/file/df9430d14/Apress.Pro.XML.Development.with.Java.Technology.Sep.2006.pdf.html">下載文件 Apress.Pro.XML.Development.with.Java.Technology.pdf (12.83 MB)</a>    <br /><strong>Eclipse插件开发</strong>    <br />一个高手推荐的4本必读书：    <br />中文版：<a href="http://www.xun6.com/file/7c9bff314/Contributing+to+Eclipse+Principles%2C+Patterns%2C+and+Plug-Ins.pdf.html">下載文件 Contributing to Eclipse Principles, Patterns and PlugIns.pdf (23.29 MB)</a>    <br />英文版：<a href="http://www.xun6.com/file/39fb07b14/Contributing+to+Eclipse+Principles%2C+Patterns%2C+and+Plug-Ins.chm.html">下載文件 Contributing to Eclipse Principles, Patt &#8230; (4.93 MB)</a>    <br /><a href="http://www.xun6.com/file/8eac76614/Eclipse+Building+Commercial-Quality+Plug-ins%2C+Second+Edition.chm.html">下載文件 Eclipse Building Commercial-Quality Plug-ins.chm (20.11 MB)</a>    <br /><a href="http://www.xun6.com/file/a45c30214/Eclipse+Modeling+Framework.chm.html">下載文件 Eclipse Modeling Framework.chm (3.20 MB)</a>    <br /><a href="http://www.xun6.com/file/2a2e18b14/Eclipse+Rich+Client+Platform+Designing+Coding+and+Packaging+Java+Applications.chm.html">下載文件 Eclipse Rich Client Platform Designing Coding and Packaging Java Applications.chm(4.90 MB)</a>    <br /><a href="http://www.xun6.com/file/3602e1094/SWT-A+Developer%27s+Note+Book.chm.html">下載文件 SWT-A Developer&#8217;s Note Book.chm (1.53 MB)</a>    <br />API：<a href="http://www.xun6.com/file/0577c0c45/swt+jface+API.pdf.html">下載文件 swt jface API.pdf (7.59 MB)</a>    <br /><strong>Linux</strong>    <br />中国Linuxer应该没人不知道鸟哥，这本书是基础版与网络版的合集：<a href="http://www.xun6.com/file/8ee22ff20/%E9%B8%9F%E5%93%A5%E7%9A%84Linux%E7%A7%81%E6%88%BF%E8%8F%9C.pdf.html">下載文件 鸟哥的Linux私房菜.pdf (36.43 MB)</a>    <br />命令大全，支持查找：<a href="http://www.xun6.com/file/48c2bb620/Linux%E5%91%BD%E4%BB%A4%E5%A4%A7%E5%85%A8%28%E4%BF%AE%E6%94%B9%E7%89%88%29.chm.html">下載文件 Linux命令大全(修改版).chm (345.84 KB)</a>    <br />无意间发现的，里面记载了很多实用的命令：<a href="http://www.xun6.com/file/b4d6ff920/Unix+Toolbox.pdf.html">下載文件 Unix Toolbox.pdf (350.31 KB)</a>    <br />学习shell编程必读，里面包括一份详细的学习笔记：<a href="http://www.xun6.com/file/51ee47120/LINUX%E4%B8%8EUNIX+SHELL%E7%BC%96%E7%A8%8B%E6%8C%87%E5%8D%97.zip.html">下載文件 LINUX与UNIX SHELL编程指南.zip (19.22 MB)</a>    <br />Sed和Awk唯一的书：<a href="http://www.xun6.com/file/6c03bea12/Sed+and+Awk.pdf.html">下載文件 Sed and Awk.pdf 中文版(6.89 MB)</a>    <br /><a href="http://www.xun6.com/file/e533c8720/AWK%E5%8D%95%E8%A1%8C%E8%84%9A%E6%9C%AC%E5%BF%AB%E9%80%9F%E5%8F%82%E8%80%83.doc.html">下載文件 AWK单行脚本快速参考.doc (52.50 KB)</a>    <br /><a href="http://www.xun6.com/file/a0b409420/SED%E5%8D%95%E8%A1%8C%E8%84%9A%E6%9C%AC%E5%BF%AB%E9%80%9F%E5%8F%82%E8%80%83.doc.html">下載文件 SED单行脚本快速参考.doc (91.00 KB)</a>    <br />一张RE图表：<a href="http://www.xun6.com/file/6a177db20/regular-expressions-cheat-sheet-v2.pdf.html">下載文件 regular-expressions-cheat-sheet-v2.pdf (647.55 KB)</a>    <br />Linux+认证书籍：<a href="http://www.xun6.com/file/0238b6f54/McGraw.Hill.Linux.plus.Certification.Study.Guide.Aug.2007.pdf.html">下載文件 McGraw.Hill.Linux.plus.Certification.Study Guide.pdf (28.60 MB)</a>    <br /><a href="http://www.xun6.com/file/e19fbc824/O%27Reilly.Bash.Cookbook.pdf.html">下載文件 O&#8217;Reilly.Bash.Cookbook.pdf (3.16 MB)</a>    <br /><a href="http://www.xun6.com/file/1ed458714/A+Practical+Guide+to+Linux+Commands%2C+Editors%2C+and+Shell+Programming.chm.html">下載文件 A Practical Guide to Linux Commands, Edi &#8230; (3.61 MB)</a>    <br /><strong>Oracle</strong>    <br />Oracle9i OCP官方培训教程：    <br /><a href="http://www.xun6.com/file/713146f16/sql.zip.html">下載文件 sql.zip (3.34 MB)</a>    <br /><a href="http://www.xun6.com/file/d38097216/dba1.zip.html">下載文件 dba1.zip (1.78 MB)</a>    <br /><a href="http://www.xun6.com/file/ed1adbf16/dba2.zip.html">下載文件 dba2.zip (2.95 MB)</a>    <br /><a href="http://www.xun6.com/file/0da1cdd16/Perf.zip.html">下載文件 Perf.zip (6.90 MB)</a>    <br />Oracle 10教程：    <br /><a href="http://www.xun6.com/file/2752f6f16/Oracle.Database.10g.Administration.Workshop.II.Student.Guide.pdf.html">下載文件 Oracle.Database.10g.Administration.Workshop.II.Student.Guide.pdf (4.74 MB)</a>    <br /><a href="http://www.xun6.com/file/5777fd716/Oracle.Database.10g.Administration.Workshop.I.Student.Guide.pdf.html">下載文件 Oracle.Database.10g.Administration.Workshop.I.Student.Guide.pdf (5.66 MB)</a>    <br /><a href="http://www.xun6.com/file/e2dc84116/Sybex.OCA.Oracle.10g.Administration.I.Study.Guide.pdf.html">下載文件 Sybex.OCA.Oracle.10g.Administration.I.Study.Guide.pdf (18.20 MB)</a>    <br /><a href="http://www.xun6.com/file/4ad2df616/Sybex.OCP.Oracle.10g.Administration.II.Study.Guide.pdf.html">下載文件 Sybex.OCP.Oracle.10g.Administration.II.Study.Guide.pdf (15.39 MB)</a>    <br />Oracle 11g官方培训教程：    <br /><a href="http://www.xun6.com/file/ebb3ae916/d49996gc10_ppt+Oracle+Database+11g+SQL+Fundamentals+I.rar.html">下載文件 d49996gc10_ppt Oracle Database 11g SQL Fundamentals I.rar (2.26 MB)</a>    <br /><a href="http://www.xun6.com/file/9c9c6d216/d49994gc10_ppt+Oracle+Database+11g+SQL+Fundamentals+II.rar.html">下載文件 d49994gc10_ppt Oracle Database 11g SQL Fundamentals II.rar (1.78 MB)</a>    <br /><a href="http://www.xun6.com/file/d30c33f16d/d50102gc10_ppt+Oracle+Database+11g+Administration+Workshop+I.rar.html">下載文件 d50102gc10_ppt Oracle Database 11g Administration Workshop I.rar (11.00 MB)</a>    <br /><a href="http://www.xun6.com/file/eee118e16/d50079gc10_ppt+Oracle+Database+11g+Administration+Workshop+II.rar.html">下載文件 d50079gc10_ppt Oracle Database 11g Administration Workshop II.rar (6.31 MB)</a>    <br /><a href="http://www.xun6.com/file/3b68b9c16/d50317gc10_ppt+Oracle+Database+11g+Performance+Tuning.rar.html">下載文件 d50317gc10_ppt Oracle Database 11g Performance Tuning.rar (3.63 MB)</a>    <br />英文版：<a href="http://www.xun6.com/file/56424c916/d50081gc10_ppt+Oracle+Database+11g+New+Features+for+Administrators.rar.html">下載文件 d50081gc10_ppt Oracle Database 11g New Features for Administrators.rar(6.64 MB)</a>    <br />中文版：<a href="http://www.xun6.com/file/2b6cec416/d50081cn11_ppt+Oracle+Database+11g+-+New+Features+for+Administrators.rar.html">下載文件 d50081cn11_ppt Oracle Database 11g &#8211; New Features for Administrators.rar (6.58 MB)</a>    <br /><a href="http://www.xun6.com/file/2cedaf316/d46592gc11_ppt+Oracle+Database+10g+Managing+Oracle+on+Linux+for+System+Administrators.rar.html">下載文件 d46592gc11_ppt Oracle Database 10g Managing Oracle on Linux for System Administrators.rar (1.25 MB)</a>    <br /><a href="http://www.xun6.com/file/405bb1216/d50311gc10_ppt+Oracle+Database+11g+RAC+Administration.rar.html">下載文件 d50311gc10_ppt Oracle Database 11g RAC Administration.rar (7.80 MB)</a>    <br /><a href="http://www.xun6.com/file/3a60e6164/Oracle+Database+10g.chm.html">下載文件 Oracle Database 10g.chm (2.43 MB)</a>    <br /><a href="http://www.xun6.com/file/f576966b4/ORACLE.10G%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E8%B7%B5.pdf.html">下載文件 ORACLE.10G入门与实践.pdf (39.58 MB)</a>    <br /><a href="http://www.xun6.com/file/0281daf34/Oracle.Database.10g%E5%AE%9E%E7%94%A8%E5%9F%B9%E8%AE%AD%E6%95%99%E7%A8%8B.pdf.html">下載文件 Oracle.Database.10g实用培训教程.pdf (47.49 MB)</a>    <br /><a href="http://www.xun6.com/file/d956fd595/%E7%B2%BE%E9%80%9AORACLE.10G%E5%A4%87%E4%BB%BD%E4%B8%8E%E6%81%A2%E5%A4%8D.pdf.html">下載文件 精通ORACLE.10G备份与恢复.pdf (23.90 MB)</a>    <br /><strong>Python</strong>    <br /><strong>BASIC:</strong>    <br />A Byte of Python(Python 3.0) <a href="http://www.xun6.com/file/175a40622/A+Byte+of+Python.pdf.html">下載文件 A Byte of Python.pdf (564.61 KB)</a>    <br />A Byte of Python中文版 <a href="http://www.xun6.com/file/89707d4e2/Python%E7%AE%80%E6%98%8E%E6%95%99%E7%A8%8B.pdf.html">下載文件 Python简明教程.pdf (784.85 KB)</a>    <br /><a href="http://www.xun6.com/file/9869db319/Dive+into+Python.zip.html">下載文件 Dive into Python.zip (763.71 KB)</a>    <br /><a href="http://www.xun6.com/file/a75cbf820/diveintopython-pdfzh-cn-5.4b.zip.html">下載文件 Dive into Python 中文版.zip (3.51 MB)</a>    <br /><a href="http://www.xun6.com/file/04214b920/Python+Essential+Reference+4th+Edition.pdf.html">下載文件 Python Essential Reference 4th Edition.pdf (4.80 MB)</a>    <br /><a href="http://www.xun6.com/file/d71fd5e20/Python%E7%B2%BE%E8%A6%81%E5%8F%82%E8%80%83.pdf.html">下載文件 Python精要参考.pdf (678.65 KB)</a>    <br /><a href="http://www.xun6.com/file/744a25929/Learning+Python.pdf.html">下載文件 Learning Python.pdf (4.80 MB)</a>    <br /><a href="http://www.xun6.com/file/ee9c6be12/Core+Python+Programming+2nd+Edition.chm.html">下載文件 Core Python Programming 2nd Edition.chm (3.45 MB)</a>    <br />高清完整版 <a href="http://www.xun6.com/file/0373c8b20/Python%E6%A0%B8%E5%BF%83%E7%BC%96%E7%A8%8B%E7%AC%AC%E4%BA%8C%E7%89%88.pdf.html">下載文件 Python核心编程第二版.pdf (5.16 MB)</a>    <br /><a href="http://www.xun6.com/file/718a06e32/Python+Standard+Library.chm.html">下載文件 Python Standard Library.chm (355.63 KB)</a>    <br /><a href="http://www.xun6.com/file/ac562a319/Python+Standard+Library%E4%B8%AD%E6%96%87%E7%89%88.pdf.html">下載文件 Python Standard Library中文版.pdf (1.00 MB)</a>    <br /><a href="http://www.xun6.com/file/772d7f549/Python+Cookbook.chm.html">下載文件 Python Cookbook.chm (1.00 MB)</a>    <br /><a href="http://www.xun6.com/file/dc28915c2/Python+Cookbook+Collection.chm.html">下載文件 Python Cookbook Collection.chm (2.53 MB)</a>    <br />Guido 2007年Python大会ppt，关于python3.0新特性 <a href="http://www.xun6.com/file/662660259/Py3k2007PyCon.ppt.html">下載文件 Py3k2007PyCon.ppt (134.00 KB)</a>    <br /><strong>GUI:</strong>    <br /><a href="http://www.xun6.com/file/0d95ec1f2/wxPython+In+Action.rar.html">下載文件 wxPython In Action.rar (9.24 MB)</a>    <br />wxPython in Action中文版 <a href="http://www.xun6.com/file/518e68b32/wxPython%E5%AE%9E%E6%88%98%28%E4%B8%AD%E6%96%87%E7%89%88%EF%BC%89.pdf.html">下載文件 wxPython实战(中文版）.pdf (3.54 MB)</a>    <br /><a href="http://www.xun6.com/file/0d4b9de09/wxPythonInAction_src.zip.html">下載文件 wxPythonInAction_src.zip (333.41 KB)</a>    <br /><strong>WEB:</strong>    <br />Django Book 收费版<a href="http://www.xun6.com/file/56aa2e982/The+Definitive+Guide+to+Django+2nd+Edition.pdf.html">下載文件 The Definitive Guide to Django 2nd Edition.pdf (5.92 MB)</a>    <br /><a href="http://www.xun6.com/file/2da446420/Practical+Django+Projects+2nd+Edition.pdf.html">下載文件 Practical Django Projects 2nd Edition.pdf (4.89 MB)</a>    <br /><strong>GAE:</strong>    <br /><a href="http://www.xun6.com/file/0c7f126d9/Google+App+Engine+%E5%85%A5%E9%97%A8.pdf.html">下載文件 Google App Engine 入门.pdf (227.23 KB)</a>    <br /><a href="http://www.xun6.com/file/c72740559/Google+App+Engine+%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E6%8C%87%E5%8D%97.pdf.html">下載文件 Google App Engine 开发人员指南.pdf (855.70 KB)</a>    <br /><a href="http://www.xun6.com/file/0e2fac502/Using+Google+App+Engine.pdf.html">下載文件 Using Google App Engine.pdf (3.20 MB)</a>    <br /><a href="http://www.xun6.com/file/fc0524920/DevelopingWithGoogleAppEngine.pdf.html">下載文件 Developing With Google App Engine.pdf (3.35 MB)</a>    <br /><strong>Other:</strong>    <br /><a href="http://www.xun6.com/file/88df8dc19/Twisted+Network+Programming+Essentials+Python.chm.html">下載文件 Twisted Network Programming Essentials Python.chm (1.24 MB)</a>    <br /><a href="http://www.xun6.com/file/801a0aa89/Python+for+Unix+and+Linux+System+Administration.pdf.html">下載文件 Python for Unix and Linux System Administration.pdf (3.41 MB)</a>    <br /><a href="http://www.xun6.com/file/f6f65dd02/Text+Processing+in+Python.chm.html">下載文件 Text Processing in Python.chm (871.68 KB)</a>    <br /><a href="http://www.xun6.com/file/06aa53772/Python+Programming+on+Win32.chm.html">下載文件 Python Programming on Win32.chm (2.10 MB)</a>    <br /><a href="http://www.xun6.com/file/e50f7da20/Jython+for+Java+Programmers.chm.html">下載文件 Jython for Java Programmers.chm (713.20 KB)</a>    <br /><strong>English</strong>    <br /><a href="http://www.xun6.com/file/01b090012/%E5%8F%A4%E5%85%B8+1677%E8%B6%85%E6%A0%B8%E5%BF%83%E8%AF%8D%E8%A1%A8.pdf.html">下載文件 古典 1677超核心词表.pdf (1.34 MB)</a>    <br /><a href="http://www.xun6.com/file/1f6a86812/%E5%8F%A4%E5%85%B8+1677%E8%B6%85%E6%A0%B8%E5%BF%83%E8%AF%8D%E8%A1%A8.rm.html">下載文件 古典 1677超核心词表.rm (3.41 MB)</a>    <br /><a href="http://www.xun6.com/file/c6f5c3712/%E6%96%B0%E4%B8%9C%E6%96%B9%E6%9D%8E%E7%8E%89%E6%8A%80%E8%80%81%E5%B8%88%E7%9A%84734%E6%9D%A1%E9%AB%98%E9%A2%91%E8%AF%8D%E7%BB%84%E7%AC%94%E8%AE%B0.doc.html">下載文件 新东方李玉技老师的734条高频词组.pdf (77.00 KB)</a>    <br /><a href="http://www.xun6.com/file/a84a6bb12/%E8%8B%B1%E8%AF%AD%E5%B8%B8%E7%94%A8%E7%9F%AD%E8%AF%AD%E8%AF%8D%E5%85%B8.chm.html">下載文件 英语常用短语词典.chm (2.31 MB)</a>    <br /><strong>Perl</strong>    <br /><a href="http://www.xun6.com/file/7a00de020/Perl+Cook+Book.pdf.html">下載文件 Perl Cook Book.pdf (9.22 MB)</a>    <br />英文版：<a href="http://www.xun6.com/file/ed0da7324/Learning.Perl.4ed.En.chm.html">下載文件 Learning.Perl.4ed.En.chm (699.96 KB)</a>    <br />中文版：<a href="http://www.xun6.com/file/9949b92b4/Learning.Perl.4ed.Cn.pdf.html">下載文件 Learning.Perl.4ed.Cn.pdf (1.19 MB)</a>    <br />一本讲用perl进行automation测试的好书：<a href="http://www.xun6.com/file/4f7f2cc74/Perl+Testing.chm.html">下載文件 Perl Testing.chm (640.57 KB)</a>    <br /><strong>Other</strong>    <br /><a href="http://www.xun6.com/file/58fcefb32/Agile+Web+Development+with+Rails+3rdEdition.pdf.html">下載文件 Agile Web Development with Rails 3rdEdition.pdf (10.87 MB)</a>    <br />谭浩强那本：<a href="http://www.xun6.com/file/67ab81c14/C%E8%AF%AD%E8%A8%80%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1.pdf.html">下載文件 C语言程序设计.pdf (9.95 MB)</a>    <br /><a href="http://www.xun6.com/file/64487b720/C%E8%AF%AD%E8%A8%80%E8%B6%A3%E5%91%B3%E7%BC%96%E7%A8%8B%E7%99%BE%E4%BE%8B.pdf.html">下載文件 C语言趣味编程百例.pdf (4.72 MB)</a>    <br /><a href="http://www.xun6.com/file/aa8a26815/%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F%E6%A6%82%E8%AE%BA%EF%BC%88%E7%AC%AC%E4%B8%89%E7%89%88%EF%BC%89.pdf.html">下載文件 数据库系统概论（第三版）.pdf (10.16 MB)</a>    <br /><a href="http://www.xun6.com/file/06f667317/php5%E6%89%8B%E5%86%8C.chm.html">下載文件 php5手册.chm (5.70 MB)</a>    <br />精通正则表达式：<a href="http://www.xun6.com/file/4559bf904/Mastering+Regular+Expressions.chm.html">下載文件 Mastering Regular Expressions.chm (1.45 MB)</a></p>


<p>Related posts:<ol><li><a href='http://www.astesys.com/softdev/java/8.html' rel='bookmark' title='Permanent Link: 初学者如何学习J2SE直到J2EE相关进阶视频点评'>初学者如何学习J2SE直到J2EE相关进阶视频点评</a></li>
<li><a href='http://www.astesys.com/softdev/java/624.html' rel='bookmark' title='Permanent Link: 通过java.net.URL类抓取某个网页的内容'>通过java.net.URL类抓取某个网页的内容</a></li>
<li><a href='http://www.astesys.com/website/wordpress/274.html' rel='bookmark' title='Permanent Link: 如何在WORDPRESS中使代码高亮'>如何在WORDPRESS中使代码高亮</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.astesys.com/softdev/java/628.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache+Tomcat+Php+Mysql的集成</title>
		<link>http://www.astesys.com/softdev/java/627.html</link>
		<comments>http://www.astesys.com/softdev/java/627.html#comments</comments>
		<pubDate>Thu, 28 Jan 2010 08:26:52 +0000</pubDate>
		<dc:creator>xums</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[置顶]]></category>

		<guid isPermaLink="false">http://www.astesys.com/softdev/java/627.html</guid>
		<description><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
经过这两天的努力，我成功的将Apache和Tomcat集成到了一块
最后想了以下，我准备将php也集合到里面，以提供jsp和php服务
我想这也是一个不错的网站服务组合，希望能够帮到网友们



1》下载需要的软件：
Apache :      apache_2.0.55-win32-x86-no_ssl.msi    http://httpd.apache.org/
Tomcat :      apache-tomcat-5.5.23.exe       http://tomcat.apache.org/
Php      :       php-5.1.2-Win32.zip              http://www.php.net
Mysql  :       mysql-5.0.19-win32.zip          http://www.mysql.org
PhpMyAdmin : phpMyAdmin-2.8              http://www.phpmyadmin.org
JDK    :jdk-6-windows-i586.exe          http://java.sun.com
JK插件：mod_jk-apache-2.0.59.so    http://tomcat.apache.org/download-connectors.cgi


Related posts:<ol><li><a href='http://www.astesys.com/centos/639.html' rel='bookmark' title='Permanent Link: Centos5.4安装ispCP官方指导'>Centos5.4安装ispCP官方指导</a></li>
<li><a href='http://www.astesys.com/softdev/java/633.html' rel='bookmark' title='Permanent Link: Struts2+Spring+Hibernate整合入门详解'>Struts2+Spring+Hibernate整合入门详解</a></li>
<li><a href='http://www.astesys.com/hot/90.html' rel='bookmark' title='Permanent Link: 感受： Oracle宣布收购Sun'>感受： Oracle宣布收购Sun</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
<p>经过这两天的努力，我成功的将Apache和Tomcat集成到了一块    <br />最后想了以下，我准备将php也集合到里面，以提供jsp和php服务     <br />我想这也是一个不错的网站服务组合，希望能够帮到网友们</p>
<p>&#160;</p>
<p>1》下载需要的软件：    <br />Apache :&#160;&#160;&#160;&#160;&#160; apache_2.0.55-win32-x86-no_ssl.msi&#160;&#160;&#160; <a href="http://httpd.apache.org/">http://httpd.apache.org/</a>     <br />Tomcat :&#160;&#160;&#160;&#160;&#160; apache-tomcat-5.5.23.exe&#160;&#160;&#160;&#160;&#160;&#160; <a href="http://tomcat.apache.org/">http://tomcat.apache.org/</a>     <br />Php&#160;&#160;&#160;&#160;&#160; :&#160;&#160;&#160;&#160;&#160;&#160; php-5.1.2-Win32.zip&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="http://www.php.net/">http://www.php.net</a>     <br />Mysql&#160; :&#160;&#160;&#160;&#160;&#160;&#160; mysql-5.0.19-win32.zip&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="http://www.mysql.org/">http://www.mysql.org</a>     <br />PhpMyAdmin : phpMyAdmin-2.8&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="http://www.phpmyadmin.org/">http://www.phpmyadmin.org</a>     <br />JDK&#160;&#160;&#160; :jdk-6-windows-i586.exe&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="http://java.sun.com/">http://java.sun.com</a>     <br />JK插件：mod_jk-apache-2.0.59.so&#160;&#160;&#160; <a href="http://tomcat.apache.org/download-connectors.cgi">http://tomcat.apache.org/download-connectors.cgi</a></p>
<p>&#160;</p>
<p>2》安装软件</p>
<ul>
<li>&lt;1&gt;安装Apache      <br />在安装的过程中将会出现叫你填服务器的地址       <br />我是这样写的：       <br />127.0.0.1&#160; 或者localhost&#160; 或者是真实的ip地址或域名       <br />127.0.0.1       <br />your@126.com 也就是你的油箱       <br />我的Apache的安装目录是：D:\php\Apache2 </li>
<li>&lt;2&gt;安装JDK环境      <br />我的JDK的安装目录是：C:\java\jdk1.6.0       <br />并增加JAVA_HOME和PATH变量       <br />分别是：JAVA_HOME=C:\java\jdk1.6.0       <br />PATH=%JAVA_HOME%\bin </li>
<li>&lt;3&gt;安装Tomcat      <br />Tomcat我采用的是默认安装       <br />安装目录是：D:\php\Tomcat 5.5 </li>
<li>&lt;4&gt;安装Mysql数据库      <br />我的安装密码是：root       <br />默认数据库编码是：utf-8       <br />安装的目录是：D:\php\Tomcat 5.5 </li>
<li>&lt;5&gt;安装php      <br />我的php的安装目录是：D:\php\php </li>
</ul>
<p>&#160;</p>
<p>3》配置服务器，使能够提供jsp，php服务     <br />&lt;1&gt;配置php     <br />将php安装目录下的php.ini-dist文件改名为php.ini     <br />php.ini文件中主要修改 Extensions     <br />如果你需要修改其它的php配置，可以参考http;//php.net上的配置说明     <br />修改办法：将扩展加入文件当中     <br />并将：     <br />extension=php_mbstring.dll     <br />extension=php_dbase.dll     <br />extension=php_gd2.dll     <br />extension=php_mysql.dll     <br />这些扩展前面的分号去掉     <br />我做的修改是：     <br />extension_dir = &quot;d:/php/php/ext/&quot;     <br />extension=php_mbstring.dll     <br />extension=php_dbase.dll     <br />extension=php_gd2.dll     <br />extension=php_mysql.dll     <br />修改后的样子是这样的：     <br />; Windows Extensions     <br />; Note that ODBC support is built in, so no dll is needed for it.     <br />; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)     <br />; extension folders as well as the separate PECL DLL download (PHP 5).     <br />; Be sure to appropriately set the extension_dir directive.     <br />extension_dir = &quot;d:/php/php/ext/&quot;     <br />extension=php_mbstring.dll     <br />;extension=php_bz2.dll     <br />;extension=php_curl.dll     <br />;extension=php_dba.dll     <br />extension=php_dbase.dll     <br />;extension=php_exif.dll     <br />;extension=php_fdf.dll     <br />;extension=php_filepro.dll     <br />extension=php_gd2.dll     <br />;extension=php_gettext.dll     <br />;extension=php_ifx.dll     <br />;extension=php_imap.dll     <br />;extension=php_interbase.dll     <br />;extension=php_ldap.dll     <br />;extension=php_mcrypt.dll     <br />;extension=php_mhash.dll     <br />;extension=php_mime_magic.dll     <br />;extension=php_ming.dll     <br />;extension=php_mssql.dll     <br />;extension=php_msql.dll     <br />extension=php_mysql.dll     <br />;extension=php_oci8.dll     <br />;extension=php_openssl.dll     <br />;extension=php_oracle.dll     <br />;extension=php_pgsql.dll     <br />;extension=php_shmop.dll     <br />;extension=php_snmp.dll     <br />;extension=php_sockets.dll     <br />;extension=php_sqlite.dll     <br />;extension=php_sybase_ct.dll     <br />;extension=php_tidy.dll     <br />;extension=php_xmlrpc.dll     <br />;extension=php_xsl.dll</p>
<p>修改好php.ini文件后：将php.ini和libmysql.dll文件拷贝到C:\WINDOWS目录下    <br />&lt;2&gt;配置Apache     <br />将JK插件拷贝到D:\php\Apache2\modules目录中，它的作用是将jsp请求转发给Tomcat     <br />修改http.conf&#160; 文件在D:\php\Apache2\conf目录中     <br />web服务的目录我放到D:\php\webroot这个目录     <br />主要修改：     <br />1：修改DocumentRoot     <br />改后的值：DocumentRoot &quot;D:/php/webroot&quot;     <br />2：修改Directory     <br />改后的值：     <br />3：增加php服务功能     <br />在ScriptAlias下面加上：     <br />ScriptAlias&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; /cgi-bin/ &quot;D:/php/Apache2/cgi-bin/&quot;     <br />ScriptAlias&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; /php/&#160; &quot;d:/php/php/&quot;     <br />addtype&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; application/x-httpd-php .php     <br />action&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; application/x-httpd-php &quot;/php/php.exe&quot;     <br />修改后的样子是这样的     <br /># ScriptAlias: This controls which directories contain server scripts.     <br /># ScriptAliases are essentially the same as Aliases, except that     <br /># documents in the realname directory are treated as applications and     <br /># run by the server when requested rather than as documents sent to the client.     <br /># The same rules about trailing &quot;/&quot; apply to ScriptAlias directives as to     <br /># Alias.     <br />#     <br />ScriptAlias /cgi-bin/ &quot;D:/php/Apache2/cgi-bin/&quot;     <br />ScriptAlias&#160; /php/&#160; &quot;d:/php/php/&quot;     <br />addtype application/x-httpd-php .php     <br />action application/x-httpd-php &quot;/php/php.exe&quot;     <br />4：加载模块     <br />在Dynamic Shared Object (DSO) Support下面加入：     <br />LoadModule php5_module &quot;d:/php/php/php5apache2.dll&quot;     <br />LoadModule jk_module modules/mod_jk-apache-2.0.59.so     <br />加载的模块分别是php模块和jk模块     <br />5：增加tomcat转发配置     <br />在文件结尾加入：     <br />JkWorkersFile &quot;D:\php\ConnApaTom\workers.properties&quot;     <br />JkMount /servlet/* ajp13     <br />JkMount /*.jsp ajp13     <br />JkMount /*.do&#160; ajp13     <br />保存http.conf文件即可     <br />6：配置和Tomcat的集成     <br />新建ConnApaTom目录：目录地址是：     <br />D:\php\ConnApaTom     <br />将写好的workers.properties文件保存到该目录中     <br />文件内容是：     <br />workers.tomcat_home=D:\php\Tomcat 5.5     <br />workers.java_home=C:\java\jdk1.6.0     <br />worker.list=ajp12, ajp13     <br />worker.ajp12.port=8007     <br />worker.ajp12.host=localhost     <br />worker.ajp12.type=ajp12     <br />worker.ajp12.lbfactor=1     <br />worker.ajp13.port=8009     <br />worker.ajp13.host=localhost     <br />worker.ajp13.type=ajp13     <br />worker.ajp13.lbfactor=1     <br />worker.loadbalancer.type=lb     <br />worker.loadbalancer.balance_workers=ajp12, ajp13     <br />worker.inprocess.type=jni     <br />worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)tomcat.jar     <br />worker.inprocess.cmd_line=start     <br />worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll     <br />worker.inprocess.stdout=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stdout     <br />worker.inprocess.stderr=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stderr     <br />修改Tomcat的配置文件：server.xml     <br />将服务目录该成：D:\php\webroot     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;     <br />&#160;&#160;&#160;&#160;&#160;&#160; xmlValidation=&quot;false&quot; xmlNamespaceAware=&quot;false&quot;&gt;     <br />保存即可     <br />6：安装phpmyadmin     <br />将phpmyadmin放到D:\php\webroot     <br />并改名为admin     <br />修改该目录下的：libraries目录中的config.default.php文件     <br />将$cfg['Servers'][$i]['password']&#160;&#160;&#160;&#160;&#160; = &#8221;;改为：     <br />$cfg['Servers'][$i]['password']&#160;&#160;&#160;&#160;&#160; = &#8216;root&#8217;;     <br />改后的样子是这样的：     <br />$cfg['Servers'][$i]['auth_type']&#160;&#160;&#160;&#160; = &#8216;config&#8217;;&#160;&#160;&#160; // Authentication method (config, http or cookie based)?     <br />$cfg['Servers'][$i]['user']&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; = &#8216;root&#8217;;&#160;&#160;&#160;&#160;&#160; // MySQL user     <br />$cfg['Servers'][$i]['password']&#160;&#160;&#160;&#160;&#160; = &#8216;root&#8217;; </p>
<p>4》重启服务器     <br />重启Apache和Tomcat     <br />按以上说明配置，就可以了     <br />所有的应用都可以放到D:\php\webroot目录     <br />浏览以下就行了</p>
<p>这是我这几天配置的总结     <br />希望能对网友们有所帮助     <br />有什么问题的话     <br />可以给我留言     <br />当然还请你多指教！</p>


<p>Related posts:<ol><li><a href='http://www.astesys.com/centos/639.html' rel='bookmark' title='Permanent Link: Centos5.4安装ispCP官方指导'>Centos5.4安装ispCP官方指导</a></li>
<li><a href='http://www.astesys.com/softdev/java/633.html' rel='bookmark' title='Permanent Link: Struts2+Spring+Hibernate整合入门详解'>Struts2+Spring+Hibernate整合入门详解</a></li>
<li><a href='http://www.astesys.com/hot/90.html' rel='bookmark' title='Permanent Link: 感受： Oracle宣布收购Sun'>感受： Oracle宣布收购Sun</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.astesys.com/softdev/java/627.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jquery是什么技术？</title>
		<link>http://www.astesys.com/softdev/javascript/625.html</link>
		<comments>http://www.astesys.com/softdev/javascript/625.html#comments</comments>
		<pubDate>Fri, 22 Jan 2010 12:20:20 +0000</pubDate>
		<dc:creator>xums</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery是什么]]></category>

		<guid isPermaLink="false">http://www.astesys.com/softdev/javascript/625.html</guid>
		<description><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
Jquery是继prototype之后又一个优秀的Javascrīpt框架。有人使用这样的一比喻来比较prototype和jquery：prototype就像Java，而jquery就像ruby.实际上我比较喜欢java（少接触Ruby 罢了）但是jquery的简单的实用的确有相当大的吸引力啊！在项目里我把jquery作为自已唯一的框架类包。使用其间也有一点点心得，其实这些心得，在jquery的文档上面也可能有讲，不过还是记下来，以备忘罢。


Related posts:<ol><li><a href='http://www.astesys.com/hot/283.html' rel='bookmark' title='Permanent Link: extJS中tabPanel的实现详解'>extJS中tabPanel的实现详解</a></li>
<li><a href='http://www.astesys.com/website/webapp/594.html' rel='bookmark' title='Permanent Link: CSS对IE7，IE6，FireFox和其它不同浏览器的控制(转)'>CSS对IE7，IE6，FireFox和其它不同浏览器的控制(转)</a></li>
<li><a href='http://www.astesys.com/website/webapp/577.html' rel='bookmark' title='Permanent Link: Div+CSS网站设计的优点[转载]'>Div+CSS网站设计的优点[转载]</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://www.astesys.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
<p>&#160; Jquery是继prototype之后又一个优秀的Javascrīpt框架。有人使用这样的一比喻来比较prototype和jquery：prototype就像Java，而jquery就像ruby.实际上我比较喜欢java（少接触Ruby 罢了）但是jquery的简单的实用的确有相当大的吸引力啊！在项目里我把jquery作为自已唯一的框架类包。使用其间也有一点点心得，其实这些心得，在jquery的文档上面也可能有讲，不过还是记下来，以备忘罢。</p>
<p><strong>一，找到你了！</strong>     <br />还记得$()这个东西吧？prototype还是DWR都使用了这个函数代替document.getElementById()。没错，jquery也跟风了。为达到document.getElementById()的目的，jquery是这样写的：     <br />代码</p>
<p>var someElement = $(&quot;#myId&quot;);&#160;&#160; </p>
<p>看起来比其他两个框架的要多了一个#，好，看看下面的用法：    <br />代码</p>
<p>$(&quot;div p&quot;);(1)&#160;&#160;&#160; <br />$(&quot;div.container&quot;)(2)&#160;&#160;&#160; <br />$(&quot;div #msg&quot;);(3)&#160;&#160;&#160; <br />$(&quot;table a&quot;,context);(4)&#160; </p>
<p>在prototype里看过这样的写法吗？第一行代码得到所有&lt;div&gt;标签下的&lt;p&gt;元素。第二行代码得到class 为container的&lt;div&gt;元素,第三行代码得到&lt;div&gt;标签下面id为msg的元素。第四行代码得到context为上下文的table里面所有的连接元素。    <br />如果你熟悉CSS，Xpath，你会觉得这些写法很眼熟！对了。正是。看出奥妙了吧。jquery就是通过这样的方式来找到Dom对象里面的元素。跟CSS的选择器相类似。     <br /><strong>二，Jquery对象？</strong>     <br />jquery提供了很多便利的函数，如each(fn)，但是使用这些函数的前提是：你使用的对象是Jquer对象。使一个Dom对象成为一个Jquery对象很简单，通过下面一些方式（只是一部分）：     <br />代码</p>
<p>var a = $(&quot;#cid&quot;);(1)&#160;&#160;&#160; <br />var b = $(&quot;&lt;p&gt;hello&lt;/p&gt;&quot;);(2)&#160;&#160;&#160; <br />var c = document.createElement(&quot;table&quot;); var tb = $(c);&#160;&#160; </p>
<p><strong>三，代替body标签的onload</strong>     <br />这个惯例，也许是除了$()之外，用得最多的地方了。下面一段代码：     <br />代码</p>
<p>$(document).ready(function(){&#160;&#160;&#160; <br />&#160;&#160; alert(&quot;hello&quot;);&#160;&#160;&#160; <br />});(1)&#160;&#160;&#160; <br />&lt;body onload=&quot;alert(&#8217;hello&#8217;);&quot;&gt;（2）&#160; </p>
<p>上面两段代码是等价的。但代码1的好处是做到表现和逻辑分离。并且可以在不同的js文件中做相同的操作，即$(document).ready (fn)可以在一个页面中重复出现，而不会冲突。基本上Jqeury的很多plugin都是利用这个特性，正因为这个特性，多个plugin共同使用起来，在初始化时不会发生冲突。    <br />不管怎么说，这个惯例可以分离javascrīpt与HTML。推荐使用。     <br /><strong>四，事件机制</strong>     <br />我大量使用的事件可能就是button的onclick了。以前习惯在input 元素上写onclick = &quot;fn()&quot;,使用jquery可以使javascrīpt代码与html代码分离，保持HTML的清洁，还可以很轻松地绑定事件，甚至你可以不知道“事件”这个名词。     <br />代码</p>
<p>$(document).ready(function(){&#160;&#160;&#160; <br />&#160;&#160; $(&quot;#clear&quot;).click(function(){&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160; alert(&quot;i am about to clear the table&quot;);&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160; });&#160;&#160;&#160; <br />&#160;&#160; $(&quot;form[0]&quot;).submit(validate);&#160;&#160;&#160; <br />});&#160;&#160;&#160; <br />function validate(){&#160;&#160;&#160; <br />&#160;&#160; //do some form validation&#160;&#160;&#160; <br />}</p>
<p><strong>五，同一函数实现set&amp;get</strong>     <br />代码</p>
<p>$(&quot;#msg&quot;).html();&#160;&#160;&#160; <br />$(&quot;#msg&quot;).html(&quot;hello&quot;);&#160;&#160; </p>
<p>上面两行代码，调用了同样的函数。但结果却差别很大。    <br />第一行是返回指定元素的HTML值，第二行则是将hello这串字符设置到指定元素中。jquery的函数大部分有这样的特性。     <br /><strong>六，ajax</strong>     <br />这是一个ajax横行的时代。多少人，了不了解ajax的都跟着用上一把。呵。使用jquery实现ajax同样简单异常     <br />代码</p>
<p>$.get(&quot;search.do&quot;,{id:1},rend);&#160;&#160;&#160; <br />function rend(xml){&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160; alert(xml);&#160;&#160;&#160; <br />} (1)&#160;&#160;&#160; <br />$.post(&quot;search.do&quot;,{id:1},rend);&#160;&#160;&#160; <br />function rend(xml){&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160; alert(xml);&#160;&#160;&#160; <br />} (2)&#160;&#160;&#160; <br />$(&quot;#msg&quot;).ajaxStart(function(){&#160;&#160;&#160; <br />&#160;&#160;&#160; this.html(&quot;正在加载。。。。&quot;);&#160;&#160;&#160; <br />});(3)&#160;&#160;&#160; <br />$(&quot;#msg&quot;).ajaxSuccess(function(){&#160;&#160;&#160; <br />&#160;&#160;&#160; this.html(&quot;加载完成！&quot;);&#160;&#160;&#160; <br />});(4)&#160;&#160; </p>
<p>这些都是较常用的方法，get和post用法一样。第一个参数是异步请求的url，第二个为参数，第三个回调方法。    <br />3，4的方法会在指定的Dom对象上绑定响应ajax执行的事件。当然，jquery的AJAX相关的函数不仅是这些，有兴趣可以去研究再多。     <br /><strong>七，渐入淡出</strong>     <br />代码</p>
<p>$(&quot;#msg&quot;).fadeIn(&quot;fast&quot;);&#160;&#160;&#160; <br />$(&quot;#msg&quot;).fadeOut(&quot;slow&quot;);&#160;&#160; </p>
<p>没错，上面两行代码已经分别实现了一个id为Msg的jquery对象的渐入和淡出。做一个像Gmail一样的动态加载通知条，用jquery就那么简单。两个函数接受的参数除了快慢等，还可以接收整型，作为渐入或淡出的完成时间，单位为MS。    <br /><strong>八，plugin</strong>     <br />这也是一个插件的时代。     <br />jquery插件给我的感觉清一色的清洁，简单。如Jtip，要使用它的功能，只需要在你的元素的class上加上Jtip,并引入jtip.js及其样式即可以了。其他事情插件全包。我喜欢jquery的一个重要原因是发现她已经有了很多很好，很精彩的插件。     <br />写得很烂。可能大家看不出jquery的好处。嗯，光听是没用的，试用一下吧。你会发觉很有趣。     <br />暂时告一段落吧。待有新的发现再来分享。     <br /><strong>加一些Jquery的资源：</strong>     <br />http://www.visualjquery.com/index.xml 很好的API查询站点     <br />http://jquery.com/demo/thickbox/ 知道lightBox吧，看看Jquery是怎样实现相同的东西     <br />http://www.codylindley.com/blogstuff/js/jtip/ Jtip，实用的提示工具     <br />http://jquery.com/plugins/ 很多牛的插件。     <br />http://15daysofjquery.com/jquery 的15天教程</p>


<p>Related posts:<ol><li><a href='http://www.astesys.com/hot/283.html' rel='bookmark' title='Permanent Link: extJS中tabPanel的实现详解'>extJS中tabPanel的实现详解</a></li>
<li><a href='http://www.astesys.com/website/webapp/594.html' rel='bookmark' title='Permanent Link: CSS对IE7，IE6，FireFox和其它不同浏览器的控制(转)'>CSS对IE7，IE6，FireFox和其它不同浏览器的控制(转)</a></li>
<li><a href='http://www.astesys.com/website/webapp/577.html' rel='bookmark' title='Permanent Link: Div+CSS网站设计的优点[转载]'>Div+CSS网站设计的优点[转载]</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.astesys.com/softdev/javascript/625.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
