﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-JAVA涂鸦-文章分类-Web开发</title><link>http://www.blogjava.net/rickhunter/category/3664.html</link><description>关于JAVA的点点滴滴</description><language>zh-cn</language><lastBuildDate>Sat, 23 Jun 2007 02:14:11 GMT</lastBuildDate><pubDate>Sat, 23 Jun 2007 02:14:11 GMT</pubDate><ttl>60</ttl><item><title>Struts2.0+spring2.0+hibernate3.2  Annotation应用示例</title><link>http://www.blogjava.net/rickhunter/articles/115270.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Fri, 04 May 2007 01:19:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/115270.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/115270.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/115270.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/115270.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/115270.html</trackback:ping><description><![CDATA[hibernate3.2有个新功能叫做annotation，这个功能在ejb3.0就出现了。而且spring2.x版本也有这个功能，这个功能到底有什么作用，我们还是看看解释是什么：<br>在已经发布的JDK1.5(tiger)中增加新的特色叫
Annotation。Annotation提供一种机制，将程序的元素如:类，方法，属性，参数，本地变量，包和元数据联系起来。这样编译器可以将元数
据存储在Class文件中。这样虚拟机和其它对象可以根据这些元数据来决定如何使用这些程序元素或改变它们的行为。
<br>spring的配置文件比较复杂，所以这次先使用hibernate的annotation功能。<br><br>项目所需包：<br><img alt=""  src="http://www.blogjava.net/images/blogjava_net/rickhunter/struts2.0+spring2.0+hibernate3.1/s2s2h3.1.jpg" height="469" width="276"><br><br>先去掉我先前项目中的hibernate3.1,添加hibernate3.2,然后再下载hibernate-annotation，往lib文件夹中添加hibernate-annotations-3.3.0.jar，hibernate-commons-annotations.jar和ejb3-persistence.jar
。这样就可以使用hibernate的annotation了。<br><br>去掉products.hbm.xml文件，因为不需要了，我们现在只需要在products这个类中定义就可以了。代码如下：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.game.products.model;<br><br></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.persistence.Column;<br></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.persistence.Entity;<br></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.persistence.GeneratedValue;<br></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.persistence.GenerationType;<br></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.persistence.Id;<br></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.persistence.Table;<br><br></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.hibernate.annotations.GenericGenerator;<br><br><br>@Entity<br>@Table(name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">products</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Products&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;Fields&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;@Id<br>&nbsp;&nbsp;&nbsp;&nbsp;@GeneratedValue(generator&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">c-assigned</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;@GenericGenerator(name&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">c-assigned</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;strategy&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">assigned</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;@Column(name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">game_id</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;gameId;</span><span style="color: #008000;">//</span><span style="color: #008000;">编号</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;@Column(name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">game_name_cn</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;gameNameCn;</span><span style="color: #008000;">//</span><span style="color: #008000;">中文名称</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;@Column(name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">game_name_en</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;gameNameEn;</span><span style="color: #008000;">//</span><span style="color: #008000;">英文名称</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;@Column(name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">game_capacity</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;gameCapacity;</span><span style="color: #008000;">//</span><span style="color: #008000;">碟数</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;@Column(name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">game_version</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;gameVersion;</span><span style="color: #008000;">//</span><span style="color: #008000;">版本</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;@Column(name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">game_media</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;gameMedia;</span><span style="color: #008000;">//</span><span style="color: #008000;">介质</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;@Column(name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">game_copyright</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;gameCopyright;</span><span style="color: #008000;">//</span><span style="color: #008000;">版权</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;@Column(name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">game_price</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;gamePrice;</span><span style="color: #008000;">//</span><span style="color: #008000;">价格</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;@Column(name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">game_content</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;gameContent;</span><span style="color: #008000;">//</span><span style="color: #008000;">攻略<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;Constructors</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Products(){}<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;Property&nbsp;accessors</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getGameCapacity()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;gameCapacity;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setGameCapacity(String&nbsp;gameCapacity)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.gameCapacity&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;gameCapacity;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getGameId()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;gameId;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setGameId(String&nbsp;gameId)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.gameId&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;gameId;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getGameNameCn()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;gameNameCn;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setGameNameCn(String&nbsp;gameNameCn)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.gameNameCn&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;gameNameCn;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getGameNameEn()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;gameNameEn;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setGameNameEn(String&nbsp;gameNameEn)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.gameNameEn&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;gameNameEn;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getGameVersion()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;gameVersion;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setGameVersion(String&nbsp;gameVersion)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.gameVersion&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;gameVersion;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getGameMedia()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;gameMedia;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setGameMedia(String&nbsp;gameMedia)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.gameMedia&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;gameMedia;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getGameCopyright()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;gameCopyright;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setGameCopyright(String&nbsp;gameCopyright)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.gameCopyright&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;gameCopyright;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getGameContent()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;gameContent;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setGameContent(String&nbsp;gameContent)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.gameContent&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;gameContent;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getGamePrice()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;gamePrice;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setGamePrice(String&nbsp;gamePrice)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.gamePrice&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;gamePrice;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>}<br></span></div>
&nbsp;<br>注意类中的@符号没有，这就是annotation发挥作用的地方了，是不是很方便呢。<br><br>现在可以将com.game.bean.hibernate整个文件夹都去掉了，因为我们在spring的applicationContext中进行定义了。<br>修改applicationContext中的SessionFactory
,示例如下：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">&lt;!--</span><span style="color: #000000;">&nbsp;SessionFactory&nbsp;</span><span style="color: #000000;">--&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">bean&nbsp;id</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">sessionFactory</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">property&nbsp;name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">dataSource</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;ref</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">dataSource</span><span style="color: #000000;">"</span><span style="color: #000000;">/&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">property&nbsp;name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">hibernateProperties</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">props</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">prop&nbsp;key</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">hibernate.dialect</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">org.hibernate.dialect.SQLServerDialect</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">prop</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">prop&nbsp;key</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">hibernate.hbm2ddl.auto</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">none</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">prop</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">props</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">property</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">property&nbsp;name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">annotatedClasses</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">list</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">value</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">com.game.products.model.Products</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">value</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">list</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">property</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">bean</span><span style="color: #000000;">&gt;</span></div>
<br>至此，我们就可以使用hibernate的annotation了，是不是很简单呢。<br><br><a style="font-size: 14pt;" href="http://www.blogjava.net/Files/rickhunter/game07_05_04_annotation.rar">示例代码</a><br><br>效果：<br><img alt="" src="http://www.blogjava.net/images/blogjava_net/rickhunter/struts2.0+spring2.0+hibernate3.1/ssh2_1.jpg" height="768" width="956"><br><br>相关信息：<br><a target="_blank" href="http://www.blogjava.net/rickhunter/articles/113102.html">Struts2.0+spring2.0+hibernate3.1 ACEGI应用示例</a><br><br><a target="_blank" href="http://www.blogjava.net/rickhunter/articles/113086.html">struts2.0+spring2.0+hibernate3.1 web应用 示例代码下载</a>
<br><br>项目架构以及数据库信息<br><a target="_blank" href="http://www.blogjava.net/rickhunter/articles/103481.html">struts+spring+hibernate的web应用&lt;一&gt; 架构搭建</a>
<br><a target="_blank" href="http://www.blogjava.net/rickhunter/category/3664.html"><br>更多信息</a><br><br><br>      <img src ="http://www.blogjava.net/rickhunter/aggbug/115270.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2007-05-04 09:19 <a href="http://www.blogjava.net/rickhunter/articles/115270.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2.0+spring2.0+hibernate3.1 ACEGI应用示例（权限判断）</title><link>http://www.blogjava.net/rickhunter/articles/113102.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Tue, 24 Apr 2007 02:11:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/113102.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/113102.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/113102.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/113102.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/113102.html</trackback:ping><description><![CDATA[<p class="MsoNormal"><span style="font-family: 宋体;">首先对先前的那个应用进行了完善，主要针对中文问题，查询后的记录的修改删除问题进行了完善。功能基本可以说已经比较完善了。尽管代码不是很好看。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">这次添加了权限管理的功能，应用的是</span><span lang="EN-US">acegi</span><span style="font-family: 宋体;">来进行的权限管理。</span><span lang="EN-US">Acegi</span><span style="font-family: 宋体;">继承了</span><span lang="EN-US">spring</span><span style="font-family: 宋体;">的特点，无侵入性，利用</span><span lang="EN-US">aop</span><span style="font-family: 宋体;">来实现了权限管理。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">权限管理主要形式是用户</span><span lang="EN-US">—</span><span style="font-family: 宋体;">角色</span><span lang="EN-US">—</span><span style="font-family: 宋体;">权限这种模式。因为是简单应用，我于是使用了用户</span><span lang="EN-US">—</span><span style="font-family: 宋体;">权限的模式，省去了角色，少了两张表。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">users</span><span style="font-family: 宋体;">表</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;<img alt="" src="http://www.blogjava.net/images/blogjava_net/rickhunter/struts2.0+spring2.0+hibernate3.1/users.jpg" height="105" width="442"></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">authorities</span><span style="font-family: 宋体;">表</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;<img alt="" src="http://www.blogjava.net/images/blogjava_net/rickhunter/struts2.0+spring2.0+hibernate3.1/authorities.jpg" height="106" width="440"></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">user_auth</span><span style="font-family: 宋体;">表</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;<img alt="" src="http://www.blogjava.net/images/blogjava_net/rickhunter/struts2.0+spring2.0+hibernate3.1/user_auth.jpg" height="58" width="445"></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">在程序中相应的增加了对应表的</span><span lang="EN-US">POJO</span><span style="font-family: 宋体;">类。在</span><span lang="EN-US">commons</span><span style="font-family: 宋体;">包中增加了</span><span lang="EN-US">DataSourceMethodDefinitionSourceEditor.java</span><span style="font-family: 宋体;">类。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">在根目录增加了</span><span lang="EN-US">accessDenied.jsp</span><span style="font-family: 宋体;">，</span><span lang="EN-US">login.jsp</span><span style="font-family: 宋体;">页面。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">修改了</span><span lang="EN-US">web.xml</span><span style="font-family: 宋体;">，</span><span lang="EN-US">applicationContext.xml.</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">在</span><span lang="EN-US">spring-context</span><span style="font-family: 宋体;">文件夹中增加了最关键的</span><span lang="EN-US">applicationContext-security-acegi.xml</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">对</span><span lang="EN-US">applicationContext-security-acegi.xml</span><span style="font-family: 宋体;">配置文件，我将会写一篇文章进行介绍，并说说自己使用时出现的问题，以及需要注意的地方。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体;"><a style="font-size: 14pt;" href="http://www.blogjava.net/Files/rickhunter/game_acegi.rar">附件下载</a></span></p>
<p class="MsoNormal">相关信息：<br><a target="_blank" href="http://www.blogjava.net/rickhunter/articles/113086.html">struts2.0+spring2.0+hibernate3.1 web应用 示例代码下载</a><br><br>项目架构以及数据库信息<br><a target="_blank" href="http://www.blogjava.net/rickhunter/articles/103481.html">struts+spring+hibernate的web应用&lt;一&gt; 架构搭建</a><br><br><a target="_blank" href="http://www.blogjava.net/rickhunter/category/3664.html">更多信息
</a><br><span style="font-family: 宋体;"></span></p>
<p class="MsoNormal"><span style="font-family: 宋体;"><a style="font-size: 14pt;" href="http://www.blogjava.net/Files/rickhunter/game_acegi.rar"><br></a></span></p><img src ="http://www.blogjava.net/rickhunter/aggbug/113102.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2007-04-24 10:11 <a href="http://www.blogjava.net/rickhunter/articles/113102.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2.0+spring2.0+hibernate3.1 web应用 示例代码下载</title><link>http://www.blogjava.net/rickhunter/articles/113086.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Tue, 24 Apr 2007 01:06:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/113086.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/113086.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/113086.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/113086.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/113086.html</trackback:ping><description><![CDATA[<p>很不好意思，开始下载链接放错了，现在是新的。<br><br>这是前面那个struts1.x+spring1.x+hibernater3.1的升级版本。</p>
<p>spring2.0与1.x区别不大，可以平滑的过度，我也就是把spring1.28换成了spring2.0.3，算是升级到spring 2.0了。</p>
<p>struts2.0基本就是webwork2.2，与以前的struts1.x可以说没任何关系了。</p>
因为是第一次用struts2.0，也是第一次用webwork，所以有很多不完善，不规范的地方，还望大家来拍砖。<br><br>下次在将这次使用struts2.0的心得写篇文章。<br><br>因为是对前一次写的struts+spring+hibernate的改进，所以一些新的朋友还不知道数据库以及架构是什么样子的。<br>建议可以先看看这里：<br><a href="http://www.blogjava.net/rickhunter/articles/103481.html" class="postTitle2" id="viewpost1_TitleUrl"><font color="#646464">struts+spring+hibernate的web应用&lt;一&gt; 架构搭建</font></a> <br><br>lib包需要以下这些包<br><img src="http://www.blogjava.net/images/blogjava_net/rickhunter/ssh100.jpg" alt="" border="0" height="345" width="226"><br><br><a href="http://www.blogjava.net/Files/rickhunter/game.rar">示例代码下载</a><br><br>相关信息：<br><br>项目架构以及数据库信息<br><a target="_blank"  href="http://www.blogjava.net/rickhunter/articles/103481.html">struts+spring+hibernate的web应用&lt;一&gt; 架构搭建</a><br><br><a target="_blank"  href="http://www.blogjava.net/rickhunter/category/3664.html">更多信息</a> &nbsp;
<br>   <img src ="http://www.blogjava.net/rickhunter/aggbug/113086.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2007-04-24 09:06 <a href="http://www.blogjava.net/rickhunter/articles/113086.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts+spring+hibernate的web应用 示例代码下载</title><link>http://www.blogjava.net/rickhunter/articles/113084.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Tue, 24 Apr 2007 01:04:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/113084.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/113084.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/113084.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/113084.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/113084.html</trackback:ping><description><![CDATA[struts+spring+hibernate的web应用 示例代码下载<br><br><a  href="http://www.blogjava.net/rickhunter/articles/103481.html" target="_blank"><font color="#6fbc4c"><span lang="EN-US">struts+spring+hibernate</span><span style="font-family: 宋体;">的</span><span lang="EN-US">web</span><span style="font-family: 宋体;">应用</span><span lang="EN-US">&lt;</span><span style="font-family: 宋体;">一</span><span lang="EN-US">&gt; </span><span style="font-family: 宋体;">架构搭建</span></font></a><br><a  href="http://www.blogjava.net/rickhunter/articles/103517.html" target="_blank"><font color="#6fbc4c"><span lang="EN-US">struts+spring+hibernate</span><span style="font-family: 宋体;">的</span><span lang="EN-US">web</span><span style="font-family: 宋体;">应用</span><span lang="EN-US">&lt;</span><span style="font-family: 宋体;">二</span><span lang="EN-US">&gt; Dao</span><span style="font-family: 宋体;">层代码编写</span></font></a><br><a  href="http://www.blogjava.net/rickhunter/articles/103579.html" title="struts+spring+hibernate的web应用&lt;三&gt; service层代码编写" target="_blank"><font color="#6fbc4c"><span lang="EN-US"><font face="Times New Roman">struts+spring+hibernate</font></span><span style="font-family: 宋体;">的</span><span lang="EN-US"><font face="Times New Roman">web</font></span><span style="font-family: 宋体;">应用</span><span lang="EN-US"><font face="Times New Roman">&lt;</font></span><span style="font-family: 宋体;">三</span><span lang="EN-US"><font face="Times New Roman">&gt; Service</font></span><span style="font-family: 宋体;">层代码编写</span></font></a><br><a  href="http://www.blogjava.net/rickhunter/articles/103702.html" target="_blank"><font color="#6fbc4c" face="宋体">struts+spring+hibernate的web应用&lt;四&gt; Web层代码编写(1)</font></a><br><a  href="http://www.blogjava.net/rickhunter/articles/103718.html" target="_blank"><font color="#6fbc4c" face="宋体">struts+spring+hibernate的web应用&lt;四&gt; Web层代码编写(2)</font></a><br><br><a  href="http://www.blogjava.net/Files/rickhunter/game_03_02_10.rar" title="game" target="_blank">附件</a><br><br>代码跟前面的文章有个别地方不同。另外lib中的jar文件没在附件中，因为上传文件大小不能超过2M，所以请自行添加。<img src ="http://www.blogjava.net/rickhunter/aggbug/113084.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2007-04-24 09:04 <a href="http://www.blogjava.net/rickhunter/articles/113084.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts+spring+hibernate的web应用&lt;四&gt; Web层代码编写(2)</title><link>http://www.blogjava.net/rickhunter/articles/103718.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Wed, 14 Mar 2007 02:25:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/103718.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/103718.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/103718.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/103718.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/103718.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 接上一篇：struts+spring+hibernate的web应用&lt;四&gt; Web层代码编写(1)接着就是写资源文件了。在com.game.resources包中添加ApplicationResourcesProducts.properties文件。如果你的eclipse中有Properties Editor这个插件，就可以用Properties Editor打开资源文件进行编写，省去...&nbsp;&nbsp;<a href='http://www.blogjava.net/rickhunter/articles/103718.html'>阅读全文</a><img src ="http://www.blogjava.net/rickhunter/aggbug/103718.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2007-03-14 10:25 <a href="http://www.blogjava.net/rickhunter/articles/103718.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts+spring+hibernate的web应用&lt;四&gt; Web层代码编写(1)</title><link>http://www.blogjava.net/rickhunter/articles/103702.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Wed, 14 Mar 2007 02:00:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/103702.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/103702.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/103702.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/103702.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/103702.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 前面的文章：														struts+spring+hibernate 						的						web 						应用						&lt; 						一						&gt; 						架构搭建																										struts+spring+hibernate 				...&nbsp;&nbsp;<a href='http://www.blogjava.net/rickhunter/articles/103702.html'>阅读全文</a><img src ="http://www.blogjava.net/rickhunter/aggbug/103702.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2007-03-14 10:00 <a href="http://www.blogjava.net/rickhunter/articles/103702.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts+spring+hibernate的web应用&lt;三&gt; Service层代码编写</title><link>http://www.blogjava.net/rickhunter/articles/103579.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Tue, 13 Mar 2007 08:52:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/103579.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/103579.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/103579.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/103579.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/103579.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 前面的文章：														struts+spring+hibernate						的						web						应用						&lt;						一						&gt; 						架构搭建																		struts+spring+hibernate						的						web...&nbsp;&nbsp;<a href='http://www.blogjava.net/rickhunter/articles/103579.html'>阅读全文</a><img src ="http://www.blogjava.net/rickhunter/aggbug/103579.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2007-03-13 16:52 <a href="http://www.blogjava.net/rickhunter/articles/103579.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts+spring+hibernate的web应用&lt;二&gt; Dao层代码编写</title><link>http://www.blogjava.net/rickhunter/articles/103517.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Tue, 13 Mar 2007 05:57:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/103517.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/103517.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/103517.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/103517.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/103517.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 前一篇文章				(struts+spring+hibernate的web应用&lt;一&gt;  架构搭建)				让我们打好了架子，接下来就来编写代码了。在编码之前，我们需要先自行了解				strust,spring,hibernate				基础知识，后面的文章将不会过多的介绍这些框架的基础知识。整个项目由				Dao,Services,Web				三层组成，...&nbsp;&nbsp;<a href='http://www.blogjava.net/rickhunter/articles/103517.html'>阅读全文</a><img src ="http://www.blogjava.net/rickhunter/aggbug/103517.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2007-03-13 13:57 <a href="http://www.blogjava.net/rickhunter/articles/103517.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts+spring+hibernate的web应用&lt;一&gt;  架构搭建</title><link>http://www.blogjava.net/rickhunter/articles/103481.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Tue, 13 Mar 2007 03:24:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/103481.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/103481.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/103481.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/103481.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/103481.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">许久没有些文章了，现在比较清闲，于是决定用</span>
				<span lang="EN-US">struts+spring+hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">做了一个的小</span>
				<span lang="EN-US">web</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用。程序虽小，但五脏俱全，今后还会加上权限，打印等功能。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开发工具：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">Eclipse 3.2 + NLpack1-eclipse-SDK-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /?><st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">3.2.1</st1:chsdate>-win32(</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中文语言包</span>
				<span lang="EN-US">)</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">插件：</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">tomcatPluginV31</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：用于</span>
				<span lang="EN-US">tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">项目建立和管理。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">Properties Editor</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
				<span lang="EN-US">struts</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的资源国际化的中文编辑插件，不需要再用命令去转换文本格式了。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">xmlbuddy_2.0.72</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
				<span lang="EN-US">xml</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">强大编辑器，而且是免费的。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">GEF-SDK-<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">3.2.2</st1:chsdate>+tk.eclipse.plugin.htmleditor_2.0.4+tk.eclipse.plugin.struts_2.0.4</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
				<span lang="EN-US">jsp</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面编辑器，这个编辑器远没有</span>
				<span lang="EN-US">myeclipse</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或者</span>
				<span lang="EN-US">wtp</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">等大型插件那么强大，但一是免费，二是占资源少的缘故，而且编辑一般的</span>
				<span lang="EN-US">jsp</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面也够用了，所以我觉得这个插件还凑合够用。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">sqlexplorer_plugin_<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">3.0.0</st1:chsdate>.20060901</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
				<span lang="EN-US">sql</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">管理器，</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开源插件，比较好用，特别是针对</span>
				<span lang="EN-US">mysql</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这种没有什么强大的</span>
				<span lang="EN-US">sql</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">图形编辑管理器的数据库来说。如果用</span>
				<span lang="EN-US">sqlserver,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这个插件也就可有可无了。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库：</span>
				<span lang="EN-US">SQLServer 2000</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">首先是建库建表，</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">create database game</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">create table products(</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">game_id int primary key NOT NULL ,</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">game_name_cn varchar (100) NOT NULL ,</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">game_name_en varchar (100) NOT NULL ,</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">game_capacity int NOT NULL ,</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">game_version int NOT NULL ,</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">game_media int NOT NULL ,</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">game_copyright int NOT NULL ,</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">game_price decimal(10, 2) ,</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">game_content varchar (100)</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">)</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开始搭架子了。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">因为使用的是</span>
				<span lang="EN-US">tomcatPluginV31</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，所以建议</span>
				<span lang="EN-US">eclipse</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的工作空间选择</span>
				<span lang="EN-US">tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US">webapps</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录。这样项目就不需要再部署了。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">新建一个</span>
				<span lang="EN-US">tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">项目，新建</span>
				<span lang="EN-US">-&gt;</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">项目</span>
				<span lang="EN-US">-&gt;java-&gt; tomcat project</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在项目名处，写</span>
				<span lang="EN-US">”game”</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，点击完成。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接着新建一些包，如下图所示。<br /><img height="358" alt="ssh1.jpg" src="http://www.blogjava.net/images/blogjava_net/rickhunter/struts+srping+hibernate/ssh1.jpg" width="305" border="0" /><br /><br /></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">然后向</span>
				<span lang="EN-US">WEB-INF\lib</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包中添加一些需要的</span>
				<span lang="EN-US">jar</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，所需的</span>
				<span lang="EN-US">jar</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如下图所示：<br /></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
						<img height="365" alt="ssh2.jpg" src="http://www.blogjava.net/images/blogjava_net/rickhunter/struts+srping+hibernate/ssh2.jpg" width="342" border="0" />
						<br />
						<br />需要注意的是，这里</span>
				<span lang="EN-US">hibernate3.jar</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是</span>
				<span lang="EN-US">hibernate3.1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
				<span lang="EN-US">strust</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是</span>
				<span lang="EN-US">strust1.x</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">至此，项目基本搭建完毕，下一篇就开始写项目代码了。</span>
				<br />
				<br />
				<a title="struts+spring+hibernate的web应用&lt;二&gt; Dao层代码编写" href="/rickhunter/articles/103517.html" target="_blank">struts+spring+hibernate的web应用&lt;二&gt; Dao层代码编写</a>
		</p>
<img src ="http://www.blogjava.net/rickhunter/aggbug/103481.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2007-03-13 11:24 <a href="http://www.blogjava.net/rickhunter/articles/103481.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转贴]JSP语法详解</title><link>http://www.blogjava.net/rickhunter/articles/52674.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Wed, 14 Jun 2006 02:13:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/52674.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/52674.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/52674.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/52674.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/52674.html</trackback:ping><description><![CDATA[
		<span class="tpc_content">
				<b>  1)HTML注释:</b>
				<br />
				<br />&lt;!-- 注释内容 [ &lt;%= 表达式 %&gt; ] --&gt; <br /><br />可以用注释内容,也可以用表达式.<br /><br /><b>2)隐藏注释:</b><br /><br />&lt;%-- 注释内容 --%&gt; <br /><br />注释会被JSP编译时被忽略.编译器不会对&lt;%-- --%&gt;之间的语句编译,它不会显示在客户的浏览器和源代码中.<br /><br /><b>3)声明:</b><br /><br />&lt;%! 声明变量or方法 %&gt; <br /><br />声明你将要在JSP程序中用到的变量和方法.可以一次性声明多个变量和方法，要以";"结尾,声明在Java中要合法.<br /><br /><b>4)表达式:</b><br /><br />&lt;%= 表达式 %&gt; <br /><br />JAVA中的表达式,会被显示在JSP页面中,注意不要有";".<br /><br /><b>5)JAVA代码:</b><br /><br />&lt;% JAVA代码 %&gt; <br /><br />包含有效JAVA代码.<br /><br /><b>6)Include指令</b>:<br /><br />&lt;%@ include file="相对路径" %&gt;  <br /><br />可以包含HTML,JSP,文本文件,JAVA代码,要注意在这个包含文件中不能使用&lt;html&gt;&lt;body&gt;有时会导致错误. <br /><br />属性:<br /><br />file指相对路径,如:"error.jsp""templates/onlinestore.html""/beans/calendar.jsp" <br /><br />如果这个路径以"/"开头，那么这个路径主要是参照JSP应用的上下关系路径，如果路径是以文件名或目录名开头，那么这个路径就是正在使用的JSP文件的当前路径.<br /><br /><b>7)Page指令:</b><br /><br />&lt;%@ page <br /><br />[ language="java" ] <br /><br />[ extends="package.class" ] <br /><br />[ import="{package.class | package.*}, ..." ] <br /><br />[ session="true | false" ] <br /><br />[ buffer="none | 8kb | sizekb" ] <br /><br />[ autoFlush="true | false" ] <br /><br />[ isThreadSafe="true | false" ] <br /><br />[ info="text" ] <br /><br />[ errorPage="relativeURL" ] <br /><br />[ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-<br /><br /><br />8859-1" ] <br /><br />[ isErrorPage="true | false" ] <br /><br />%&gt; <br /><br />属性:<br /><br />-language="java"<br /><br />声明脚本语言的种类，暂时只能用"java" <br /><br />-extends="package.class"<br /><br />继承一个类<br /><br />-import="{package.class | package.* }, ..."<br /><br />导入一个包,下面的包是默认自动导入的.<br /><br />java.lang.*,javax.servlet.*,javax.servlet.jsp.*,javax.servlet.http.*<br /><br />-session="true | false"<br /><br />是否允许session会话,默认true.<br /><br />-buffer="none | 8kb | sizekb"<br /><br />设置缓冲区大小默认值是8kb,none是关闭缓冲区,sizekb是自己设置大小.<br /><br />-autoFlush="true | false"<br /><br />是否刷新缓冲区,true(缺省值)输出正常,false这个buffer溢出,就会导致一个错误,buffer设置为none,就要把这个设置为false.<br /><br />-isThreadSafe="true | false"<br /><br />设置Jsp文件是否能多线程使用。缺省值是true.<br /><br />-info="text"<br /><br />就是JSP的一些信息,能够使用Servlet.getServletInfo方法取回.<br /><br />-errorPage="relativeURL"<br /><br />指定接收Exception对象的JSP页面的URL.<br /><br />-isErrorPage="true | false"<br /><br />设置是否接收一个Exception对象.<br /><br />-contentType="text/html;charset=ISO-8859-1"<br /><br />设置页面类型和字符集.缺省类型是:text/html,缺省字符集为 ISO-8859-1.<br /><br /><b>8)&lt;jsp:forward&gt;标签:</b><br /><br />&lt;jsp:forward page="URL or 表达式"/&gt;<br /><br />&lt;jsp:forward page="URL or 表达式"&gt;<br /><br />&lt;jsp:param name="参数名" value="参数值 or 表达式" /&gt;&lt;/jsp:forward&gt; <br /><br />转发一个request对象.&lt;jsp:param&gt;可以传参,目标文件必须能够处理参数.如果使用非缓冲输<br /><br />出,而且在使用&lt;jsp:forward&gt;之前,jsp文件已经有了数据,那么文件执行就会出错. <br /><br />属性:<br /><br />-page="URL or 表达式"要转发的文件URL或者是一个代表URL的表达式.<br /><br />-&lt;jsp:param name="参数名" value="参数值 or 表达式" /&gt;name参数名value参数值.<br /><br /><b>9)&lt;jsp:include&gt;标签:</b><br /><br />&lt;jsp:include page="URL or 表达式" flush="true" /&gt; <br /><br />&lt;jsp:include page="URL or 表达式" flush="true" &gt; <br /><br />&lt;jsp:param name="参数名" value="参数值 or 表达式" /&gt;+ <br /><br />&lt;/jsp:include&gt; <br /><br />允许包含动态文件和静态文件,动态的会被Jsp编译器执行.不能从文件名上判断是动态的还是静态的.&lt;jsp:param&gt;可以传递参数. <br /><br />属性:<br /><br />-page="URL or 表达式"要包含文件的相对路径,或者是代表相对路径的表达.式. <br /><br />-flush="true"这里你必须使用flush="true",你不能使用false值.缺省值为false.<br /><br />&lt;jsp:param&gt;能传递一个或多个参数给动态文件,能在一个页面中使用多个&lt;jsp:param&gt;来传递多个参数.<br /><br /><b>10)&lt;jsp:getProperty&gt;标签:</b><br /><br />&lt;jsp:getProperty name="Bean实例名" property="属性名" /&gt; <br /><br />获得Bean的属性值之前,必须用&lt;jsp:useBean&gt;创建Bean.name指定新建Bean的id.只能JavaBean<br /><br />属性:<br /><br />-name="bean的名字"由&lt;jsp:useBean&gt;的id属性指定.<br /><br />-property="bean的属性"所指定的Bean的属性名.<br /><br /><b>11)&lt;jsp:setProperty&gt;标签:</b><br /><br />&lt;jsp:setProperty <br /><br />name="Bean的id" <br /><br />{ <br /><br />property= "*" <br /><br />property="propertyName" [ param="parameterName" ] <br /><br />property="propertyName" value="{string | &lt;%= expression %&gt;}" <br /><br />}/&gt; <br /><br />&lt;jsp:setProperty&gt;的name的值应当于&lt;jsp:useBean&gt;中id的值<br /><br />多种方法来设定属性值 : <br /><br />通过用户输入的所有值(被做为参数储存中request对象中)来匹配Bean中的属性 <br /><br />通过用户输入的指定的值来匹配Bean中指定的属性 <br /><br />在运行时使用一个表达式来匹配Bean的属性 <br /><br />属性:<br /><br />-name="Bean名称"表示已经在&lt;jsp:useBean&gt;中的id设置的Bean变量.<br /><br />-property="Bean属性名" value="要设置的属性名"如果你使用了property="*",那么Bean的属性没有必要按Html表单中的顺序排序.<br /><br />-property
="*"储存用户在Jsp输入的所有值,用于匹配Bean中的属性.在Bean中的属性的名字必须和request对象中的参数名一致.从客户传到服器上
的参数值一般都是字符类型,这些字符串为了能够在Bean中匹配就必须转换成其它的类型,下面的表中列出了Bean属性的类型以及他们的转换方法.把字符
串转化为其它<br /><br />类型的方法,Property 类型方法:<br /><br />boolean or Boolean <br /><br />java.lang.Boolean.valueOf(String) <br /><br />byte or Byte <br /><br />java.lang.Byte.valueOf(String) <br /><br />char or Character <br /><br />java.lang.Character.valueOf(String) <br /><br />double or Double <br /><br />java.lang.Double.valueOf(String) <br /><br />integer or Integer <br /><br />java.lang.Integer.valueOf(String) <br /><br />float or Float <br /><br />java.lang.Float.valueOf(String) <br /><br />long or Long <br /><br />java.lang.Long.valueOf(String) <br /><br /><b>12)&lt;jsp:useBean&gt;标签:</b><br /><br />&lt;jsp:useBean <br /><br />id="beanInstanceName" <br /><br />scope="page | request | session | application" <br /><br />{ <br /><br />class="package.class" | <br /><br />type="package.class" | <br /><br />class="package.class" type="package.class" | <br /><br />beanName="{package.class | &lt;%= expression %&gt;}" type="package.class" <br /><br />} <br /><br />/&gt;other elements&lt;/jsp:useBean&gt; <br /><br />用于创建一个JavaBeans组件,首先会试图定位一个Bean实例，如果不存在，那么就会从创建一个新的.<br /><br />属性:<br /><br />-id="创建的Bean变量名称"<br /><br />在你所定义的范围中确认Bean的变量，你能在后面的程序中使用此变量名来分辨不同的Bean 这个变量名对大小写敏感，如果这个Bean已经在别的&lt;jsp:useBean&gt;中创建，那么这个id的值必须与原来的那个id值一致. <br /><br />-scope="page | request | session | application"Bean存在的范围以及id变量名的有效范围.缺省值是page.<br /><br /><b>13)&lt;jsp:plugin&gt;标签: </b><br /><br />&lt;jsp:plugin <br /><br />type="bean | applet" <br /><br />code="classFileName" <br /><br />codebase="classFileDirectoryName" <br /><br />[ name="instanceName" ] <br /><br />[ archive="URIToArchive, ..." ] <br /><br />[ align="bottom | top | middle | left | right" ] <br /><br />[ height="displayPixels" ] <br /><br />[ width="displayPixels" ] <br /><br />[ hspace="leftRightPixels" ] <br /><br />[ vspace="topBottomPixels" ] <br /><br />[ jreversion="JREVersionNumber | 1.1" ] <br /><br />[ nspluginurl="URLToPlugin" ] <br /><br />[ iepluginurl="URLToPlugin" ] &gt; <br /><br />[ &lt;jsp:params&gt; <br /><br />[ &lt;jsp:param name="parameterName" value="{parameterValue | &lt;%= expression %&gt;}" /&gt; <br /><br />[ &lt;/jsp:params&gt; ]<br /><br />[ &lt;jsp:fallback&gt; text message for user &lt;/jsp:fallback&gt; ] <br /><br />&lt;/jsp:plugin&gt; <br /><br />用于在浏览器中播放或显示一个对象(典型的就是applet和Bean),而这种显示需要在浏览器的java插件.当Jsp文件被编译,送往浏览器时,&lt;jsp:plugin&gt;标签将会根据浏览器的版本替换成<br /><br />&lt;
object&gt;或者&lt;embed&gt;元素.注意&lt;object&gt;用于HTML 4.0
,&lt;embed&gt;用于HTML
3.2.一般来说,这个标签会指定对象是Applet还是Bean,同样也会指定class的名字,还有位置,另外还会指定将从哪里下载这个Java插
件.<br /><br />属性:<br /><br />-type="bean | applet"将被执行的插件对象的类型,你必须得指定这个是Bean还是applet,因为这个属性没有缺省值. <br /><br />-code="classFileName"将会被Java插件执行的Java Class的名字,必须以.class结尾,这个文件必须存在于codebase属性指定的目录中. <br /><br />-codebase="classFileDirectoryName"<br /><br />将会被执行的Java Class文件的目录(或者是路径),如果你没有提供此属性,使用本标签的JSP文件的目录会被使用.<br /><br />-name="instanceName"<br /><br />这个Bean或applet实例的名字,它将会在Jsp其它的地方调用. <br /><br />-archive="URIToArchive, ..."<br /><br />一些由逗号分开的路径名,这些路径名用于预装一些将要使用的class,这会提高applet的性能.类似于classpath.<br /><br />-align="bottom | top | middle | left | right"<br /><br />图形,对象,Applet的位置.</span>
<img src ="http://www.blogjava.net/rickhunter/aggbug/52674.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2006-06-14 10:13 <a href="http://www.blogjava.net/rickhunter/articles/52674.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用JDBC连接Oracle9i</title><link>http://www.blogjava.net/rickhunter/articles/34905.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Sun, 12 Mar 2006 05:33:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/34905.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/34905.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/34905.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/34905.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/34905.html</trackback:ping><description><![CDATA[1、在数据库中建库，建表：<br>
&nbsp;&nbsp;&nbsp; create database books;<br>
<br>
&nbsp;&nbsp;&nbsp; use books;<br>
&nbsp;&nbsp;&nbsp; create table book(bookId varchar(50) primary key,bookName varchar(50),publisher varchar(100),price float);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; insert into book values('1001','Tomcat与Java Web开发技术详解','电子工业出版社',45.00);<br>
&nbsp;&nbsp;&nbsp; insert into book values('1002','精通Struts：基于MVC的Java Web设计与开发','电子工业出版社',49.00);<br>
&nbsp;&nbsp;&nbsp; insert into book values('1003','精通Hibernater：Java对象持久化技术详解','电子工业出版社',59.00);<br>
&nbsp;&nbsp;&nbsp; insert into book values('1004','精通EJB','电子工业出版社',59.00);<br>
&nbsp;&nbsp;&nbsp; insert into book values('1005','J2EE应用与BEA Weblogic Server','电子工业出版社',56.00);<br><br>2、创建Web应用，注意Web应用的目录结构。<br>
&nbsp;&nbsp;&nbsp; 编写jsp程序：<br>
&nbsp;&nbsp;&nbsp; &lt;%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;html&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;body&gt;<br>
&nbsp;&nbsp;&nbsp; 以下是从Oracle9i数据库读取的数据：&lt;hr&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;table border=1&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;tr&gt;&lt;td&gt;id&lt;/td&gt;&lt;td&gt;书名&lt;/td&gt;&lt;td&gt;出版社
&lt;/td&gt;&lt;td&gt;价格&lt;/td&gt;&lt;/tr&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;%<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  //注意黑体字<br>
&nbsp; &nbsp;&nbsp; &nbsp; Class.forName("<span style="font-weight: bold;">oracle.jdbc.driver.OracleDriver</span>").newInstance();<br>
&nbsp; &nbsp;&nbsp; &nbsp; Connection &nbsp;&nbsp;&nbsp; con=java.sql.DriverManager.getConnection("<span style="font-weight: bold;">jdbc:oracle:thin:@localhost:1521:oracle9"</span>,<b>"admin","admin"</b>);////其中oracle9为SID<br>
&nbsp; &nbsp;&nbsp; &nbsp; Statement stmt=con.createStatement();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ResultSet rst=stmt.executeQuery("select * from book");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while(rst.next())<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; out.println("&lt;tr&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; out.println("&lt;td&gt;"+rst.getString("bookId")+"&lt;/td&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; out.println("&lt;td&gt;"+rst.getString("bookName")+"&lt;/td&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; out.println("&lt;td&gt;"+rst.getString("publisher")+"&lt;/td&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; out.println("&lt;td&gt;"+rst.getFloat("price")+"&lt;/td&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; out.println("&lt;/tr&gt;");<br>
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; }<br>
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; //关闭连接<br>
&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; rst.close();<br>
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; stmt.close();<br>
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; con.close();<br>
&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; %&gt;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/body&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/html&gt;<br><br>
3、将classes12.jar这个驱动包放到tomcat\common\lib下。<br><br>4、运行tomcat，在浏览器浏览。<br><img src ="http://www.blogjava.net/rickhunter/aggbug/34905.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2006-03-12 13:33 <a href="http://www.blogjava.net/rickhunter/articles/34905.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决web开发中的中文问题。</title><link>http://www.blogjava.net/rickhunter/articles/33571.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Sat, 04 Mar 2006 02:20:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/33571.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/33571.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/33571.html#Feedback</comments><slash:comments>16</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/33571.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/33571.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;
这段时间经常看到有人问到web开发中怎么中文总是?号。原因其实很简单，因为大家大多用的是tomcat服务器，而tomcat服务器的默认编码为
iso-8859-1(西欧字符)。就是因为iso-8859-1(西欧字符)编码造成了我们经常看到？号。关于iso-8859-1(西欧字符)更多知
识请看<a href="http://www.regexlab.com/zh/encoding.htm#un" name="main">《字节，字符和编码</a><a href="http://www.regexlab.com/zh/encoding.htm#un">》</a>这篇文章。<br>
<br>
方法一：最简单也是用的最多的方法。<br>
&lt;%@ page language="java" pageEncoding="GBK" %&gt;<br>
或者&lt;%@ page contenttype="text/html;charset=gbk";&gt;这里可以用gb2312或者gbk，只是gbk比gb2312支持跟多的字符。<br>
<br>
这个方法用于jsp页面中的中文显示。<br>
<br>
方法二：使用过滤器。<br>
过滤器使用主要针对表单提交，插入数据库的数据都是？号。这也是应为tomcat不按request所指定的编码进行编码，还是自作主张的采用默认编码方式iso-8859-1编码。<br>
编写一个SetCharacterEncodingFilter类。<br>
import java.io.IOException;<br>
<br>
import javax.servlet.Filter;<br>
import javax.servlet.FilterChain;<br>
import javax.servlet.FilterConfig;<br>
import javax.servlet.ServletException;<br>
import javax.servlet.ServletRequest;<br>
import javax.servlet.ServletResponse;<br>
<br>
public class SetCharacterEncodingFilter implements Filter {<br>
protected String encoding = null;<br>
protected FilterConfig filterConfig = null;<br>
protected boolean ignore = true;<br>
<br>
public void init(FilterConfig filterConfig) throws ServletException {<br>
this.filterConfig=filterConfig;<br>
this.encoding=filterConfig.getInitParameter("encoding");<br>
String value=filterConfig.getInitParameter("ignore");<br>
if(value==null)<br>
this.ignore=true;<br>
else if(value.equalsIgnoreCase("true"))<br>
this.ignore=true;<br>
else<br>
this.ignore=false;<br>
}<br>
<br>
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {<br>
// TODO 自动生成方法存根<br>
if (ignore || (request.getCharacterEncoding() == null)) {<br>
   String encoding = selectEncoding(request);<br>
        if (encoding != null)<br>
   request.setCharacterEncoding(encoding);<br>
}<br>
chain.doFilter(request, response);<br>
}<br>
<br>
public void destroy() {<br>
// TODO 自动生成方法存根<br>
this.encoding = null;<br>
this.filterConfig = null;<br>
}<br>
<br>
protected String selectEncoding(ServletRequest request) {<br>
  return (this.encoding);<br>
}<br>
}<br>
<br>
然后再web.xml加上<br>
&lt;!--  Set Character Encoding--&gt;<br>
  &lt;filter&gt;<br>
  &lt;filter-name&gt;Set Character Encoding&lt;/filter-name&gt;<br>
  &lt;filter-class&gt;com.struts.common.SetCharacterEncodingFilter&lt;/filter-class&gt;<br>
  &lt;init-param&gt;<br>
  &lt;param-name&gt;encoding&lt;/param-name&gt;<br>
  &lt;param-value&gt;UTF-8&lt;/param-value&gt;<br>
  &lt;/init-param&gt;<br>
  &lt;/filter&gt;<br>
  <br>
  &lt;filter-mapping&gt;<br>
  &lt;filter-name&gt;Set Character Encoding&lt;/filter-name&gt;<br>
  &lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br>
  &lt;/filter-mapping&gt;<br>
  &lt;!--   Set Character Encoding--&gt;<br>
<br>
使用过滤器的好处很多，特别是项目之中。<br>
而且在使用国际化时就更有用了，只要在页面指定&lt;%@ page language="java" pageEncoding="UTF-8" %&gt;，服务器就会根据本地Locale来显示正确的字符集。<br>
<br>
所以我特别推荐使用过滤器。<br>
<br>
方法三：修改tomcat的server.xml文件中URIEncoding。<br>
&lt;Connector<br>
debug="0"<br>
acceptCount="100"<br>
connectionTimeout="20000"<br>
disableUploadTimeout="true"<br>
port="80"<br>
redirectPort="8443"<br>
enableLookups="false"<br>
minSpareThreads="25"<br>
maxSpareThreads="75"<br>
maxThreads="150"<br>
maxPostSize="0"<br>
<font color="#0000ff"><b>URIEncoding="GBK"</b></font><br>
&gt;<br>
&lt;/Connector&gt;<br>
这个方法主要针对从url中获取字符串的问题。<br>
在tomcat5.0及以上版本，post和get方法在处理编码时有所不同。如果你在url中获取中文就会出现？号。但在tomcat4.1版本没有问题，因为tomcat4.1的post和get方法在处理编码时是一样的。<img src ="http://www.blogjava.net/rickhunter/aggbug/33571.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2006-03-04 10:20 <a href="http://www.blogjava.net/rickhunter/articles/33571.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何使用Log4j？</title><link>http://www.blogjava.net/rickhunter/articles/28133.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Sun, 15 Jan 2006 15:32:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/28133.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/28133.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/28133.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/28133.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/28133.html</trackback:ping><description><![CDATA[
		<font size="2">
				<strong>1、 Log4j是什么？<br /></strong>  Log4j可以帮助调试（有时候debug是发挥不了作 用的）和分析，要下载和了解更详细的内容，还是访问其官方网站吧：</font>
		<a href="http://jakarta.apache.org/log4j">
				<font size="2">http://jakarta.apache.org/log4j</font>
		</a>
		<font size="2">。<br /><br /><strong>2、Log4j的概念</strong><br />  <!--StartFragment --> Log4j中有三个主要的组件，它们分别是</font>
		<font size="2">Logger、Appender和Layout，L<!--StartFragment -->og4j
允许开发人员定义多个Logger，每个Logger拥有自己的名字，Logger之间通过名字来表明隶属关系。有一个Logger称为Root，它永远
存在，且不能通过名字检索或引用，可以通过Logger.getRootLogger()方法获得，其它Logger通过
Logger.getLogger(String name)方法。<br />   Appender则是用来指明将所有的log信息存放到什么地方，Log4j中支持多种appender，如<!--StartFragment --></font>
		<font size="3">
		</font>
		<font size="2">console、files、GUI components、NT Event Loggers等，一个Logger可以拥有多个Appender，也就是你既可以将Log信息输出到屏幕，同时存储到一个文件中。<br />   Layout的作用是控制Log信息的输出方式，也就是格式化输出的信息。<br />  
Log4j中将要输出的Log信息定义了5种级别，依次为DEBUG、INFO、WARN、ERROR和FATAL，当输出时，只有级别高过配置中规定的
级别的信息才能真正的输出，这样就很方便的来配置不同情况下要输出的内容，而不需要更改代码，这点实在是方便啊。<br /><br /><strong>3、Log4j的配置文件</strong><br /> 
虽然可以不用配置文件，而在程序中实现配置，但这种方法在如今的系统开发中显然是不可取的，能采用配置文件的地方一定一定要用配置文件。Log4j支持两
种格式的配置文件：XML格式和Java的property格式，本人更喜欢后者，首先看一个简单的例子吧，如下：<br /><br /></font>
		<font color="#614db3">
				<font size="2">  log4j.rootLogger=debug, <strong>stdout, R</strong><br />  log4j.appender.<strong>stdout</strong>=org.apache.log4j.ConsoleAppender<br />  log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br /><br />  # Pattern to output the caller's file name and line number.<br />  log4j.appender.stdout.layout.ConversionPattern=%5p [%t] <strong>(%F:%L)</strong> - %m%n<br /><br />  log4j.appender.<strong>R</strong>=org.apache.log4j.RollingFileAppender<br />  log4j.appender.R.File=example.log<br />  log4j.appender.R.MaxFileSize=</font>
				<font size="2">
						<strong>100KB<br /></strong>
						<br />  # Keep one backup file<br />  log4j.appender.R.MaxBackupIndex=1<br /><br />  log4j.appender.R.layout=org.apache.log4j.PatternLayout<br />  log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n         <br /><br /></font>
				<font color="#000000">
						<font size="2">  首先，是设置root，格式为<!--StartFragment --> log4j.rootLogger=[level],appenderName, ...，其中level就是设置需要输出信息的级别，后面是appender的输出的目的地，<!--StartFragment -->appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。</font>
						<font size="2">配置日志信息输出目的地Appender，其语法为<br /></font>
						<font size="2">  log4j.appender.appenderName = fully.qualified.name.of.appender.class<br />  log4j.appender.appenderName.option1 = value1<br />  ...<br />  log4j.appender.appenderName.option = valueN</font>
						<br />
						<font size="2">Log4j提供的appender有以下几种：<br />  org.apache.log4j.ConsoleAppender（控制台）<br />  org.apache.log4j.FileAppender（文件）<br />  org.apache.log4j.DailyRollingFileAppender（每天产生一个日志文件）<br />  org.apache.log4j.RollingFileAppender（文件大小到达指定尺寸的时候产生新文件）<br />  org.apache.log4j.WriterAppender（将日志信息以流格式发送到任意指定的地方）<br /></font>
				</font>
		</font>
		<font color="#614db3">
				<font color="#000000">
						<font size="2">配置日志信息的格式（布局），其语法为：<br /></font>
						<font size="2">  log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class<br />  log4j.appender.appenderName.layout.option1 = value1<br />  ....<br />  log4j.appender.appenderName.layout.option = valueN</font>
						<br />
						<font size="2">Log4j提供的layout有以下几种：<br />  org.apache.log4j.HTMLLayout（以HTML表格形式布局），<br />  org.apache.log4j.PatternLayout（可以灵活地指定布局模式），<br />  org.apache.log4j.SimpleLayout（包含日志信息的级别和信息字符串），<br />  org.apache.log4j.TTCCLayout（包含日志产生的时间、线程、类别等等信息） <br /><br /></font>
				</font>
		</font>
		<font color="#000000">
				<span style="font-size: 10.5pt;">
						<font size="2">
								<span lang="EN-US">Log4J采用类似C语言中的printf函数的打印格式格式化日志信息，打印参数如下： %m 输出代码中指定的消息<o:p></o:p></span>
						</font>
				</span>
		</font>
		<p>
				<font color="#000000">
						<span style="font-size: 10.5pt;">
								<font size="2">　　</font>
								<span lang="EN-US">
										<font size="2">%p 输出优先级，即DEBUG，INFO，WARN，ERROR，FATAL <br />　　%r 输出自应用启动到输出该log信息耗费的毫秒数 <br />　　%c 输出所属的类目，通常就是所在类的全名 <br />　　%t 输出产生该日志事件的线程名 <br />　　%n 输出一个回车换行符，Windows平台为“\r\n”，Unix平台为“\n” <br />　　%d 输出日志时间点的日期或时间，默认格式为ISO8601，也可以在其后指定格式，比如：%d{yyy MMM dd HH:mm:ss,SSS}，输出类似：</font>
								</span>
						</span>
						<st1:chsdate isrocdate="False" islunardate="False" day="18" month="10" year="2002">
								<span style="font-size: 10.5pt;" lang="EN-US">
										<font size="2">2002年10月18日</font>
								</span>
						</st1:chsdate>
						<span style="font-size: 10.5pt;" lang="EN-US">
								<font size="2"> 22：10：28，921 <br />　　%l 输出日志事件的发生位置，包括类目名、发生的线程，以及在代码中的行数。举例：Testlog4.main(TestLog4.java:10)</font>
						</span>
				</font>
		</p>
		<br />
		<font color="#614db3">
				<font color="#000000">
						<font size="2">
								<br />
								<strong>4、Log4j在程序中的使用</strong>
						</font>
				</font>
		</font>
		<font color="#614db3">
				<font color="#000000">
						<br />
				</font>
				<font color="#a0a0a0">
						<font color="#090909" size="2">  要在自己的程序中使用Log4j，首先需要将commons-logging.jar和logging-log4j-1.2.9.jar导入到构建路径中。然后再将log4j.properties放到src根目录下。这样就可以在程序中使用log4j了。在类中使用log4j，</font>
				</font>
		</font>
		<font color="#614db3">
				<font color="#a0a0a0">
						<font color="#090909" size="2">首先声明一个静态变量</font>
				</font>
		</font>
		<font color="#614db3">
				<font color="#a0a0a0">
						<font color="#090909" size="2">Logger
logger=Logger.getLog("classname")；现在就可以使用了，用法如下：logger.debug("debug
message")或者logger.info("info message")，看下面一个小例子：</font>
				</font>
		</font>
		<font color="#614db3">
				<font color="#a0a0a0">
						<br />
				</font>
				<br />
				<font size="2">  import com.foo.Bar;<br />  import org.apache.log4j.Logger;<br />  import org.apache.log4j.PropertyConfigurator;<br />  public class MyApp {<br />    static Logger logger = Logger.getLogger(MyApp.class.getName());<br />    public static void main(String[] args) {<br />      // BasicConfigurator replaced with PropertyConfigurator.<br />      PropertyConfigurator.configure(args[0]);<br />      logger.info("Entering application.");<br />      Bar bar = new Bar();<br />      bar.doIt();<br />      logger.info("Exiting application.");<br />    }<br />  }<br /><br /></font>
		</font>
		<font color="#614db3">
				<font color="#000000">
						<font size="2">
								<strong>
								</strong>
						</font>
				</font>
		</font>
		<br />
<img src ="http://www.blogjava.net/rickhunter/aggbug/28133.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2006-01-15 23:32 <a href="http://www.blogjava.net/rickhunter/articles/28133.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用JDBC连接SQL Server2000</title><link>http://www.blogjava.net/rickhunter/articles/15150.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Mon, 10 Oct 2005 10:14:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/15150.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/15150.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/15150.html#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/15150.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/15150.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 连接SQL Server2000并不复杂,一般有问题,一是检查自己的程序,而是检查驱动,三就是SQL Server2000最好打sp3以上的补丁，现在sp4都有了。<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; 1、在数据库中建库，建表：<br>
&nbsp;&nbsp;&nbsp; create database books;<br>
<br>
&nbsp;&nbsp;&nbsp; use books;<br>
&nbsp;&nbsp;&nbsp; create table book(bookId varchar(50) primary key,bookName varchar(50),publisher varchar(100),price float);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; insert into book values('1001','Tomcat与Java Web开发技术详解','电子工业出版社',45.00);<br>
&nbsp;&nbsp;&nbsp; insert into book values('1002','精通Struts：基于MVC的Java Web设计与开发','电子工业出版社',49.00);<br>
&nbsp;&nbsp;&nbsp; insert into book values('1003','精通Hibernater：Java对象持久化技术详解','电子工业出版社',59.00);<br>
&nbsp;&nbsp;&nbsp; insert into book values('1004','精通EJB','电子工业出版社',59.00);<br>
&nbsp;&nbsp;&nbsp; insert into book values('1005','J2EE应用与BEA Weblogic Server','电子工业出版社',56.00);<br>
<br>
&nbsp;&nbsp;&nbsp; 2、创建Web应用，注意Web应用的目录结构。<br>
&nbsp;&nbsp;&nbsp; 编写jsp程序：<br>
&nbsp;&nbsp;&nbsp; &lt;%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;html&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;body&gt;<br>
&nbsp;&nbsp;&nbsp; 以下是从Ms SQL Server2000数据库读取的数据：&lt;hr&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;table border=1&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;tr&gt;&lt;td&gt;id&lt;/td&gt;&lt;td&gt;书名&lt;/td&gt;&lt;td&gt;出版社
&lt;/td&gt;&lt;td&gt;价格&lt;/td&gt;&lt;/tr&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;%<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  //注意黑体字<br>
&nbsp; &nbsp;&nbsp; &nbsp; Class.forName("<span style="font-weight: bold;">com.microsoft.jdbc.sqlserver.SQLServerDriver</span>").newInstance();<br>
&nbsp; &nbsp;&nbsp; &nbsp; Connection &nbsp;&nbsp;&nbsp; con=java.sql.DriverManager.getConnection("<span style="font-weight: bold;">jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=books","sa",""</span>);<br>
&nbsp; &nbsp;&nbsp; &nbsp; Statement stmt=con.createStatement();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ResultSet rst=stmt.executeQuery("select * from book");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while(rst.next())<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; out.println("&lt;tr&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; out.println("&lt;td&gt;"+rst.getString("bookId")+"&lt;/td&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; out.println("&lt;td&gt;"+rst.getString("bookName")+"&lt;/td&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; out.println("&lt;td&gt;"+rst.getString("publisher")+"&lt;/td&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; out.println("&lt;td&gt;"+rst.getFloat("price")+"&lt;/td&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; out.println("&lt;/tr&gt;");<br>
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; }<br>
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; //关闭连接<br>
&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; rst.close();<br>
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; stmt.close();<br>
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; con.close();<br>
&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; %&gt;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/body&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/html&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; 3、将msbase.jar，mssqlserver.jar，msutil.jar这三个驱动包放到tomcat\common\lib下。<br>
<br>
&nbsp;&nbsp;&nbsp; 4、运行tomcat，在浏览器浏览：<br>
<br>
&nbsp;&nbsp;&nbsp; <img src="http://www.blogjava.net/images/blogjava_net/rickhunter/mssql.jpg" alt="mssql.jpg" border="0" height="441" width="610"><br>
<img src ="http://www.blogjava.net/rickhunter/aggbug/15150.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2005-10-10 18:14 <a href="http://www.blogjava.net/rickhunter/articles/15150.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>不用IDE工具使用JDBC连接MySQL</title><link>http://www.blogjava.net/rickhunter/articles/14827.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Wed, 05 Oct 2005 10:06:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/14827.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/14827.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/14827.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/14827.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/14827.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 最近看到网上不少朋友说用ＪＤＢＣ连不上MySQL．有的说用IDE做没问题，但不用IDE部署，自己部署就不成功．想知道为什么？<br>
&nbsp;&nbsp;&nbsp;
确实，我记得我那时也是搞不懂，也很郁闷．其实问题很简单，一、要注意web.xml,这可不是看看而已，写配置文件是j2ee的一件大事。二、注意驱动
放置的位置。三、注意项目的结构，你不要把jsp文件丢到WEB-INF文件夹下面去了。<br>
&nbsp;&nbsp;&nbsp; tomcat版本: tomcat-5.0.28;<br>
&nbsp;&nbsp;&nbsp; mysql版本: mysql-4.1.13-win32;<br>
<br>
&nbsp;&nbsp;&nbsp; 废话少说， 我来演示：<br>
&nbsp;&nbsp;&nbsp; 1、启动mysql。<br>
&nbsp;&nbsp;&nbsp; <img src="http://www.blogjava.net/images/blogjava_net/rickhunter/mysql/Snap1.jpg" alt="Snap1.jpg" border="0" height="431" width="668"><br>
<br>
&nbsp;&nbsp;&nbsp; <img src="http://www.blogjava.net/images/blogjava_net/rickhunter/mysql/Snap4.jpg" alt="Snap4.jpg" border="0" height="431" width="668"><br>
<br>
&nbsp;&nbsp;&nbsp; 2、建数据库，建表，我这都不演示了，请参考相关文章。<br>
<br>
&nbsp;&nbsp;&nbsp; 3、在tomcat中的webapps文件中建一个SQL文件夹,在SQL文件夹中再建一个WEB-INF文件夹,再在WEB-INF文件夹中建一个classes文件夹和web.xml文件。<br>
<br>
&nbsp;&nbsp;&nbsp; 4、web.xml代码如下：<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &lt;?xml version="1.0" ?&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems,
Inc.//DTD Web Application 2.3//EN" &nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; "http://java.sun.com/dtd/web-app_2_3.dtd"&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;!-- Copyright (c) 2002 by ObjectLearn. All Rights Reserved. --&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;web-app&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;welcome-file-list&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;welcome-file&gt;mysql.jsp&lt;/welcome-file&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/welcome-file-list&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/web-app&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; 5、在SQL文件夹中建一个mysql.jsp。代码如下：<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;html&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;body&gt;<br>
&nbsp;&nbsp;&nbsp; 以下是从MySQL数据库读取的数据：&lt;hr&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;table border=1&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;tr&gt;&lt;td&gt;ID&lt;/td&gt;&lt;td&gt;书名&lt;/td&gt;&lt;td&gt;出版社
&lt;/td&gt;&lt;td&gt;价格&lt;/td&gt;&lt;/tr&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;%<br>
<br>
&nbsp; &nbsp;&nbsp; &nbsp; Class.forName("com.mysql.jdbc.Driver").newInstance();<br>&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; Connection &nbsp;&nbsp;&nbsp;
con=java.sql.DriverManager.getConnection("jdbc:mysql://localhost/BookDB?useUnicode=true&amp;characterEncoding=GBK","t14cwf","cwf");<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Statement stmt=con.createStatement();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ResultSet rst=stmt.executeQuery("select * from book");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while(rst.next())<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; out.println("&lt;tr&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; out.println("&lt;td&gt;"+rst.getString("bookId")+"&lt;/td&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; out.println("&lt;td&gt;"+rst.getString("bookName")+"&lt;/td&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; out.println("&lt;td&gt;"+rst.getString("publisher")+"&lt;/td&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; out.println("&lt;td&gt;"+rst.getFloat("price")+"&lt;/td&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; out.println("&lt;/tr&gt;");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //关闭连接、释放资源<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rst.close();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; stmt.close();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; con.close();<br>
&nbsp;&nbsp;&nbsp;&nbsp; %&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/body&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/html&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; 6、将mysql-connector-java-3.1.10-bin.jar放到tomcat\common\lib中。<br>
<br>
&nbsp;&nbsp;&nbsp; 7、启动tomcat.<br>
&nbsp;&nbsp;&nbsp; <img src="http://www.blogjava.net/images/blogjava_net/rickhunter/mysql/Snap2.jpg" alt="Snap2.jpg" border="0" height="431" width="668"><br>
<br>
&nbsp;&nbsp;&nbsp; 8、在浏览器中浏览: <br>
&nbsp;&nbsp;&nbsp; <img src="http://www.blogjava.net/images/blogjava_net/rickhunter/mysql/Snap8.jpg" alt="Snap8.jpg" border="0" height="742" width="1024"><br>
<br>
<br>
<img src ="http://www.blogjava.net/rickhunter/aggbug/14827.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2005-10-05 18:06 <a href="http://www.blogjava.net/rickhunter/articles/14827.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP通过JDBC驱动MySQL数据库方法</title><link>http://www.blogjava.net/rickhunter/articles/14605.html</link><dc:creator>千山鸟飞绝</dc:creator><author>千山鸟飞绝</author><pubDate>Sat, 01 Oct 2005 09:06:00 GMT</pubDate><guid>http://www.blogjava.net/rickhunter/articles/14605.html</guid><wfw:comment>http://www.blogjava.net/rickhunter/comments/14605.html</wfw:comment><comments>http://www.blogjava.net/rickhunter/articles/14605.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rickhunter/comments/commentRss/14605.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rickhunter/services/trackbacks/14605.html</trackback:ping><description><![CDATA[关于MySQL数据库安装请参考下面这篇文章：<br /><a target="_blank" class="" title="" href="http://blog.csdn.net/javamxj/archive/2005/01/13/251861.aspx">快速上手 MySQL －－图形化操作详解</a><br /><br />
关于eclipse的使用，请参考我的blog其他文章。<br /><a target="_blank" class="" title="" href="http://blog.csdn.net/rickhunterchen/archive/2005/09/11/477382.aspx">在Eclipse3.1中如何配置Lomboz3.1</a><br /><a target="_blank" class="" title="" href="http://blog.csdn.net/rickhunterchen/archive/2005/09/11/477386.aspx">在Eclipse3.1中如何使用Lomboz3.1开发JSP</a><br /><br /><br />
1、首先在MySQL数据库中建立books数据库，再建book表。<br />
然后插入数据。SQL语言如下：<br /><br />
create database books;<br /><br />
use books;<br />
create table book(bookId varchar(50),bookName varchar(50),publisher
varchar(100),price float,constraint pk_book primary
key(bookId))<span style="font-weight: bold;">TYPE=MyISAM,default character set gbk</span>;（加粗字体是我在建表时就对默认字体进行的固定，因为我没有使用javamxj的在windows中加my.ini文件的做法）<br />
           <br />
insert into book values('1001','Tomcat与Java Web开发技术详解','电子工业出版社',45.00);<br />
insert into book values('1002','精通Struts：基于MVC的Java Web设计与开发','电子工业出版社',49.00);<br />
insert into book values('1003','精通Hibernater：Java对象持久化技术详解','电子工业出版社',59.00);<br />
insert into book values('1004','精通EJB','电子工业出版社',59.00);<br />
insert into book values('1005','J2EE应用与BEA Weblogic Server','电子工业出版社',56.00);<br /><br />
2、接着在eclipse3.1中建立一个名为MySQL的项目：<br /><br />
3、建议mysql.jsp文件。输入以下代码：<br />
&lt;%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%&gt;<br />
&lt;html&gt;<br />
&lt;body&gt;<br />
以下是从MySQL数据库读取的数据：&lt;hr&gt;<br />
&lt;table border=1&gt;<br />
&lt;tr&gt;&lt;td&gt;ID&lt;/td&gt;&lt;td&gt;书名&lt;/td&gt;&lt;td&gt;出版社&lt;/td&gt;&lt;td&gt;价格&lt;/td&gt;&lt;/tr&gt;<br /><br />
&lt;%<br />
   Class.forName("com.mysql.jdbc.Driver").newInstance();<br />
   Connection
con=java.sql.DriverManager.getConnection("jdbc:mysql://localhost/BookDB?useUnicode=true&amp;characterEncoding=GBK","t14cwf","cwf");<br />
   Statement stmt=con.createStatement();<br />
    ResultSet rst=stmt.executeQuery("select * from book");<br />
    while(rst.next())<br />
    {<br />
        out.println("&lt;tr&gt;");<br />
        out.println("&lt;td&gt;"+rst.getString("bookId")+"&lt;/td&gt;");<br />
        out.println("&lt;td&gt;"+rst.getString("bookName")+"&lt;/td&gt;");<br />
        out.println("&lt;td&gt;"+rst.getString("publisher")+"&lt;/td&gt;");<br />
        out.println("&lt;td&gt;"+rst.getFloat("price")+"&lt;/td&gt;");<br />
        out.println("&lt;/tr&gt;");<br />
    }<br />
    //关闭连接、释放资源<br />
    rst.close();<br />
    stmt.close();<br />
    con.close();<br />
    %&gt;<br />
&lt;/table&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br /><br />
4、将mysql-connector-java-3.1.10-bin.jar文件复制到tomcat\common\lib<br /><br />
5、可以在eclipse中运行jsp文件了。<br /><br />
6、运行结果：<br /><br /><img src="http://www.blogjava.net/images/blogjava_net/rickhunter/MySQL.jpg" alt="MySQL.jpg" border="0" height="472" width="792" /><br /><br />
很多人连接不上数据库最多的原因还在于web.xml文件问题。<br />
一下是lomboz自动生成的web.xml：<br />
&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"&gt;<br />
    &lt;display-name&gt;<br />
    MySQL&lt;/display-name&gt;<br />
    &lt;welcome-file-list&gt;<br />
        &lt;welcome-file&gt;index.html&lt;/welcome-file&gt;<br />
        &lt;welcome-file&gt;index.htm&lt;/welcome-file&gt;<br />
        &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;<br />
        &lt;welcome-file&gt;default.html&lt;/welcome-file&gt;<br />
        &lt;welcome-file&gt;default.htm&lt;/welcome-file&gt;<br />
        &lt;welcome-file&gt;default.jsp&lt;/welcome-file&gt;<br />
    &lt;/welcome-file-list&gt;<br />
&lt;/web-app&gt;<br /><img src ="http://www.blogjava.net/rickhunter/aggbug/14605.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rickhunter/" target="_blank">千山鸟飞绝</a> 2005-10-01 17:06 <a href="http://www.blogjava.net/rickhunter/articles/14605.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>