﻿<?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-all gone-随笔分类-Java</title><link>http://www.blogjava.net/felicity/category/5829.html</link><description>all gone</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 05:58:08 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 05:58:08 GMT</pubDate><ttl>60</ttl><item><title>Struts2 入门</title><link>http://www.blogjava.net/felicity/archive/2007/01/08/92473.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Mon, 08 Jan 2007 13:59:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2007/01/08/92473.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/92473.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2007/01/08/92473.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/92473.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/92473.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 很久没有看Java相关的东西了，这几天才发现Struts2 已经发布了，以前就听说Struts2就是以前的Webwork2，只是作了少许的改动而已，我以前也没看过Webwork，所以赶紧下来试了一把。Struts2的地址：http://struts.apache.org/2.x在Eclipse中新建了一个Tomcat工程（如果用WTP插件的话Dynamic Web工程）struts2Test，以下...&nbsp;&nbsp;<a href='http://www.blogjava.net/felicity/archive/2007/01/08/92473.html'>阅读全文</a><img src ="http://www.blogjava.net/felicity/aggbug/92473.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2007-01-08 21:59 <a href="http://www.blogjava.net/felicity/archive/2007/01/08/92473.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EJB3.0 + Struts小试</title><link>http://www.blogjava.net/felicity/archive/2006/08/11/62942.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Fri, 11 Aug 2006 05:52:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2006/08/11/62942.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/62942.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2006/08/11/62942.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/62942.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/62942.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一直想做一个 EJB3.0 结合 Struts 的例子，前天刚好从网上找到了一个相关的 Tutorial ，于是小试了一把，虽然只是完成了 Tutorial 上的一小点功能，但是感觉还是有必要写下来，免得以后还要再去看别人的Tutorial 。 						开发环境：       Eclipse3.2 + WTP1.5 ， JBoss 4.0.3SP1 ， jboss-EJB-3.0_RC...&nbsp;&nbsp;<a href='http://www.blogjava.net/felicity/archive/2006/08/11/62942.html'>阅读全文</a><img src ="http://www.blogjava.net/felicity/aggbug/62942.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2006-08-11 13:52 <a href="http://www.blogjava.net/felicity/archive/2006/08/11/62942.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SSH(Spring + Struts + Hibernate)小试 之三 </title><link>http://www.blogjava.net/felicity/archive/2006/07/18/58810.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Tue, 18 Jul 2006 08:41:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2006/07/18/58810.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/58810.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2006/07/18/58810.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/58810.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/58810.html</trackback:ping><description><![CDATA[SSH(Spring + Struts + Hibernate)小试 之三 <br /><br /><br />前面通过PlugIn我们实现了Spring Context的加载，不过仅仅加载Context并没有什么实际 <br />意义，我们还需要修改配置，将Struts Action交给Spring容器进行管理。下面将通过一个Regsit <br />实例加以说明。 <br /><br />首先准备好regist.jsp和login.jsp,在regist.jsp中 的form有name,password,password2,email域。 <br /><br />在struts-config.xml中添加配置： <br /><br />&lt;form-bean name="registForm" type="com.lzy.forum.form.RegistForm" /&gt; <br /><br />&lt;action path="/regist" name="registForm" <br />type="org.springframework.web.struts.DelegatingActionProxy" <br /><br />validate="true" input="/regist.jsp" scope="request"&gt; <br />&lt;forward name="failure" path="/regist.jsp" /&gt; <br />&lt;forward name="success" path="/login.jsp" /&gt; <br />&lt;/action&gt; <br /><br /><br />RegistForm,RegistAction按照原来Struts的方法去写,我在RegistAction中加入了一个UserDAO对象 <br />userDAO，这个对象由Spring注入。 <br /><br />&lt;bean name="/regist" class="com.lzy.forum.action.RegistAction" <br />singleton="false"&gt; <br />&lt;property name="userDAO"&gt; <br />&lt;ref local="userDAO" /&gt; <br />&lt;/property&gt; <br />&lt;/bean&gt; <br /><br />基本上SSH的架构已经完成，经确认后可以自己测试一下了。（完） <br /><img src ="http://www.blogjava.net/felicity/aggbug/58810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2006-07-18 16:41 <a href="http://www.blogjava.net/felicity/archive/2006/07/18/58810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SSH(Spring + Struts + Hibernate)小试 之二</title><link>http://www.blogjava.net/felicity/archive/2006/07/18/58802.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Tue, 18 Jul 2006 08:09:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2006/07/18/58802.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/58802.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2006/07/18/58802.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/58802.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/58802.html</trackback:ping><description><![CDATA[
		<p>Spring和Struts结合有几种方法，我选了最常用的PlugIn方式，在struts-config.xml中加入<br /><br /><font color="#a52a2a">&lt;plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"&gt;<br />      &lt;set-property property="contextConfigLocation"<br />            value="/WEB-INF/action-servlet.xml" /&gt;<br /> &lt;/plug-in&gt;<br /><br /><font color="#000000">WEB-INF目录下的action-servlet.xml就是Spring的配置文件,下面给出的是整个的</font><font color="#ff0000">action-servlet.xml<font color="#000000">文件：</font><br /></font><br />&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "<a href="http://www.springframework.org/dtd/spring-beans.dtd">http://www.springframework.org/dtd/spring-beans.dtd</a>"&gt;<br />&lt;beans&gt;<br /><br /></font><font color="#ff0000">//Data Source</font></p>
		<p>
				<font color="#a52a2a"> &lt;bean id="dataSource"<br />  class="org.springframework.jdbc.datasource.DriverManagerDataSource"&gt;<br />  &lt;property name="driverClassName"&gt;<br />   &lt;value&gt;com.mysql.jdbc.Driver&lt;/value&gt;<br />  &lt;/property&gt;<br />  &lt;property name="url"&gt;<br />   &lt;value&gt;jdbc:mysql://localhost:3306/forum&lt;/value&gt;<br />  &lt;/property&gt;<br />  &lt;property name="username"&gt;<br />   &lt;value&gt;test&lt;/value&gt;<br />  &lt;/property&gt;<br />  &lt;property name="password"&gt;<br />   &lt;null /&gt;<br />  &lt;/property&gt;<br /> &lt;/bean&gt;</font>
		</p>
		<font color="#a52a2a">
				<p>
						<font color="#ff0000">// For Hibernate </font>
						<br /> <font color="#a52a2a">&lt;bean id="sessionFactory"<br />  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt;<br />  &lt;property name="dataSource"&gt;<br />   &lt;ref local="dataSource" /&gt;<br />  &lt;/property&gt;<br />  &lt;property name="mappingResources"&gt;<br />   &lt;list&gt;<br />    &lt;value&gt;com/lzy/forum/domain/User.hbm.xml&lt;/value&gt;<br />    &lt;value&gt;com/lzy/forum/domain/Article.hbm.xml&lt;/value&gt;<br />    &lt;value&gt;com/lzy/forum/domain/Board.hbm.xml&lt;/value&gt;<br />   &lt;/list&gt;<br />  &lt;/property&gt;<br />  &lt;property name="hibernateProperties"&gt;<br />   &lt;props&gt;<br />    &lt;prop key="hibernate.dialect"&gt;<br />     org.hibernate.dialect.MySQLDialect<br />    &lt;/prop&gt;<br />    &lt;prop key="hibernate.show_sql"&gt;true&lt;/prop&gt;<br />   &lt;/props&gt;<br />  &lt;/property&gt;<br /> &lt;/bean&gt;</font></p>
				<p>
						<font color="#a52a2a"> &lt;bean id="transactionManager"<br />  class="org.springframework.orm.hibernate3.HibernateTransactionManager"&gt;<br />  &lt;property name="sessionFactory"&gt;<br />   &lt;ref local="sessionFactory" /&gt;<br />  &lt;/property&gt;<br /> &lt;/bean&gt;</font>
				</p>
				<p>
						<font color="#a52a2a">
						</font> </p>
				<p>
						<font color="#ff0000">// For DAO</font>
						<br />
						<font color="#a52a2a"> &lt;bean id="userDAO"<br />  class="com.lzy.forum.dao.impl.UserDAOHibernate"&gt;<br />  &lt;property name="sessionFactory"&gt;<br />   &lt;ref local="sessionFactory" /&gt;<br />  &lt;/property&gt;<br /> &lt;/bean&gt;</font>
				</p>
				<p>
						<font color="#a52a2a">
						</font> </p>
				<p>
						<font color="#a52a2a"> &lt;bean id="boardDAO"<br />  class="com.lzy.forum.dao.impl.BoardDAOHibernate"&gt;<br />  &lt;property name="sessionFactory"&gt;<br />   &lt;ref local="sessionFactory" /&gt;<br />  &lt;/property&gt;<br /> &lt;/bean&gt;</font>
				</p>
				<p>
						<font color="#a52a2a"> &lt;bean id="articleDAO"<br />  class="com.lzy.forum.dao.impl.ArticleDAOHibernate"&gt;<br />  &lt;property name="sessionFactory"&gt;<br />   &lt;ref local="sessionFactory" /&gt;<br />  &lt;/property&gt;<br /> &lt;/bean&gt;</font>
				</p>
				<p>
						<font color="#a52a2a">
								<font color="#ff0000">//For Struts Action</font>
						</font>
				</p>
				<p>
						<font color="#a52a2a"> &lt;bean name="/regist" class="com.lzy.forum.action.RegistAction"<br />  singleton="false"&gt;<br />  &lt;property name="userDAO"&gt;<br />   &lt;ref local="userDAO" /&gt;<br />  &lt;/property&gt;</font>
				</p>
				<p>
						<font color="#a52a2a"> &lt;/bean&gt;</font>
				</p>
				<p>
						<br />
						<font color="#a52a2a"> &lt;bean name="/login" class="com.lzy.forum.action.LoginAction"<br />  singleton="false"&gt;<br />  &lt;property name="userDAO"&gt;<br />   &lt;ref local="userDAO" /&gt;<br />  &lt;/property&gt;</font>
				</p>
				<p>
						<font color="#a52a2a"> &lt;/bean&gt;</font>
				</p>
				<p>
						<font color="#a52a2a"> &lt;bean name="/boardManage"<br />  class="com.lzy.forum.action.BoardManageAction" singleton="false"&gt;<br />  &lt;property name="userDAO"&gt;<br />   &lt;ref local="userDAO" /&gt;<br />  &lt;/property&gt;<br />  &lt;property name="boardDAO"&gt;<br />   &lt;ref local="boardDAO" /&gt;<br />  &lt;/property&gt;</font>
				</p>
				<p>
						<font color="#a52a2a"> &lt;/bean&gt;</font>
				</p>
				<p>
						<font color="#a52a2a"> &lt;bean name="/boardNavigate"<br />  class="com.lzy.forum.action.BoardNavigateAction" singleton="false"&gt;<br />  &lt;property name="boardDAO"&gt;<br />   &lt;ref local="boardDAO" /&gt;<br />  &lt;/property&gt;</font>
				</p>
				<p>
						<font color="#a52a2a"> &lt;/bean&gt;</font>
				</p>
				<p> &lt;bean name="/boardDisplay"<br />  class="com.lzy.forum.action.BoardDisplayAction" singleton="false"&gt;<br />  &lt;property name="boardDAO"&gt;<br />   &lt;ref local="boardDAO" /&gt;<br />  &lt;/property&gt;</p>
				<p> &lt;/bean&gt;</p>
				<p> &lt;bean name="/articleManage"<br />  class="com.lzy.forum.action.ArticleManageAction" singleton="false"&gt;<br />  &lt;property name="userDAO"&gt;<br />   &lt;ref local="userDAO" /&gt;<br />  &lt;/property&gt;<br />  &lt;property name="boardDAO"&gt;<br />   &lt;ref local="boardDAO" /&gt;<br />  &lt;/property&gt;<br />  &lt;property name="articleDAO"&gt;<br />   &lt;ref local="articleDAO" /&gt;<br />  &lt;/property&gt;</p>
				<p>
						<br /> &lt;/bean&gt;</p>
				<p>
						<br />&lt;/beans&gt;<br /><br /><font color="#000000">经过这样的配置之后，Hibernate事务交由Spring管理，sessionFactory从Spring容器获得。下面通过其中的一个DAO实例来看看这样做带来的方便。<br /></font><br /><br /><font color="#ff0000">//BoardDAO.java<br /></font><br /><font color="#0000ff">package com.lzy.forum.dao;</font></p>
				<p>
						<font color="#0000ff">import java.util.ArrayList;</font>
				</p>
				<p>
						<font color="#0000ff">import com.lzy.forum.domain.Board;</font>
				</p>
				<p>
						<font color="#0000ff">public interface BoardDAO {<br /> <br /> public boolean isBoardExist(String name);<br /> <br /> public void addBoard(Board board);<br /> <br /> public void deleteBoard(Board board);<br /> <br /> public Board loadBoard(int id);<br /> <br /> public Board loadBoard(String name);<br /> <br /> public Board loadBoardWithArticles(int id);<br /> <br /> public ArrayList getRootBoardsList();<br /> <br /> <br /> <br />}<br /><br /><br /><font color="#ff0000">//BoardDAOHibernate.java</font><br /><br />package com.lzy.forum.dao.impl;</font>
				</p>
				<p>
						<font color="#0000ff">import java.util.ArrayList;<br />import java.util.Iterator;<br />import java.util.ListIterator;<br />import java.util.Set;</font>
				</p>
				<p>
						<font color="#0000ff">import org.hibernate.Hibernate;<br />import org.springframework.orm.hibernate3.support.HibernateDaoSupport;</font>
				</p>
				<p>
						<font color="#0000ff">import com.lzy.forum.dao.BoardDAO;<br />import com.lzy.forum.domain.Board;</font>
				</p>
				<p>
						<font color="#0000ff">public class BoardDAOHibernate extends HibernateDaoSupport implements BoardDAO {</font>
				</p>
				<p>
						<font color="#0000ff"> public void deleteBoard(Board board) {<br />  // TODO Auto-generated method stub<br />  this.getHibernateTemplate().delete(board);<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public void addBoard(Board board) {<br />  // TODO Auto-generated method stub<br />  this.getHibernateTemplate().saveOrUpdate(board);</font>
				</p>
				<p>
						<font color="#0000ff"> }</font>
				</p>
				<p>
						<font color="#0000ff"> public boolean isBoardExist(String name) {<br />  // TODO Auto-generated method stub<br />  ArrayList list = (ArrayList) this.getHibernateTemplate().find(<br />    "from Board where name = ? ", new Object[] { name });<br />  if (list.size() &gt; 0) {<br />   // System.out.println("find it");<br />   return true;<br />  }<br />  return false;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public Board loadBoard(int id) {<br />  // TODO Auto-generated method stub<br />  ArrayList list = (ArrayList) this.getHibernateTemplate().find(<br />    "from Board where id = ? ", new Object[] { id });</font>
				</p>
				<p>
						<font color="#0000ff">  Board b = null;<br />  if (list.size() &gt; 0) {<br />   b = (Board) list.get(0);<br />  }</font>
				</p>
				<p>
						<font color="#0000ff">  return b;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public Board loadBoard(String name) {<br />  // TODO Auto-generated method stub<br />  ArrayList list = (ArrayList) this.getHibernateTemplate().find(<br />    "from Board where name = ? ", new Object[] { name });</font>
				</p>
				<p>
						<font color="#0000ff">  Board b = null;<br />  if (list.size() &gt; 0) {<br />   b = (Board) list.get(0);<br />  }</font>
				</p>
				<p>
						<font color="#0000ff">  return b;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public ArrayList getRootBoardsList() {<br />  // TODO Auto-generated method stub<br />  ArrayList list = (ArrayList) this.getHibernateTemplate().find(<br />    "from Board b left join fetch b.ChildBoards where b.Parent = null order by b.id");<br />  System.out.println(list.size() + " root boards found ");<br />  </font>
				</p>
				<p>
						<font color="#0000ff">  ListIterator index = list.listIterator();<br />  while (index.hasNext()) {</font>
				</p>
				<p>
						<font color="#0000ff">   Board s = (Board) index.next();<br />   //this.getSession(true);<br />   //Hibernate.initialize(s.getChildBoards());<br />   ///*<br />    Set children  = (Set) s.getChildBoards();<br />    Iterator it = children.iterator();<br />    <br />    while(it.hasNext()){<br />    Board b = (Board)it.next();<br />    //Hibernate.initialize(b);<br />    System.out.println(b.getName());<br />    }<br />    //*/</font>
				</p>
				<p>
						<font color="#0000ff">   //System.out.println(children.size() + "child(ren) found ");<br />   //s.setChildBoards(s.getChildBoards());<br />  }</font>
				</p>
				<p>
						<font color="#0000ff">  return list;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public Board loadBoardWithArticles(int id) {<br />  // TODO Auto-generated method stub<br />  ArrayList list = (ArrayList) this.getHibernateTemplate().find(<br />    "from Board b left join fetch b.Articles where b.Id = ? ", new Object[] { id });</font>
				</p>
				<p>
						<font color="#0000ff">  Board b = null;<br />  if (list.size() &gt; 0) {<br />   b = (Board) list.get(0);<br />  }</font>
				</p>
				<p>
						<font color="#0000ff">  return b;<br /><br /></font>
						<font color="#0000ff"> }</font>
				</p>
				<p>
						<font color="#0000ff">
								<br />}<br /><br /><br /><font color="#000000">BoardDAOHibernate继承 HibernateDaoSupport后，通过</font><font color="#0000ff"><font color="#000000">getHibernateTemplate()得到一个HibernateTemplate实例，然后执行CRUD操作，非常简单。需要注意的是，由于执行一次CRUD操作后，Hibernate session关闭，如果有使用延迟加载策略的对象没有加载，在后面的Web层很容易出现如下错误：<br /></font><font style="BACKGROUND-COLOR: #ffffff" color="#ff0000">failed to lazily initialize a collection of role<br /><font color="#000000">从网上搜到的解决方法是Open Session In View，<br /></font><font color="#0000ff">&lt;filter&gt; <br />     &lt;filter-name&gt;hibernateFilter&lt;/filter-name&gt; <br />     &lt;filter-class&gt; org.springframework.orm.hibernate3.support.OpenSessionInViewFilter <br />     &lt;/filter-class&gt; </font></font></font></font>
				</p>
				<p>
						<font style="BACKGROUND-COLOR: #ffffff" color="#0000ff">     &lt;!-- singleSession默认为true,若设为false则等于没用OpenSessionInView --&gt; <br />    &lt;init-param&gt; <br />       &lt;param-name&gt;singleSession&lt;/param-name&gt; <br />       &lt;param-value&gt;true&lt;/param-value&gt; <br />    &lt;/init-param&gt; <br />  &lt;/filter&gt; </font>
				</p>
				<p>
						<font color="#0000ff">
								<font color="#0000ff">
										<font style="BACKGROUND-COLOR: #ffffff" color="#ff0000">
												<font color="#000000">
														<font color="#0000ff">   &lt;filter-mapping&gt; <br />     &lt;filter-name&gt;hibernateFilter&lt;/filter-name&gt; <br />     &lt;url-pattern&gt;*.do&lt;/url-pattern&gt; <br />   &lt;/filter-mapping&gt; <br /></font>我试了试，还是有一些问题，所以后来还是放弃了这种方法，所有在Web层中需要的对象都必须在Business层中加载完成。如下面的代码所示：<br /><br /></font>
												<font color="#0000ff">ArrayList list = (ArrayList) this.getHibernateTemplate().find(<br />    "from Board b left join fetch b.Articles where b.Id = ? ", new Object[] { id });<br /><br /><br /></font>
												<font color="#000000">这样Hibernate和Spring的结合也算完成了。其他的一些DAO类和实现代码我没有给出，但是大同小异，和Board的实现类似。<br /><br /><br />最后将是Struts 和Spring的结合，将在下一篇给出。（未完待续）</font>
										</font>
										<br />
								</font>
								<br />
								<br />
								<br />
						</font>
						<br />
				</p>
		</font>
<img src ="http://www.blogjava.net/felicity/aggbug/58802.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2006-07-18 16:09 <a href="http://www.blogjava.net/felicity/archive/2006/07/18/58802.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SSH(Spring + Struts + Hibernate)小试 之一</title><link>http://www.blogjava.net/felicity/archive/2006/07/18/58689.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Tue, 18 Jul 2006 01:54:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2006/07/18/58689.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/58689.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2006/07/18/58689.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/58689.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/58689.html</trackback:ping><description><![CDATA[
		<p>
				<font color="#000000">之前对Spring Struts Hibernate都稍有了解，Spring的IOC给我留下了很深的印象，容器管理的对象生成<br />方法极大地简化了程序逻辑，Spring也提供了用于Web的Spring MVC 框架，由于我感觉其易用性还是不及<br />Struts，所以我还是选择Struts作为前端WEB框架，Hibernate我一直没有在Web应用中试过，这次当然不会<br />错过机会了。</font>
		</p>
		<font color="#000000">
				<p>
						<br />开发环境的塔建我就不多说了，具体可以参考我以前的几篇日志。</p>
				<p>在Eclipse中新建一个动态Web工程，将Struts 、Spring、Hibernate需要的jar都添加到WEB-INF/lib目录下，<br />将Struts标签所需的tld文件、struts-config.xml文件（可以由StrutsIDE生成）添加到WEB-INF下，另外在<br />此目录下添加一个Spring的配置文件applicationContext.xml。</p>
				<p>
						<br />我参考的例子是夏昕的《深入浅出Hibernate》上的第6章，很好的一个论坛示例。</p>
				<p>首先按照书上的ER模型，在数据库（MySQL）中建立相应的数据库。</p>
				<p>
						<br />
						<font color="#a52a2a">create database forum;</font>
				</p>
				<p>
						<font color="#a52a2a">use forum;</font>
				</p>
				<p>
						<font color="#a52a2a">create table user(<br /> id int not null auto_increment primary key,<br /> name varchar(50),<br /> pwd varchar(50),<br /> email varchar(50)</font>
				</p>
				<p>
						<font color="#a52a2a">)type=innodb;</font>
				</p>
				<p>
						<br />
						<font color="#a52a2a">create table board(<br /> id int not null auto_increment primary key, <br /> parent_id int,<br /> create_by int not null,<br /> name varchar(50) not null,<br /> remark varchar(255),<br /> create_time datetime,</font>
				</p>
				<p>
						<font color="#a52a2a"> index(parent_id),<br /> index(create_by),</font>
				</p>
				<p>
						<font color="#a52a2a"> foreign key(parent_id) references board(id) on delete cascade,<br /> foreign key(create_by) references user(id) on delete no action<br /> <br />)type=innodb;</font>
				</p>
				<p>
						<br />
						<font color="#a52a2a">create table article(<br /> id int not null auto_increment primary key, <br /> parent_id int ,<br /> board_id int not null,<br /> article_type int not null,<br /> title varchar(255),<br /> body text,<br /> create_by int not null,</font>
				</p>
				<p>
						<font color="#a52a2a"> create_time datetime,<br /> hits int unsigned,<br /> bytes int unsigned,<br /> last_update_by int not null,<br /> last_update_time datetime,</font>
				</p>
				<p>
						<font color="#a52a2a"> index(parent_id),<br /> index(board_id),<br /> index(create_by),<br /> index(last_update_by),</font>
				</p>
				<p>
						<font color="#a52a2a"> foreign key(parent_id) references article(id) on delete no action,<br /> foreign key(board_id) references board(id) on delete cascade,<br /> foreign key(create_by) references user(id) on delete no action,<br /> foreign key(last_update_by) references user(id) on delete no action<br /> <br />)type=innodb;</font>
				</p>
				<p>之后，我选择了用Hibernate Sychonizer来生成映射文件和实体类，然后对生成的类进行修改（删掉了生成的Base类），<br />实际上Hibernate Sychonizer生成的映射文件也有错误，需要修改，我也是后来在使用中发现的。<br /><br /><font color="#ff0000">//User.hbm.xml</font></p>
				<p>
						<font color="#a52a2a">&lt;?xml version="1.0"?&gt;<br />&lt;!DOCTYPE hibernate-mapping PUBLIC<br /> "-//Hibernate/Hibernate Mapping DTD//EN"<br /> "</font>
						<a href="http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
								<font color="#a52a2a">http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd</font>
						</a>
						<font color="#a52a2a">" &gt;</font>
				</p>
				<p>
						<font color="#a52a2a">&lt;hibernate-mapping package="com.lzy.forum.domain"&gt;<br /> &lt;class<br />  name="User"<br />  table="user"<br /> &gt;</font>
				</p>
				<p>
						<font color="#a52a2a">  &lt;id<br />   name="Id"<br />   type="integer"<br />   column="id"<br />  &gt;<br />   &lt;generator class="native"/&gt;<br />  &lt;/id&gt;</font>
				</p>
				<p>
						<font color="#a52a2a">  &lt;property<br />   name="Name"<br />   column="name"<br />   type="string"<br />   not-null="false"<br />   length="50"<br />  /&gt;<br />  &lt;property<br />   name="Pwd"<br />   column="pwd"<br />   type="string"<br />   not-null="false"<br />   length="50"<br />  /&gt;<br />  &lt;property<br />   name="Email"<br />   column="email"<br />   type="string"<br />   not-null="false"<br />   length="50"<br />  /&gt;<br /> </font>
				</p>
				<p>
						<font color="#a52a2a">  &lt;set name="ArticlesByLastUpdateBy" inverse="true" lazy="true"&gt;<br />   &lt;key column="last_update_by"/&gt;<br />   &lt;one-to-many class="Article"/&gt;<br />  &lt;/set&gt;</font>
				</p>
				<p>
						<font color="#a52a2a">  &lt;set name="ArticlesByCreateBy" inverse="true" lazy="true"&gt;<br />   &lt;key column="create_by"/&gt;<font color="#0000ff">【<font color="#0000ff">这里的create_by是后来修改的，Hibernate Sychonizer生成的有错，后面有几处同样的错误】</font><br /></font>   &lt;one-to-many class="Article"/&gt;<br />  &lt;/set&gt;</font>
				</p>
				<p>
						<font color="#a52a2a">  &lt;set name="Boards" inverse="true" lazy="true"&gt;<br />   &lt;key column="create_by"/&gt;<font color="#0000ff">【这里的create_by是后来修改的】</font><br /><br />   &lt;one-to-many class="Board"/&gt;<br />  &lt;/set&gt;</font>
				</p>
				<p>
						<br />
						<font color="#a52a2a"> &lt;/class&gt; <br />&lt;/hibernate-mapping&gt;</font>
				</p>
				<p>
						<font color="#ff0000">//User.java</font>
						<br />
						<font color="#0000ff">package com.lzy.forum.domain;</font>
				</p>
				<p>
						<br />
						<font color="#0000ff">public class User{<br /> private static final long serialVersionUID = 1L;</font>
				</p>
				<p>
						<font color="#0000ff">//  primary key<br /> private java.lang.Integer id;</font>
				</p>
				<p>
						<font color="#0000ff"> // fields<br /> private java.lang.String name;<br /> private java.lang.String pwd;<br /> private java.lang.String email;</font>
				</p>
				<p>
						<font color="#0000ff"> // collections<br /> private java.util.Set&lt;Article&gt; articlesByLastUpdateBy;<br /> private java.util.Set&lt;Article&gt; articlesByCreateBy;<br /> private java.util.Set&lt;Board&gt; boards;<br /> <br /> <br /> public java.util.Set&lt;Article&gt; getArticlesByCreateBy() {<br />  return articlesByCreateBy;<br /> }<br /> public void setArticlesByCreateBy(java.util.Set&lt;Article&gt; articlesByCreateBy) {<br />  this.articlesByCreateBy = articlesByCreateBy;<br /> }<br /> public java.util.Set&lt;Article&gt; getArticlesByLastUpdateBy() {<br />  return articlesByLastUpdateBy;<br /> }<br /> public void setArticlesByLastUpdateBy(<br />   java.util.Set&lt;Article&gt; articlesByLastUpdateBy) {<br />  this.articlesByLastUpdateBy = articlesByLastUpdateBy;<br /> }<br /> public java.util.Set&lt;Board&gt; getBoards() {<br />  return boards;<br /> }<br /> public void setBoards(java.util.Set&lt;Board&gt; boards) {<br />  this.boards = boards;<br /> }<br /> public java.lang.String getEmail() {<br />  return email;<br /> }<br /> public void setEmail(java.lang.String email) {<br />  this.email = email;<br /> }<br /> public java.lang.Integer getId() {<br />  return id;<br /> }<br /> public void setId(java.lang.Integer id) {<br />  this.id = id;<br /> }<br /> public java.lang.String getName() {<br />  return name;<br /> }<br /> public void setName(java.lang.String name) {<br />  this.name = name;<br /> }<br /> public java.lang.String getPwd() {<br />  return pwd;<br /> }<br /> public void setPwd(java.lang.String pwd) {<br />  this.pwd = pwd;<br /> }</font>
				</p>
				<p>
						<br />
						<font color="#0000ff">}</font>
						<br />
						<br />
						<font color="#ff0000">//Board.hbm.xml</font>
				</p>
				<p>
						<font color="#a52a2a">&lt;?xml version="1.0"?&gt;<br />&lt;!DOCTYPE hibernate-mapping PUBLIC<br /> "-//Hibernate/Hibernate Mapping DTD//EN"<br /> "</font>
						<a href="http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
								<font color="#a52a2a">http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd</font>
						</a>
						<font color="#a52a2a">" &gt;</font>
				</p>
				<p>
						<font color="#a52a2a">&lt;hibernate-mapping package="com.lzy.forum.domain"&gt;<br /> &lt;class<br />  name="Board"<br />  table="board"<br /> &gt;<br />   &lt;meta attribute="sync-DAO"&gt;false&lt;/meta&gt;<br />  &lt;id<br />   name="Id"<br />   type="integer"<br />   column="id"<br />  &gt;<br />   &lt;generator class="native"/&gt;<br />  &lt;/id&gt;</font>
				</p>
				<p>
						<font color="#a52a2a">  &lt;property<br />   name="Name"<br />   column="name"<br />   type="string"<br />   not-null="true"<br />   length="50"<br />  /&gt;<br />  &lt;property<br />   name="Remark"<br />   column="remark"<br />   type="string"<br />   not-null="false"<br />   length="255"<br />  /&gt;<br />  &lt;property<br />   name="CreateTime"<br />   column="create_time"<br />   type="timestamp"<br />   not-null="false"<br />   length="19"<br />  /&gt;<br />  &lt;many-to-one<br />   name="CreateBy"<br />   column="create_by"<br />   class="User"<br />   not-null="true"<br />  &gt;<br />  &lt;/many-to-one&gt;<br />  &lt;many-to-one<br />   name="Parent"<br />   column="parent_id"<br />   class="Board"   <br />   not-null="false"<br />   lazy="false"&gt;<br />  &lt;/many-to-one&gt;<br /> </font>
				</p>
				<p>
						<font color="#a52a2a">  &lt;set name="Articles" inverse="true" lazy="true" order-by="id"&gt;<br />   &lt;key column="board_id"/&gt;<font color="#0000ff">【这里的board_id是后来修改的】</font><br />   &lt;one-to-many class="Article"/&gt;<br />  &lt;/set&gt;</font>
				</p>
				<p>
						<font color="#a52a2a">  &lt;set name="ChildBoards" inverse="true"  lazy="true" order-by="id"&gt;<br />   &lt;key column="parent_id"/&gt;<font color="#0000ff">【</font><font color="#0000ff">这里的parent_id是后来修改的】<br /></font>   &lt;one-to-many class="Board"/&gt;<br />  &lt;/set&gt;</font>
				</p>
				<p>
						<br />
						<font color="#a52a2a"> &lt;/class&gt; <br />&lt;/hibernate-mapping&gt;</font>
				</p>
				<p>
						<font color="#ff0000">//Board.java<br /></font>
						<font color="#0000ff">package com.lzy.forum.domain;</font>
				</p>
				<p>
						<font color="#0000ff">
						</font> </p>
				<p>
						<br />
						<font color="#0000ff">public class Board  {<br /> private static final long serialVersionUID = 1L;</font>
				</p>
				<p>
						<font color="#0000ff">//  primary key<br /> private java.lang.Integer id;</font>
				</p>
				<p>
						<font color="#0000ff"> // fields<br /> private java.lang.String name;<br /> private java.lang.String remark;<br /> private java.util.Date createTime;</font>
				</p>
				<p>
						<font color="#0000ff"> // many to one<br /> private com.lzy.forum.domain.User createBy;<br /> private com.lzy.forum.domain.Board parent;</font>
				</p>
				<p>
						<font color="#0000ff"> // collections<br /> private java.util.Set&lt;com.lzy.forum.domain.Article&gt; articles;<br /> private java.util.Set&lt;com.lzy.forum.domain.Board&gt; childBoards;<br /> <br /> <br /> public java.util.Set&lt;com.lzy.forum.domain.Article&gt; getArticles() {<br />  return articles;<br /> }<br /> public void setArticles(java.util.Set&lt;com.lzy.forum.domain.Article&gt; articles) {<br />  this.articles = articles;<br /> }<br /> public java.util.Set&lt;com.lzy.forum.domain.Board&gt; getChildBoards() {<br />  return childBoards;<br /> }<br /> public void setChildBoards(java.util.Set&lt;com.lzy.forum.domain.Board&gt; childBoards) {<br />  this.childBoards = childBoards;<br /> }<br /> public com.lzy.forum.domain.User getCreateBy() {<br />  return createBy;<br /> }<br /> public void setCreateBy(com.lzy.forum.domain.User createBy) {<br />  this.createBy = createBy;<br /> }<br /> public java.util.Date getCreateTime() {<br />  return createTime;<br /> }<br /> public void setCreateTime(java.util.Date createTime) {<br />  this.createTime = createTime;<br /> }<br /> public java.lang.Integer getId() {<br />  return id;<br /> }<br /> public void setId(java.lang.Integer id) {<br />  this.id = id;<br /> }<br /> public java.lang.String getName() {<br />  return name;<br /> }<br /> public void setName(java.lang.String name) {<br />  this.name = name;<br /> }<br /> public com.lzy.forum.domain.Board getParent() {<br />  return parent;<br /> }<br /> public void setParent(com.lzy.forum.domain.Board parent) {<br />  this.parent = parent;<br /> }<br /> public java.lang.String getRemark() {<br />  return remark;<br /> }<br /> public void setRemark(java.lang.String remark) {<br />  this.remark = remark;<br /> }</font>
				</p>
				<p>
						<br />
						<font color="#0000ff">}<br /></font>
						<br />
						<font color="#ff0000">//Article.hbm.xml</font>
				</p>
				<p>
						<font color="#a52a2a">&lt;?xml version="1.0"?&gt;<br />&lt;!DOCTYPE hibernate-mapping PUBLIC<br /> "-//Hibernate/Hibernate Mapping DTD//EN"<br /> "</font>
						<a href="http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
								<font color="#a52a2a">http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd</font>
						</a>
						<font color="#a52a2a">" &gt;</font>
				</p>
				<p>
						<font color="#a52a2a">&lt;hibernate-mapping package="com.lzy.forum.domain"&gt;<br /> &lt;class<br />  name="Article"<br />  table="article"<br /> &gt;<br />  &lt;meta attribute="sync-DAO"&gt;false&lt;/meta&gt;<br />  &lt;id<br />   name="Id"<br />   type="integer"<br />   column="id"<br />  &gt;<br />   &lt;generator class="native"/&gt;<br />  &lt;/id&gt;</font>
				</p>
				<p>
						<font color="#a52a2a">  &lt;property<br />   name="ArticleType"<br />   column="article_type"<br />   type="integer"<br />   not-null="true"<br />   length="11"<br />  /&gt;<br />  &lt;property<br />   name="Title"<br />   column="title"<br />   type="string"<br />   not-null="false"<br />   length="255"<br />  /&gt;<br />  &lt;property<br />   name="Body"<br />   column="body"<br />   type="string"<br />   not-null="false"<br />  /&gt;<br />  &lt;property<br />   name="Hits"<br />   column="hits"<br />   type="integer"<br />   not-null="false"<br />   length="10"<br />  /&gt;<br />  &lt;property<br />   name="Bytes"<br />   column="bytes"<br />   type="integer"<br />   not-null="false"<br />   length="10"<br />  /&gt;<br />  &lt;property<br />   name="CreateTime"<br />   column="create_time"<br />   type="timestamp"<br />   not-null="false"<br />   length="19"<br />  /&gt;<br />  &lt;property<br />   name="LastUpdateTime"<br />   column="last_update_time"<br />   type="timestamp"<br />   not-null="false"<br />   length="19"<br />  /&gt;<br />  &lt;many-to-one<br />   name="LastUpdateBy"<br />   column="last_update_by"<br />   class="User"<br />   not-null="true"<br />  &gt;<br />  &lt;/many-to-one&gt;<br />  &lt;many-to-one<br />   name="CreateBy"<br />   column="create_by"<br />   class="User"<br />   not-null="true"<br />  &gt;<br />  &lt;/many-to-one&gt;<br />  &lt;many-to-one<br />   name="Parent"<br />   column="parent_id"<br />   class="Article"<br />   not-null="false"<br />  &gt;<br />  &lt;/many-to-one&gt;<br />  &lt;many-to-one<br />   name="Board"<br />   column="board_id"<br />   class="Board"<br />   not-null="true"<br />  &gt;<br />  &lt;/many-to-one&gt;<br /> </font>
				</p>
				<p>
						<font color="#a52a2a">  &lt;set name="Articles" inverse="true" lazy="false" order-by="id"&gt;<br />   &lt;key column="parent_id"/&gt;<font color="#0000ff">【这里的parent_id是后来修改的】</font><br />   &lt;one-to-many class="Article"/&gt;<br />  &lt;/set&gt;</font>
				</p>
				<p>
						<br />
						<font color="#a52a2a"> &lt;/class&gt; <br />&lt;/hibernate-mapping&gt;</font>
				</p>
				<p>
						<br />
						<br />
						<font color="#ff0000">//Article.java</font>
						<br />
						<font color="#0000ff">package com.lzy.forum.domain;</font>
				</p>
				<p>
						<font color="#0000ff">import java.util.Date;</font>
				</p>
				<p>
						<font color="#0000ff">
						</font> </p>
				<p>
						<br />
						<font color="#0000ff">public class Article  {<br /> private static final long serialVersionUID = 1L;<br /> // primary key<br /> private java.lang.Integer id;</font>
				</p>
				<p>
						<font color="#0000ff"> // fields<br /> private java.lang.Integer articleType;<br /> private java.lang.String title;<br /> private java.lang.String body;<br /> private java.lang.Integer hits;<br /> private java.lang.Integer bytes;<br /> private java.util.Date lastUpdateTime;<br /> private java.util.Date createTime;<br /> </font>
				</p>
				<p>
						<font color="#0000ff"> // many to one<br /> private com.lzy.forum.domain.User lastUpdateBy;<br /> private com.lzy.forum.domain.User createBy;<br /> private com.lzy.forum.domain.Article parent;<br /> private com.lzy.forum.domain.Board board;</font>
				</p>
				<p>
						<font color="#0000ff"> // collections<br /> private java.util.Set&lt;com.lzy.forum.domain.Article&gt; articles;</font>
				</p>
				<p>
						<font color="#0000ff"> public java.util.Set&lt;com.lzy.forum.domain.Article&gt; getArticles() {<br />  return articles;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public void setArticles(java.util.Set&lt;com.lzy.forum.domain.Article&gt; articles) {<br />  this.articles = articles;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public java.lang.Integer getArticleType() {<br />  return articleType;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public void setArticleType(java.lang.Integer articleType) {<br />  this.articleType = articleType;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public com.lzy.forum.domain.Board getBoard() {<br />  return board;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public void setBoard(com.lzy.forum.domain.Board board) {<br />  this.board = board;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public java.lang.String getBody() {<br />  return body;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public void setBody(java.lang.String body) {<br />  this.body = body;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public java.lang.Integer getBytes() {<br />  return bytes;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public void setBytes(java.lang.Integer bytes) {<br />  this.bytes = bytes;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public com.lzy.forum.domain.User getCreateBy() {<br />  return createBy;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public void setCreateBy(com.lzy.forum.domain.User createBy) {<br />  this.createBy = createBy;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public java.lang.Integer getHits() {<br />  return hits;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public void setHits(java.lang.Integer hits) {<br />  this.hits = hits;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public java.lang.Integer getId() {<br />  return id;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public void setId(java.lang.Integer id) {<br />  this.id = id;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public com.lzy.forum.domain.User getLastUpdateBy() {<br />  return lastUpdateBy;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public void setLastUpdateBy(com.lzy.forum.domain.User lastUpdateBy) {<br />  this.lastUpdateBy = lastUpdateBy;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public java.util.Date getLastUpdateTime() {<br />  return lastUpdateTime;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public void setLastUpdateTime(java.util.Date lastUpdateTime) {<br />  this.lastUpdateTime = lastUpdateTime;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public com.lzy.forum.domain.Article getParent() {<br />  return parent;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public void setParent(com.lzy.forum.domain.Article parent) {<br />  this.parent = parent;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public java.lang.String getTitle() {<br />  return title;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public void setTitle(java.lang.String title) {<br />  this.title = title;<br /> }<br /> public java.util.Date getCreateTime(){<br />  return createTime;<br /> }</font>
				</p>
				<p>
						<font color="#0000ff"> public void setCreateTime(java.util.Date createTime) {<br />  // TODO Auto-generated method stub<br />  this.createTime = createTime;<br /> }<br /> </font>
				</p>
				<p>
				</p>
		</font>
		<font color="#0000ff">}<br /><br /></font>
		<font color="#000000">接下来将会在web中加入Spring支持和为实体类提供DAO支持。（未完待续）</font>
<img src ="http://www.blogjava.net/felicity/aggbug/58689.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2006-07-18 09:54 <a href="http://www.blogjava.net/felicity/archive/2006/07/18/58689.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EJB 3.0 学习笔记——Entity Bean</title><link>http://www.blogjava.net/felicity/archive/2006/05/20/47229.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Sat, 20 May 2006 14:38:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2006/05/20/47229.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/47229.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2006/05/20/47229.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/47229.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/47229.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在EJB 3.0 学习笔记——准备工作中只是简单的搭好了EJB3.0开发的基本环境，之		后就可以开发最简单的Session Bean了，我感兴趣的还是Entity Bean，所以接下来		我想先试验一下Entity Bean。 一、在JBoss中配置好Data Source我使用的是MySQL数据库，所以首先将MySQL的JDBC驱动复制到jboss-4.0.3SP1\server\al...&nbsp;&nbsp;<a href='http://www.blogjava.net/felicity/archive/2006/05/20/47229.html'>阅读全文</a><img src ="http://www.blogjava.net/felicity/aggbug/47229.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2006-05-20 22:38 <a href="http://www.blogjava.net/felicity/archive/2006/05/20/47229.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript和Applet互相调用</title><link>http://www.blogjava.net/felicity/archive/2006/05/04/44502.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Thu, 04 May 2006 01:41:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2006/05/04/44502.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/44502.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2006/05/04/44502.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/44502.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/44502.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">Java Script</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">调用</span>
				<span lang="EN-US">java</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">&lt;script language=javascript&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>document.applet_name.method_name();</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">&lt;/script&gt;</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">applet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行控制，也可以从</span>
				<span lang="EN-US">applet</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 lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">Java</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">调用</span>
				<span lang="EN-US">Java Script</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">netscape.javascript.jsobject</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这个类</span> （jre/lib/plugin.jar)</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">JSObject window=JSObject.getWindow(this);</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">JSObject window=(JSObject)window.getMember("document");</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">
						<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">MakeCall</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">时，会触发</span>
				<span lang="EN-US">Java Script</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函数<img height="1" src="/WebResource.axd?d=pLXXeGbWF7eXU8SMs2-GFZvUWY2JNH05dFx5YzJhGUYAYJAFEaTEq36NAhTPy7_KekvzDFwt8wvQWdByvJIGWdEq6x2KpKD80&amp;t=632780334478750000" width="1" /></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 lang="EN-US">function makeCall(s){</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>window.document.ctiApplet.testJavascript(s);</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>alert("call maked!");</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes"> </span>}</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">Java Script</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函数中，</span>
				<span lang="EN-US">ctiApplet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是一个</span>
				<span lang="EN-US">Applet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，这样完成了</span>
				<span lang="EN-US">java script</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">Applet</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 style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以下是</span>
				<span lang="EN-US">ctiApplet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的</span>
				<span lang="EN-US">testJavascript</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函数和运行结果，其中又调用了</span>
				<span lang="EN-US">Java Script</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。<br /></span>
				<span lang="EN-US">public void testJavascript(String msg){</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</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 lang="EN-US">
						<span style="mso-tab-count: 1">       </span>try { </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 2">              </span>// create JSObject</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 lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
						<span style="mso-spacerun: yes">    </span>
						<span style="mso-tab-count: 1">       </span>JSObject.getWindow (this).eval ("javascript:alert('Java Script in Applet!')") ; </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>}</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>catch (Exception ex) { </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 2">              </span>// Error on create JSObject</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
						<span style="mso-spacerun: yes">    </span>
						<span style="mso-tab-count: 1">       </span>showStatus( "Error call javascript err=" + ex );</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>}</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 lang="EN-US">
						<span style="mso-tab-count: 1">       </span>System.out.println(msg);</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 lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
<img src ="http://www.blogjava.net/felicity/aggbug/44502.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2006-05-04 09:41 <a href="http://www.blogjava.net/felicity/archive/2006/05/04/44502.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EJB 3.0 学习笔记——准备工作</title><link>http://www.blogjava.net/felicity/archive/2006/03/26/37510.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Sun, 26 Mar 2006 15:05:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2006/03/26/37510.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/37510.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2006/03/26/37510.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/37510.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/37510.html</trackback:ping><description><![CDATA[
		<p>
				<br />在开发EJB3.0 之前，首先应该去下载它的一个实现和一个相应的支持EJB3的服务器，我下载的是jboss-EJB-3.0_RC5-PFD和JBoss 4.0.3SP1 ，jboss-EJB-3.0_RC5-PFD里面有安装说明和一些不错的tutorial。</p>
		<p>根据安装说明，JBoss 4.0.3SP1中的EJB3实现不是最新的，应用下载的jboss-EJB-3.0_RC5-PFD中的一些包去替换。</p>
		<p>将jboss-EJB-3.0_RC5-PFD中lib目录下的 <br /> (1)ejb3.deployer/<br /> (2)ejb3-clustered-sfsbcache-service.xml<br /> (3)ejb3-interceptors-aop.xml<br /> (4)jboss-aop-jdk50.deployer/<br />拷贝到jboss-4.0.3SP1/server/all/deploy目录下</p>
		<p>将jboss-EJB-3.0_RC5-PFD中lib目录下的 <br /> (5)jboss-remoting.jar<br /> (6)jboss-serialization.jar<br /> (7)jboss-j2ee.jar<br />拷贝到jboss-4.0.3SP1/server/all/lib目录下</p>
		<p>
				<br />删除jboss-4.0.3SP1/server/all/lib 下的<br /> (1)ejb3-persistence.jar <br /> (2)hibernate3.jar<br /> (3)hibernate-annotations.jar<br /> (4)hibernate-entitymanager.jar<br />和jboss-4.0.3SP1/server/all/deploy下的<br /> (5)jboss-aop.deployer/ <br />到此EJB3 的运行环境准备好了，你可以用jboss-4.0.3SP1\bin\run -c all 测试JBoss是否能成功启动。</p>
		<p>我用的IDE是Eclipse 3.2，JDK 1.5 ，为了方便在Eclipse中新建一个User Library：EJB3_JBoss，<br />将jboss-EJB-3.0_RC5-PFD\lib下的<br /> jboss-j2ee.jar<br />和jboss-EJB-3.0_RC5-PFD\lib\ejb3.deployer下的<br /> ejb3-persistence.jar<br /> jboss-ejb3x.jar<br /> jboss-ejb3.jar<br /> jboss-annotations-ejb3.jar<br /> hibernate3.jar<br /> hibernate-annotations.jar<br /> hibernate-entitymanager.jar<br />添加到EJB_JBoss中，现在环境基本上搭好了。</p>
<img src ="http://www.blogjava.net/felicity/aggbug/37510.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2006-03-26 23:05 <a href="http://www.blogjava.net/felicity/archive/2006/03/26/37510.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP 处理MySQL数据库时的中文问题</title><link>http://www.blogjava.net/felicity/archive/2005/12/18/24542.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Sun, 18 Dec 2005 14:57:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2005/12/18/24542.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/24542.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2005/12/18/24542.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/24542.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/24542.html</trackback:ping><description><![CDATA[<P>以前遇到JSP 处理MySQL数据库时的中文问题时，采取的是很笨的一种方法，直接用字符串编码转换函数进行转换，这次从网上搜了一下，找到了一个使用Filter的可行方法。在Tomcat 5.5＋ MySQL4.0.16下通过。<BR><BR>filter类源码是从网上找的，如下<BR>/**<BR>&nbsp;* <BR>&nbsp;*/<BR>package com.lzy;</P>
<P>import java.io.IOException;<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;</P>
<P>/**<BR>&nbsp;* @author lzy<BR>&nbsp;*<BR>&nbsp;*/<BR>public class SetCharacterEncodingFilter implements Filter {<BR>&nbsp;<BR>&nbsp;protected String encoding = null;<BR>&nbsp;&nbsp;&nbsp; protected FilterConfig filterConfig = null;<BR>&nbsp;&nbsp;&nbsp; protected boolean ignore = true;</P>
<P><BR>&nbsp;/* (non-Javadoc)<BR>&nbsp; * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)<BR>&nbsp; */<BR>&nbsp;public void init(FilterConfig filterConfig) throws ServletException {<BR>&nbsp;&nbsp;// TODO Auto-generated method stub<BR>&nbsp;&nbsp;this.filterConfig = filterConfig;<BR>&nbsp;&nbsp;&nbsp;&nbsp; this.encoding = filterConfig.getInitParameter("encoding");<BR>&nbsp;&nbsp;&nbsp;&nbsp; String value = filterConfig.getInitParameter("ignore");<BR>&nbsp;&nbsp;&nbsp;&nbsp; if (value == null)<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;this.ignore = true;<BR>&nbsp;&nbsp;&nbsp;&nbsp; else if (value.equalsIgnoreCase("true"))<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;this.ignore = true;<BR>&nbsp;&nbsp;&nbsp;&nbsp; else if (value.equalsIgnoreCase("yes"))<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;this.ignore = true;<BR>&nbsp;&nbsp;&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;this.ignore = false;</P>
<P><BR>&nbsp;}</P>
<P>&nbsp;/* (non-Javadoc)<BR>&nbsp; * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)<BR>&nbsp; */<BR>&nbsp;public void doFilter(ServletRequest request, ServletResponse response,<BR>&nbsp;&nbsp;&nbsp;FilterChain chain) throws IOException, ServletException {<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;// TODO Auto-generated method stub<BR>&nbsp;&nbsp;if (ignore || (request.getCharacterEncoding() == null)) {<BR>&nbsp;&nbsp;&nbsp;String encoding = selectEncoding(request);<BR>&nbsp;&nbsp;&nbsp;if (encoding != null)<BR>&nbsp;&nbsp;&nbsp;&nbsp;request.setCharacterEncoding(encoding);<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;chain.doFilter(request, response);<BR>&nbsp;}</P>
<P>&nbsp;/* (non-Javadoc)<BR>&nbsp; * @see javax.servlet.Filter#destroy()<BR>&nbsp; */<BR>&nbsp;public void destroy() {<BR>&nbsp;&nbsp;// TODO Auto-generated method stub<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;this.encoding = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp; this.filterConfig = null;</P>
<P><BR>&nbsp;}<BR>&nbsp;<BR>&nbsp; protected String selectEncoding(ServletRequest request) {</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (this.encoding); </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P><BR>}</P>
<P>在web.xml 文件中作如下设置：（我使用的是Struts框架）<BR>&lt;filter&gt;<BR>&lt;filter-name&gt;Encoding&lt;/filter-name&gt;<BR>&lt;filter-class&gt;com.lzy.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;GBK&lt;/param-value&gt;<BR>&lt;/init-param&gt;<BR>&lt;/filter&gt;</P>
<P>&lt;filter-mapping&gt;<BR>&lt;filter-name&gt;Encoding&lt;/filter-name&gt;<BR>&lt;servlet-name&gt;action&lt;/servlet-name&gt;<BR>&lt;/filter-mapping&gt;<BR>&lt;filter-mapping&gt;<BR>&lt;filter-name&gt;Encoding&lt;/filter-name&gt;<BR>&lt;url-pattern&gt;*.jsp&lt;/url-pattern&gt;<BR>&lt;/filter-mapping&gt;<BR><BR><BR>最后，连接数据库时，使用下面的url：<BR>jdbc:mysql://localhost:3306/数据库名?useUnicode=true&amp;characterEncoding=GBK</P><img src ="http://www.blogjava.net/felicity/aggbug/24542.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2005-12-18 22:57 <a href="http://www.blogjava.net/felicity/archive/2005/12/18/24542.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring之Hello World</title><link>http://www.blogjava.net/felicity/archive/2005/12/14/23948.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Wed, 14 Dec 2005 14:07:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2005/12/14/23948.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/23948.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2005/12/14/23948.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/23948.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/23948.html</trackback:ping><description><![CDATA[<P>1.下载Spring相关的开发包<BR>下载地址：<A href="http://sourceforge.net/project/showfiles.php?group_id=73357">http://sourceforge.net/project/showfiles.php?group_id=73357</A><BR>有spring-framework-1.2.6-with-dependencies.zip，一個是spring-framework-1.2.6.zip，最好下载with－dependencies的，里面有另外一些附加包，下载后解压缩，dist目录下是spring自身的jar，lib目录下是附加的jar。<BR>2.新建Java Project，将spring.jar（dist目录下）和commons-logging.jar（lib目录下）添加到project的build path中。<BR>3.新建POJO Bean类：HelloBean<BR>//HelloBean.java<BR>/**<BR>&nbsp;* <BR>&nbsp;*/<BR>package com.lzy;</P>
<P>/**<BR>&nbsp;* @author lzy<BR>&nbsp;*<BR>&nbsp;*/<BR>public class HelloBean{<BR>&nbsp;<BR>&nbsp;private String hello;<BR>&nbsp;<BR>&nbsp;public void sayHello(){<BR>&nbsp;&nbsp;System.out.println(this.getHello());<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @return Returns the hello.<BR>&nbsp; */<BR>&nbsp;public String getHello() {<BR>&nbsp;&nbsp;return hello;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @param hello The hello to set.<BR>&nbsp; */<BR>&nbsp;public void setHello(String hello) {<BR>&nbsp;&nbsp;this.hello = hello;<BR>&nbsp;}<BR>&nbsp;</P>
<P>}</P>
<P><BR>4.新建文件bean.xml，将在这个XML文件中为一个HelloBean的实例的hello属性赋值。<BR>//bean.xml<BR>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<BR>&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "<A href="http://www.springframework.org/dtd/spring-beans.dtd">http://www.springframework.org/dtd/spring-beans.dtd</A>"&gt;<BR>&lt;beans&gt;<BR>&lt;description&gt;Spring Quick Start&lt;/description&gt;<BR>&lt;bean id="helloBean" class="com.lzy.HelloBean"&gt; <BR>&nbsp;&nbsp;&lt;property name="hello"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;value&gt;hello world&lt;/value&gt;<BR>&nbsp;&nbsp;&lt;/property&gt;<BR>&lt;/bean&gt;<BR>&lt;/beans&gt;</P>
<P>5.新建测试类：TestSpring<BR>//TestSpring.java<BR>/**<BR>&nbsp;* <BR>&nbsp;*/<BR>package com.lzy;</P>
<P>import java.util.Locale;</P>
<P>import org.springframework.context.ApplicationContext;<BR>import org.springframework.context.support.FileSystemXmlApplicationContext;</P>
<P>/**<BR>&nbsp;* @author lzy<BR>&nbsp;*<BR>&nbsp;*/<BR>public class TestSpring {</P>
<P>&nbsp;/**<BR>&nbsp; * @param args<BR>&nbsp; */<BR>&nbsp;public static void main(String[] args) {<BR>&nbsp;&nbsp;// TODO Auto-generated method stub<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;ApplicationContext ctx=new FileSystemXmlApplicationContext("bean.xml");<BR>&nbsp;&nbsp;&nbsp;&nbsp;HelloBean hello=(HelloBean)ctx.getBean("helloBean");<BR>&nbsp;&nbsp;hello.sayHello();<BR>&nbsp;}</P>
<P>}</P>
<P><BR>6.运行测试类：<BR>&nbsp;&nbsp;&nbsp; 如果没有出错，输出中将会看到“hello world”。<BR></P><img src ="http://www.blogjava.net/felicity/aggbug/23948.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2005-12-14 22:07 <a href="http://www.blogjava.net/felicity/archive/2005/12/14/23948.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse下Hibernate入门</title><link>http://www.blogjava.net/felicity/archive/2005/12/10/23253.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Sat, 10 Dec 2005 04:50:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2005/12/10/23253.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/23253.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2005/12/10/23253.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/23253.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/23253.html</trackback:ping><description><![CDATA[<P><BR>1.开发环境 <BR>&nbsp;&nbsp;&nbsp;&nbsp; Eclipse 3.2＋MySQL 4.0.16＋Hibernate3.0<BR>&nbsp;&nbsp;&nbsp; 首先应该安装好Eclipse和MySQL，此外准备好MySQL的JDBC Driver和Hibernate3.0,相关下载地址如下：<BR>&nbsp;&nbsp;&nbsp;&nbsp; Eclipse SDK： <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.eclipse.org/downloads/index.php">http://www.eclipse.org/downloads/index.php</A>&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MySQL及MySQL的JDBC Driver: <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.mysql.org">http://www.mysql.org</A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hibernate:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.hibernate.org">http://www.hibernate.org</A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此外我还安装了Eclipse的一个Hibernate插件：<BR>&nbsp;&nbsp;&nbsp;&nbsp; Hibernate synchronizer <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://hibernatesynch.sourceforge.net">http://hibernatesynch.sourceforge.net</A></P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Plugin Search: <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://eclipse-plugins.2y.net/eclipse/search.jsp">http://eclipse-plugins.2y.net/eclipse/search.jsp</A>&nbsp; </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hibernate synchronizer插件的安装和配置有问题请直接Google。 </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; 在工程中其实只用到了Hibernate synchronizer插件的一部分功能，Hibernate依赖的相关jar包最好还是手动添加，因为最开始用Hibernate synchronizer添加时总是发生错误。<BR>&nbsp;&nbsp;&nbsp;&nbsp; 将下载的Mysql driver和Hibernate包解压缩，我们需要的只是里面相关的jar，在Eclipse中新建Mysql_Driver和Hibernate两个user library,将mysql-connector-java-3.0.15-ga-bin.jar加入Mysql_Driver中，将hibernate3.jar，<BR>，log4j-1.2.11.jar，antlr-2.7.5H3.jar，asm.jar，asm-attrs.jar，cglib-2.1.2.jar，commons-collections-2.1.1.jar，commons-logging-1.0.4.jar，dom4j-1.6.1.jar，ehcache-1.1.jar，jta.jar加入到Hibernate中。</P>
<P>2.开始 <BR>在Mysql中新建test数据库（Mysql其实有个空的test数据库），然后新建下面的Table</P>
<P>create table user (<BR>&nbsp;id int(10) not null auto_increment primary key,<BR>&nbsp;name varchar(20) not null,<BR>&nbsp;password varchar(20) not null,<BR>&nbsp;email varchar(50),<BR>&nbsp;address varchar(100)<BR>)type=innodb;</P>
<P><BR>新建Java Project，将Mysql_Driver,Hibernate两个user library添加到该工程的java build path中。</P>
<P>新建与数据表对应的POJO类：User和Contact</P>
<P>/**<BR>&nbsp;* <BR>&nbsp;*&nbsp; <BR>&nbsp;*/<BR>package com.user;</P>
<P>/**<BR>&nbsp;* @author lzy<BR>&nbsp;*<BR>&nbsp;*/<BR>public class User{<BR>&nbsp;&nbsp;&nbsp; private Integer id;<BR>&nbsp;&nbsp;&nbsp; private String name;<BR>&nbsp;&nbsp;&nbsp; private String password;<BR>&nbsp;&nbsp;&nbsp; private Contact contact;<BR>&nbsp;&nbsp;&nbsp; </P>
<P>&nbsp;/**<BR>&nbsp; * @return Returns the id.<BR>&nbsp; */<BR>&nbsp;public Integer getId() {<BR>&nbsp;&nbsp;return id;<BR>&nbsp;}<BR>&nbsp;/**<BR>&nbsp; * @param id The id to set.<BR>&nbsp; */<BR>&nbsp;public void setId(Integer id) {<BR>&nbsp;&nbsp;this.id = id;<BR>&nbsp;}<BR>&nbsp;/**<BR>&nbsp; * @return Returns the name.<BR>&nbsp; */<BR>&nbsp;public String getName() {<BR>&nbsp;&nbsp;return name;<BR>&nbsp;}<BR>&nbsp;/**<BR>&nbsp; * @param name The name to set.<BR>&nbsp; */<BR>&nbsp;public void setName(String name) {<BR>&nbsp;&nbsp;this.name = name;<BR>&nbsp;}<BR>&nbsp;/**<BR>&nbsp; * @return Returns the password.<BR>&nbsp; */<BR>&nbsp;public String getPassword() {<BR>&nbsp;&nbsp;return password;<BR>&nbsp;}<BR>&nbsp;/**<BR>&nbsp; * @param password The password to set.<BR>&nbsp; */<BR>&nbsp;public void setPassword(String password) {<BR>&nbsp;&nbsp;this.password = password;<BR>&nbsp;}<BR>&nbsp;/**<BR>&nbsp; * @return Returns the contact.<BR>&nbsp; */<BR>&nbsp;public Contact getContact() {<BR>&nbsp;&nbsp;return contact;<BR>&nbsp;}<BR>&nbsp;/**<BR>&nbsp; * @param contact The contact to set.<BR>&nbsp; */<BR>&nbsp;public void setContact(Contact contact) {<BR>&nbsp;&nbsp;this.contact = contact;<BR>&nbsp;}<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>}<BR>/**<BR>&nbsp;* <BR>&nbsp;*/<BR>package com.user;</P>
<P>/**<BR>&nbsp;* @author lzy<BR>&nbsp;*<BR>&nbsp;*/<BR>public class Contact {<BR>&nbsp;private String email;<BR>&nbsp;&nbsp;&nbsp; private String address;</P>
<P>&nbsp;/**<BR>&nbsp; * @return Returns the address.<BR>&nbsp; */<BR>&nbsp;public String getAddress() {<BR>&nbsp;&nbsp;return address;<BR>&nbsp;}<BR>&nbsp;/**<BR>&nbsp; * @param address The address to set.<BR>&nbsp; */<BR>&nbsp;public void setAddress(String address) {<BR>&nbsp;&nbsp;this.address = address;<BR>&nbsp;}<BR>&nbsp;/**<BR>&nbsp; * @return Returns the email.<BR>&nbsp; */<BR>&nbsp;public String getEmail() {<BR>&nbsp;&nbsp;return email;<BR>&nbsp;}<BR>&nbsp;/**<BR>&nbsp; * @param email The email to set.<BR>&nbsp; */<BR>&nbsp;public void setEmail(String email) {<BR>&nbsp;&nbsp;this.email = email;<BR>&nbsp;}<BR>}</P>
<P>之后可以用synchronizer插件生成Hibernate配置文件和映射文件（相关过程可以参考<A href="http://www.ideagrace.com/html/doc/2005/08/01/00315.html">http://www.ideagrace.com/html/doc/2005/08/01/00315.html</A>)，不过映射文件必须稍作修改。</P>
<P>hibernate.cfg.xml<BR>&lt;?xml version="1.0" encoding="utf-8"?&gt;<BR>&lt;!DOCTYPE hibernate-configuration<BR>&nbsp;&nbsp;&nbsp; PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"<BR>&nbsp;&nbsp;&nbsp; "<A href="http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd</A>"&gt;</P>
<P>&lt;hibernate-configuration&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;session-factory &gt;</P>
<P>&nbsp;&nbsp;&lt;!-- local connection properties --&gt;<BR>&nbsp;&nbsp;&lt;property name="hibernate.connection.url"&gt;jdbc:mysql://localhost/test&lt;/property&gt;<BR>&nbsp;&nbsp;&lt;property name="hibernate.connection.driver_class"&gt;com.mysql.jdbc.Driver&lt;/property&gt;<BR>&nbsp;&nbsp;&lt;property name="hibernate.connection.username"&gt;&lt;/property&gt;<BR>&nbsp;&nbsp;&lt;property name="hibernate.connection.password"&gt;&lt;/property&gt;<BR>&nbsp;&nbsp;&lt;!-- property name="hibernate.connection.pool_size"&gt;&lt;/property --&gt;</P>
<P>&nbsp;&nbsp;&lt;!-- dialect for MySQL --&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="dialect"&gt;org.hibernate.dialect.MySQLDialect&lt;/property&gt;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="hibernate.show_sql"&gt;True&lt;/property&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="hibernate.transaction.factory_class"&gt;org.hibernate.transaction.JDBCTransactionFactory&lt;/property&gt;<BR>&nbsp;&nbsp;&nbsp; &nbsp;&lt;mapping resource="User.hbm.xml"/&gt;</P>
<P><BR>&nbsp;&nbsp;&nbsp; &lt;/session-factory&gt;<BR>&lt;/hibernate-configuration&gt;</P>
<P>User.hbm.xml</P>
<P>&lt;?xml version="1.0"?&gt;<BR>&lt;!DOCTYPE hibernate-mapping PUBLIC<BR>&nbsp;"-//Hibernate/Hibernate Mapping DTD//EN"<BR>&nbsp;"<A href="http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd</A>" &gt;</P>
<P>&lt;hibernate-mapping package="com.user"&gt;<BR>&nbsp;&lt;class<BR>&nbsp;&nbsp;name="User"<BR>&nbsp;&nbsp;table="user"<BR>&nbsp;&gt;<BR>&nbsp;&nbsp;&lt;id<BR>&nbsp;&nbsp;&nbsp;name="Id"<BR>&nbsp;&nbsp;&nbsp;type="integer"<BR>&nbsp;&nbsp;&nbsp;column="id"<BR>&nbsp;&nbsp;&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;generator class="native"/&gt;<BR>&nbsp;&nbsp;&lt;/id&gt;</P>
<P>&nbsp;&nbsp;&lt;property<BR>&nbsp;&nbsp;&nbsp;name="Name"<BR>&nbsp;&nbsp;&nbsp;column="name"<BR>&nbsp;&nbsp;&nbsp;type="string"<BR>&nbsp;&nbsp;&nbsp;not-null="true"<BR>&nbsp;&nbsp;&nbsp;length="20"<BR>&nbsp;&nbsp;/&gt;<BR>&nbsp;&nbsp;&lt;property<BR>&nbsp;&nbsp;&nbsp;name="Password"<BR>&nbsp;&nbsp;&nbsp;column="password"<BR>&nbsp;&nbsp;&nbsp;type="string"<BR>&nbsp;&nbsp;&nbsp;not-null="true"<BR>&nbsp;&nbsp;&nbsp;length="20"<BR>&nbsp;&nbsp;/&gt;<BR>&nbsp;&nbsp;&lt;component name="Contact" class="Contact"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;property<BR>&nbsp;&nbsp;&nbsp;name="Email"<BR>&nbsp;&nbsp;&nbsp;column="email"<BR>&nbsp;&nbsp;&nbsp;type="string"<BR>&nbsp;&nbsp;&nbsp;not-null="false"<BR>&nbsp;&nbsp;&nbsp;length="50"<BR>&nbsp;&nbsp;/&gt;<BR>&nbsp;&nbsp;&lt;property<BR>&nbsp;&nbsp;&nbsp;name="Address"<BR>&nbsp;&nbsp;&nbsp;column="address"<BR>&nbsp;&nbsp;&nbsp;type="string"<BR>&nbsp;&nbsp;&nbsp;not-null="false"<BR>&nbsp;&nbsp;&nbsp;length="100"<BR>&nbsp;&nbsp;/&gt;<BR>&nbsp;&nbsp;&lt;/component&gt;<BR>&nbsp;&nbsp;</P>
<P><BR>&nbsp;&lt;/class&gt;&nbsp;<BR>&lt;/hibernate-mapping&gt;</P>
<P>&nbsp;</P>
<P>3.测试 <BR>添加一个测试类：HibernateTest</P>
<P>package com.user;</P>
<P>import java.util.List;<BR>import java.util.ListIterator;</P>
<P>import org.hibernate.*;<BR>import org.hibernate.cfg.*;</P>
<P>public class HibernateTest {<BR>&nbsp;&nbsp;&nbsp; public static void main(String[] args) throws HibernateException {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //testInsert(sessionFactory);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; testQuery(sessionFactory);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sessionFactory.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; public static void testInsert( SessionFactory sessionFactory )throws HibernateException {<BR>&nbsp;&nbsp;&nbsp; &nbsp;<BR>&nbsp; &nbsp;&nbsp; &nbsp;Session session = sessionFactory.openSession();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Transaction tx= session.beginTransaction();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; User user = new User();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Contact contact=new Contact();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; contact.setEmail("email");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; contact.setAddress("address");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user.setName("caterpillar");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user.setPassword("password");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user.setContact(contact);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.save(user);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tx.commit();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("OK！");<BR>&nbsp; &nbsp;}<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; public static void testQuery( SessionFactory sessionFactory )throws HibernateException {<BR>&nbsp;&nbsp;&nbsp; &nbsp;<BR>&nbsp;&nbsp;&nbsp; &nbsp;Session session = sessionFactory.openSession();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Transaction tx= session.beginTransaction();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; User user = new User();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Contact contact=new Contact();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Query query=session.createQuery("from User as user");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //query.setCharacter(1, 'M');<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List names =query.list();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(ListIterator it=names.listIterator();it.hasNext();){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;user= (User)it.next();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;System.out.println("Id: " + user.getId());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("name: " + user.getName());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("password: " + user.getPassword());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(user.getContact()!=null){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;if(user.getContact().getEmail()!=null){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;System.out.println("Email: " + user.getContact().getEmail());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;if(user.getContact().getAddress()!=null){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;System.out.println("Address: " + user.getContact().getAddress());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tx.commit();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.close();<BR>&nbsp;&nbsp;&nbsp; &nbsp;<BR>&nbsp;&nbsp;&nbsp; }<BR>}</P>
<P>&nbsp;</P>
<P>&nbsp;&nbsp; </P>
<P>&nbsp;</P><img src ="http://www.blogjava.net/felicity/aggbug/23253.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2005-12-10 12:50 <a href="http://www.blogjava.net/felicity/archive/2005/12/10/23253.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse下JSF入门</title><link>http://www.blogjava.net/felicity/archive/2005/12/10/23251.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Sat, 10 Dec 2005 04:05:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2005/12/10/23251.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/23251.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2005/12/10/23251.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/23251.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/23251.html</trackback:ping><description><![CDATA[1.开发环境 <BR>&nbsp; &nbsp;与Eclipse下Struts的开发类似，安装好Eclipse和Tomcat之后，还需要两个插件：tomcat 插件和JSF插件（如果相关插件还没有安装），以下是相关下载地址： <BR>&nbsp; &nbsp; Eclipse SDK： <BR>&nbsp; &nbsp; &nbsp; &nbsp; <A href="http://www.eclipse.org/downloads/index.php" target=_blank>http://www.eclipse.org/downloads/index.php</A>&nbsp; <BR>&nbsp; &nbsp; JSF: <BR>&nbsp; &nbsp; &nbsp;https://sourceforge.jp/projects/amateras/files/ &nbsp; <BR>&nbsp; &nbsp; &nbsp; FaceIDE+htmlEditor，htmlEditer也是必要的 <BR>&nbsp; &nbsp; Tomcat : <BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<A href="http://www.sysdeo.com/eclipse/tomcatplugin" target=_blank>http://www.sysdeo.com/eclipse/tomcatplugin</A>&nbsp; <BR>&nbsp; &nbsp; Plugin Search: <BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<A href="http://eclipse-plugins.2y.net/eclipse/search.jsp" target=_blank>http://eclipse-plugins.2y.net/eclipse/search.jsp</A>&nbsp; <BR>&nbsp; &nbsp;插件的安装和配置有问题请直接Google。 <BR>2.开始 <BR>&nbsp; &nbsp; 入门嘛，我们就找一个最简单的Login就可以了 <BR><BR>&nbsp; &nbsp; 新建Tomcat project <BR>&nbsp; &nbsp; 加入JSF支持 <BR><BR>&nbsp; &nbsp; 新建一个ManagedBean： <BR><BR><BR>/** <BR>&nbsp;* <BR>&nbsp;*/ <BR>package com.jsf; <BR><BR><BR><BR><BR>/** <BR>&nbsp;* @author lzy <BR>&nbsp;* <BR>&nbsp;*/ <BR>public class UserBean { <BR>private String name; <BR>&nbsp; &nbsp; private String password; <BR>public String verify() { <BR>&nbsp; &nbsp; &nbsp;if(this.name.equals("name")&amp;&amp;this.password.equals("password")) <BR>&nbsp; &nbsp; &nbsp; <BR>&nbsp; &nbsp; &nbsp; &nbsp; return "failure"; <BR><BR>&nbsp; &nbsp;else <BR>&nbsp; &nbsp; &nbsp; &nbsp; return "success"; <BR>} <BR><BR>&nbsp; <BR>/** <BR>* @return Returns the name. <BR>*/ <BR>public String getName() { <BR>return name; <BR>} <BR><BR>/** <BR>* @param name The name to set. <BR>*/ <BR>public void setName(String name) { <BR>this.name = name; <BR>} <BR><BR><BR>/** <BR>* @return Returns the password. <BR>*/ <BR>public String getPassword() { <BR>return password; <BR>} <BR><BR>/** <BR>* @param password The password to set. <BR>*/ <BR>public void setPassword(String password) { <BR>this.password = password; <BR>} <BR><BR><BR>} <BR><BR>&nbsp; &nbsp; &nbsp;新建两个JSP页面，login.jsp,welcom.jsp <BR><BR>login.jsp <BR>&lt;%@ page contentType="text/html; charset=GBK" %&gt; <BR>&lt;%@ taglib uri="<A href="http://java.sun.com/jsf/html" target=_blank>http://java.sun.com/jsf/html</A>" prefix="h" %&gt; <BR>&lt;%@ taglib uri="<A href="http://java.sun.com/jsf/core" target=_blank>http://java.sun.com/jsf/core</A>" prefix="f" %&gt; <BR><BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;%@ page contentType="text/html; charset=GBK" %&gt; <BR>&lt;%@ taglib uri="<A href="http://java.sun.com/jsf/html" target=_blank>http://java.sun.com/jsf/html</A>" prefix="h" %&gt; <BR>&lt;%@ taglib uri="<A href="http://java.sun.com/jsf/core" target=_blank>http://java.sun.com/jsf/core</A>" prefix="f" %&gt; <BR><BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;link href="main.css" rel="stylesheet"/&gt; <BR>&lt;title&gt;&lt;/title&gt; <BR><BR>&lt;/head&gt; <BR>&lt;body&gt; <BR>&nbsp; &nbsp; &lt;f:view&gt; <BR>&nbsp; &nbsp; &lt;f:loadBundle basename="com.jsf.MessageResources" var="msgs"&gt;&lt;/f:loadBundle&gt; <BR>&nbsp; &nbsp; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;h:form&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;h:panelGrid columns="3" headerClass="header" rowClasses="evenRow,oddRow"&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;f:facet name="header" &gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;h:outputText value="#{msgs.header}"/&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/f:facet&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;h:outputText value="#{msgs.namePromt}"&gt;&lt;/h:outputText&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;h:inputText id="name" &nbsp;required="true" value="#{user.name}"&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;f:validateLength minimum="2" maximum="10"&gt;&lt;/f:validateLength&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/h:inputText&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;h:message for="name" errorClass="errors"/&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; <BR>&nbsp; &nbsp; &nbsp; &nbsp; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;h:outputText value="#{msgs.passwordPromt}"&gt;&lt;/h:outputText&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;h:inputSecret id="password" value="#{user.password}" required="true" redisplay="true"&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;f:validateLength minimum="2"&gt;&lt;/f:validateLength&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/h:inputSecret&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;h:message for="password"/&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; <BR>&nbsp; &nbsp; &nbsp; &nbsp; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;f:facet name="footer" &gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;h:outputText value="#{msgs.footer}"/&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/f:facet&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/h:panelGrid&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;h:commandButton value="#{msgs.submitPromt}" action="#{user.verify}"/&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;h:commandButton value="#{msgs.resetPromt}" type="reset"/&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/h:form&gt; <BR>&nbsp; &nbsp; &lt;/f:view&gt; <BR>&lt;/body&gt; <BR>&lt;/html&gt; <BR><BR><BR><BR>welcome.jsp <BR><BR><BR>&lt;%@ page contentType="text/html; charset=GBK" %&gt; <BR>&lt;%@ taglib uri="<A href="http://java.sun.com/jsf/html" target=_blank>http://java.sun.com/jsf/html</A>" prefix="h" %&gt; <BR>&lt;%@ taglib uri="<A href="http://java.sun.com/jsf/core" target=_blank>http://java.sun.com/jsf/core</A>" prefix="f" %&gt; <BR><BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;meta http-equiv="Content-Type" content="text/html; charset=GBK"/&gt; <BR>&lt;title&gt;&lt;/title&gt; <BR>&lt;/head&gt; <BR>&lt;body&gt; <BR>&nbsp; &nbsp; &lt;f:view&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;h:outputText value="#{user.name}"/&gt; &nbsp;is a good boy！ <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;h3&gt;welcome JavaServer Faces&lt;/h3&gt; <BR>&nbsp; &nbsp; &lt;/f:view&gt; <BR>&lt;/body&gt; <BR><BR>&lt;/html&gt; <BR>&nbsp; &nbsp; &nbsp;编辑WEB－INF/lib下的faces－config.xml <BR><BR>struts-config.xml <BR><BR>&lt;?xml version="1.0"?&gt; <BR>&lt;!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "<A href="http://java.sun.com/dtd/web-facesconfig_1_1.dtd" target=_blank>http://java.sun.com/dtd/web-facesconfig_1_1.dtd</A>"&gt; <BR>&lt;faces-config&gt; <BR>&lt;navigation-rule&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;from-view-id&gt;/login.jsp&lt;/from-view-id&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;navigation-case&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;from-outcome&gt;success&lt;/from-outcome&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;to-view-id&gt;/welcome.jsp&lt;/to-view-id&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/navigation-case&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;navigation-case&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;from-outcome&gt;failure&lt;/from-outcome&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;to-view-id&gt;/login.jsp&lt;/to-view-id&gt; <BR>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/navigation-case&gt; <BR>&lt;/navigation-rule&gt; <BR><BR><BR>&lt;managed-bean&gt; <BR>&lt;managed-bean-name&gt;user&lt;/managed-bean-name&gt; <BR>&lt;managed-bean-class&gt;com.jsf.UserBean&lt;/managed-bean-class&gt; <BR>&lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt; <BR>&lt;/managed-bean&gt; <BR>&lt;/faces-config&gt; <BR><BR><BR>&nbsp; &nbsp; &nbsp; &nbsp;最后是资源文件 <BR><BR># --login.jsp-- <BR>header=Welcom <BR>namePromt=Name: <BR>passwordPromt=Password: <BR>amountPromt=Amount: <BR>datePromt=Date: <BR>submitPromt=Submit <BR>resetPromt=Reset <BR>footer=Thank you! <BR><BR><BR>3.测试 <BR>在test工程中选择tomcat project－&gt;Update context definition <BR>然后运行Tomcat <BR><A href="http://127.0.0.1:8080/jsfTest/login.jsf">http://127.0.0.1:8080/jsfTest/login.jsf</A> <img src ="http://www.blogjava.net/felicity/aggbug/23251.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2005-12-10 12:05 <a href="http://www.blogjava.net/felicity/archive/2005/12/10/23251.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse下Struts开发入门</title><link>http://www.blogjava.net/felicity/archive/2005/12/10/23244.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Sat, 10 Dec 2005 03:10:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2005/12/10/23244.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/23244.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2005/12/10/23244.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/23244.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/23244.html</trackback:ping><description><![CDATA[<P>&nbsp;</P>
<P>1.开发环境<BR>&nbsp;&nbsp; 开发之前首先应该准备好开发环境，Eclipse 3.X是一个不错的Java IDE，有很多插件可以供我们选择，服务器用Tomcat就行了。安装好Eclipse和Tomcat之后，还需要两个插件：tomcat 插件和Struts插件，以下是相关下载地址：<BR>&nbsp;&nbsp;&nbsp;&nbsp; Eclipse SDK：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.eclipse.org/downloads/index.php">http://www.eclipse.org/downloads/index.php</A> <BR>&nbsp;&nbsp;&nbsp; Struts: <BR>&nbsp;&nbsp;&nbsp;&nbsp; <A href="https://sourceforge.jp/projects/amateras/files/">https://sourceforge.jp/projects/amateras/files/</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StrutsIDE+htmlEditor，htmlEditer也是必要的<BR>&nbsp;&nbsp;&nbsp; Tomcat : <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.sysdeo.com/eclipse/tomcatplugin">http://www.sysdeo.com/eclipse/tomcatplugin</A> <BR>&nbsp;&nbsp;&nbsp; Plugin Search: <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://eclipse-plugins.2y.net/eclipse/search.jsp">http://eclipse-plugins.2y.net/eclipse/search.jsp</A> <BR>&nbsp;&nbsp; 插件的安装和配置有问题请直接Google。<BR>2.开始<BR>&nbsp;&nbsp;&nbsp; 入门嘛，我们就找一个最简单的Login就可以了</P>
<P>&nbsp;&nbsp;&nbsp; 新建Tomcat project，如下图</P>
<P>&nbsp;&nbsp;&nbsp; 加入struts支持<BR>&nbsp;&nbsp;&nbsp; 新建一个FormBean:LoginForm</P>
<P><BR>/**<BR>&nbsp;* <BR>&nbsp;*/<BR>package com.test;</P>
<P>import javax.servlet.http.HttpServletRequest;</P>
<P>import org.apache.struts.action.ActionErrors;<BR>import org.apache.struts.action.ActionForm;<BR>import org.apache.struts.action.ActionMapping;<BR>import org.apache.struts.action.ActionMessage;</P>
<P>/**<BR>&nbsp;* @author lzy<BR>&nbsp;*<BR>&nbsp;*/<BR>public class LoginForm extends ActionForm {</P>
<P>&nbsp;private String name=null;<BR>&nbsp;private String password=null;<BR>&nbsp;/* (non-Javadoc)<BR>&nbsp; * @see org.apache.struts.action.ActionForm#reset(org.apache.struts.action.ActionMapping, javax.servlet.http.HttpServletRequest)<BR>&nbsp; */<BR>&nbsp;@Override<BR>&nbsp;public void reset(ActionMapping arg0, HttpServletRequest arg1) {<BR>&nbsp;&nbsp;// TODO Auto-generated method stub<BR>&nbsp;&nbsp;name=null;<BR>&nbsp;&nbsp;password=null;<BR>&nbsp;}<BR>&nbsp;/* (non-Javadoc)<BR>&nbsp; * @see org.apache.struts.action.ActionForm#validate(org.apache.struts.action.ActionMapping, javax.servlet.http.HttpServletRequest)<BR>&nbsp; */<BR>&nbsp;@Override<BR>&nbsp;public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) {<BR>&nbsp;&nbsp;// TODO Auto-generated method stub<BR>ActionErrors errors=new ActionErrors();<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;if(name==null||name.length()&lt;1){<BR>&nbsp;&nbsp;&nbsp;errors.add("username",new ActionMessage("errors.login.name.empty"));<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;if(password==null||password.length()&lt;1){<BR>&nbsp;&nbsp;&nbsp;errors.add("password",new ActionMessage("errors.login.password.empty"));<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;return errors;<BR>&nbsp;}<BR>&nbsp;/**<BR>&nbsp; * @return Returns the name.<BR>&nbsp; */<BR>&nbsp;public String getName() {<BR>&nbsp;&nbsp;return name;<BR>&nbsp;}<BR>&nbsp;/**<BR>&nbsp; * @param name The name to set.<BR>&nbsp; */<BR>&nbsp;public void setName(String name) {<BR>&nbsp;&nbsp;this.name = name;<BR>&nbsp;}<BR>&nbsp;/**<BR>&nbsp; * @return Returns the password.<BR>&nbsp; */<BR>&nbsp;public String getPassword() {<BR>&nbsp;&nbsp;return password;<BR>&nbsp;}<BR>&nbsp;/**<BR>&nbsp; * @param password The password to set.<BR>&nbsp; */<BR>&nbsp;public void setPassword(String password) {<BR>&nbsp;&nbsp;this.password = password;<BR>&nbsp;}<BR>}</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; 新建一个Action:LoginAction</P>
<P>/**<BR>&nbsp;* <BR>&nbsp;*/<BR>package com.test;</P>
<P><BR>import javax.servlet.http.HttpServletRequest;<BR>import javax.servlet.http.HttpServletResponse;<BR>import javax.servlet.http.HttpSession;<BR>import org.apache.struts.*;<BR>import org.apache.struts.action.Action;<BR>import org.apache.struts.action.ActionForm;<BR>import org.apache.struts.action.ActionForward;<BR>import org.apache.struts.action.ActionMapping;<BR>import org.apache.struts.action.ActionMessage;<BR>import org.apache.struts.action.ActionMessages;</P>
<P>/**<BR>&nbsp;* @author lzy<BR>&nbsp;*<BR>&nbsp;*/<BR>public class LoginAction extends Action {<BR>&nbsp;public ActionForward execute(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception {<BR>&nbsp;&nbsp;// TODO Auto-generated method stub<BR>&nbsp;&nbsp;LoginForm loginForm=(LoginForm)actionForm;<BR>&nbsp;&nbsp;String name=loginForm.getName();<BR>&nbsp;&nbsp;String password=loginForm.getPassword();</P>
<P><BR>&nbsp;if(name.equals("name")&amp;&amp;password.equals("password")){<BR>&nbsp;&nbsp;&nbsp;HttpSession session=request.getSession(true);<BR>&nbsp;&nbsp;&nbsp;session.setAttribute("LOGGED_USER",name);</P>
<P>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;return mapping.findForward("success");<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;else{<BR>&nbsp;&nbsp;&nbsp;ActionMessages errors=new ActionMessages();<BR>&nbsp;&nbsp;&nbsp;errors.add("login.failure",new ActionMessage("errors.login.failure"));&nbsp;<BR>&nbsp;&nbsp;&nbsp;this.saveErrors(request,errors);<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;return mapping.findForward("failure");&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;<BR>&nbsp;}</P>
<P>}</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; 新建两个JSP页面，login.jsp,index.jsp</P>
<P>login.jsp<BR>&lt;%@ page contentType="text/html; charset=GBK" %&gt;<BR>&lt;%@ taglib uri="/tags/struts-html" prefix="html" %&gt;<BR>&lt;%@ taglib uri="/tags/struts-tiles" prefix="tiles" %&gt;</P>
<P>&lt;html:html&gt;<BR>&nbsp;&lt;head&gt;<BR>&nbsp;&nbsp;&lt;html:base /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/head&gt;<BR>&nbsp;&lt;body&gt;<BR>&nbsp;&lt;center&gt;<BR>&nbsp;&lt;html:errors /&gt;<BR>&nbsp;&nbsp;&lt;html:form action="/login.do" method="POST"&gt;<BR>&nbsp;&nbsp;&lt;table border="1"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td colspan="2"&gt;&lt;bean:message key="login.jsp.form.title"/&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align="right"&gt;&lt;bean:message key="login.jsp.name"/&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;html:text property="name" size="20"&gt;&lt;/html:text&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align="right"&gt;&lt;bean:message key="login.jsp.password"/&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;html:password property="password" size="20"&gt;&lt;/html:password&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td colspan="2"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:submit&gt;&lt;bean:message key="form.submit"/&gt;&lt;/html:submit&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:reset&gt;&lt;bean:message key="form.reset"/&gt;&lt;/html:reset&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<BR>&nbsp;<BR>&nbsp;&nbsp;&lt;/table&gt;<BR>&nbsp;<BR>&nbsp;&nbsp;&lt;/html:form&gt;<BR>&nbsp;&nbsp;<BR>&nbsp;&lt;/center&gt;<BR>&nbsp;&lt;/body&gt;<BR>&lt;/html:html&gt;</P>
<P><BR>index.jsp</P>
<P><BR>&lt;%@ page contentType="text/html; charset=GBK" %&gt;<BR>&lt;%@ taglib uri="/tags/struts-bean" prefix="bean" %&gt;<BR>&lt;%@ taglib uri="/tags/struts-logic" prefix="logic" %&gt;<BR>&lt;%@ taglib uri="/tags/struts-html" prefix="html" %&gt;<BR>&lt;%@ taglib uri="/tags/struts-nested" prefix="nested" %&gt;</P>
<P>&lt;html:html&gt;<BR>&nbsp;&lt;head&gt;<BR>&nbsp;&nbsp;&lt;meta http-equiv="Content-Type" content="text/html; charset=GBK"/&gt;<BR>&nbsp;&nbsp;&lt;title&gt;&lt;/title&gt;<BR>&nbsp;&lt;/head&gt;<BR>&nbsp;&lt;body&gt;<BR>&nbsp;hello<BR>&nbsp;&nbsp;&lt;logic:present name="LOGGED_USER"&gt;,&lt;bean:write name="LOGGED_USER"/&gt;<BR>&nbsp;&nbsp;&lt;/logic:present&gt;<BR>&nbsp;&lt;/body&gt;<BR>&lt;/html:html&gt;</P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp; 编辑WEB－INF/lib下的struts－config.xml</P>
<P>struts-config.xml</P>
<P>&lt;?xml version="1.0"?&gt;<BR>&lt;!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "<A href="http://struts.apache.org/dtds/struts-config_1_2.dtd">http://struts.apache.org/dtds/struts-config_1_2.dtd</A>"&gt;<BR>&lt;struts-config&gt;<BR>&nbsp; &lt;data-sources&gt;<BR>&nbsp; &lt;/data-sources&gt;<BR>&nbsp; &lt;form-beans&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;form-bean name="loginForm" type="com.lzy.LoginForm"/&gt;<BR>&nbsp; &lt;/form-beans&gt;<BR>&nbsp; &lt;global-exceptions&gt;<BR>&nbsp; &lt;/global-exceptions&gt;<BR>&nbsp; &lt;global-forwards&gt;<BR>&nbsp; &lt;/global-forwards&gt;<BR>&nbsp; &lt;action-mappings&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action path="/login" name="loginForm" type="com.lzy.LoginAction" scope="session" validate="true" input="/login.jsp"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;forward name="failure" path="/login.jsp"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;forward name="success" path="/index.jsp"/&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/action&gt;<BR>&nbsp; &lt;/action-mappings&gt;<BR>&nbsp; &lt;controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/&gt;<BR>&nbsp; &lt;message-resources parameter="MessageResources"/&gt;</P>
<P>&lt;/struts-config&gt;</P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最后是资源文件</P>
<P># -- standard errors --<BR>errors.header=&lt;UL&gt;&lt;font color="red"&gt;&lt;h2&gt;Errors:&lt;/h2&gt;<BR>errors.prefix=&lt;LI&gt;<BR>errors.suffix=&lt;/LI&gt;<BR>errors.footer=&lt;/font&gt;&lt;/UL&gt;&lt;hr&gt;</P>
<P><BR>form.submit=Submit</P>
<P>form.reset=Reset</P>
<P><BR># -- login.jsp --<BR>login.jsp.title=Login<BR>login.jsp.form.title=Login<BR>login.jsp.name=Name:<BR>login.jsp.password=Password:</P>
<P># -- login errors --<BR>errors.login.name.empty=The name can not be empty!<BR>errors.login.password.empty=The password can not be empty!<BR>errors.login.failure=Login failed!&lt;br&gt; Please check your username and password!</P>
<P>&nbsp;</P>
<P>3.测试<BR>在test工程中选择tomcat project－&gt;Update context definition<BR>然后运行Tomcat<BR><A href="http://127.0.0.1:8080/test/login.jsp">http://127.0.0.1:8080/test/login.jsp</A></P>
<P><BR>&nbsp;&nbsp; </P><img src ="http://www.blogjava.net/felicity/aggbug/23244.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2005-12-10 11:10 <a href="http://www.blogjava.net/felicity/archive/2005/12/10/23244.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java Web Service 之SOAP入门 </title><link>http://www.blogjava.net/felicity/archive/2005/12/09/23204.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Fri, 09 Dec 2005 11:39:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2005/12/09/23204.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/23204.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2005/12/09/23204.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/23204.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/23204.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这几天在图书馆看到了一本书《Java SOAP编程指南》，出于对正兴起的web service的好奇，借了回来。看了一下SOAP的介绍，没太明白，只知道是Simple Object Access Protocol,和XML结合可以提供跨平台的服务。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;编程的人总有这么一个爱好，开始的时候总要拿一个HelloWorld似的例子试试，我也不例外。 要试当然要有SOAP的运行环境。按照书上的指示，装好了Tomcat，下载了相关的包，将soap.jar ,mail.jar,activatio.jar,xercesImpl.jar 加入到了环境变量classpath中，将soap.war拷贝到了TOMCAT的webapps目录下。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;运行SOAP的测试目录：HTTP://127.0.0.1:8080/soap/发现soap已经正常工作。 接着便是部署新的SOAP服务了，按照书上的源码，写好了测试用的部署类和客户端类，编译通过。在部署新的SOAP的web页面下按照书上的步骤添好表单并部署完成。将测试所在目录添加到classpath中。 重启tomcat。 运行刚才编译好的客户端类，结果NoClassDefError。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;试了好几遍，都是这样，很是让我郁闷啊。 看了另一本书《java web服务应用开发详解》终于找到了答案： 运行客户端测试程序时，***Client.class是在Package test中的 运行时退回到test的上级目录，java test.***Client 即可。 我想遇到类似问题，还是对java的包不熟悉。 <img src ="http://www.blogjava.net/felicity/aggbug/23204.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2005-12-09 19:39 <a href="http://www.blogjava.net/felicity/archive/2005/12/09/23204.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse 使用小结 </title><link>http://www.blogjava.net/felicity/archive/2005/12/09/23203.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Fri, 09 Dec 2005 11:38:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2005/12/09/23203.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/23203.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2005/12/09/23203.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/23203.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/23203.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Eclipse，我想任何一个学习Java的人都会知道它，一个很不错的开发环境，不光能开发基于Java的各种程序，还能做C＋＋开发，比起JBuilder，我觉得Eclipse有过之而无不及，尤其它还是一个开源项目，很多东西都是JBuilder没有的。&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Eclipse 是一个基于插件的开发平台，很多功能都是通过插件来完成的。比如说要做Java图形界面开发，如使用AWT和SWING的开发，就需要下载相应的插件，因此使用Eclipse时除了基本的Eclipse SDK还需要下载安装相应的插件。 <BR>下面是一些相关的下载地址：<BR>&nbsp;&nbsp;&nbsp;&nbsp;Eclipse SDK：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.eclipse.org/downloads/index.php（v3.1.1）&nbsp;&nbsp;<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;SWING+AWT:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Visual Editor: http://www.eclipse.org/vep/ (v1.1.0.1 released)&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;Struts:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StrutsIDE+htmlEditor: https://sourceforge.jp/projects/amateras/files/( v1.1.7+1.6.7)&nbsp;<BR>&nbsp;&nbsp;&nbsp;J2EE:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tomcat : http://www.sysdeo.com/eclipse/tomcatplugin&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lomboz: http://forge.objectweb.org/project/showfiles.php?group_id=97&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;JSF:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;faceIDE https://sourceforge.jp/projects/amateras/files/( v1.1.7+1.6.7)&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;Hibernate:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hibernate synchronizer http://hibernatesynch.sourceforge.net<BR><BR>&nbsp;Plugin Search:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://eclipse-plugins.2y.net/eclipse/search.jsp <img src ="http://www.blogjava.net/felicity/aggbug/23203.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2005-12-09 19:38 <a href="http://www.blogjava.net/felicity/archive/2005/12/09/23203.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBuilder 开发J2ME程序第一步 </title><link>http://www.blogjava.net/felicity/archive/2005/12/09/23202.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Fri, 09 Dec 2005 11:33:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2005/12/09/23202.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/23202.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2005/12/09/23202.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/23202.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/23202.html</trackback:ping><description><![CDATA[
 
 
 

安装完JBuilder 9 Enterprise版后，看到介绍中说可以支持J2ME的开发，所以想试一下。

因为J2ME需要另外的jdk支持，所以第一步就是安装相应的wireless toolkit jdk.

相应的jdk可以从sun的官方网站上下载，安装过程也非常简单
这里不再详叙。

安装完后，将新的jdk添加到JBuilder的配置中，Tools->Configure JDKs
之后，新建工程，选择刚才的jdk。
打开Project->Project Properties,在run 选项卡中点New

在弹出框中选择run, type改为MIDlet(原来为Application)。

之后就可以新建MIDlet了。
 
<img src ="http://www.blogjava.net/felicity/aggbug/23202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2005-12-09 19:33 <a href="http://www.blogjava.net/felicity/archive/2005/12/09/23202.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP实现留言板的JavaBean类和分页显示的源码 </title><link>http://www.blogjava.net/felicity/archive/2005/12/09/23199.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Fri, 09 Dec 2005 11:30:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2005/12/09/23199.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/23199.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2005/12/09/23199.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/23199.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/23199.html</trackback:ping><description><![CDATA[<DIV>&nbsp;</DIV>
<DIV>
<P>//留言bean<BR>package userinfobean;</P>
<P>/**<BR>&nbsp;* &lt;p&gt;Title: &lt;/p&gt;<BR>&nbsp;* &lt;p&gt;Description: &lt;/p&gt;<BR>&nbsp;* &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;<BR>&nbsp;* &lt;p&gt;Company: &lt;/p&gt;<BR>&nbsp;* @author not attributable<BR>&nbsp;* @version 1.0<BR>&nbsp;*/</P>
<P>public class memoBean {</P>
<P>&nbsp; private String id;//1.用户名<BR>&nbsp; private String email;//2.密码<BR>&nbsp; private String content;//3.留言&nbsp; </P>
<P>&nbsp; public memoBean() {<BR>&nbsp; }<BR>&nbsp; //1.用户名<BR>&nbsp; public void setId(String s){<BR>&nbsp;&nbsp;&nbsp; this.id=s;<BR>&nbsp; }<BR>&nbsp; //2.密码<BR>&nbsp; public void setEmail(String s){<BR>&nbsp;&nbsp;&nbsp; this.email=s;<BR>&nbsp; }<BR>&nbsp; //3.留言<BR>&nbsp;&nbsp; public void setContent(String s){<BR>&nbsp;&nbsp;&nbsp; this.content=s;<BR>&nbsp; }<BR>&nbsp;</P>
<P>&nbsp; //1.用户名<BR>&nbsp;&nbsp; public String getId( ){<BR>&nbsp;&nbsp;&nbsp;&nbsp; return this.id;<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; //2.密码<BR>&nbsp;&nbsp; public String getEmail(){<BR>&nbsp;&nbsp;&nbsp;&nbsp; return this.email;<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; //3.留言&nbsp;<BR>&nbsp;&nbsp; public String getContent(){<BR>&nbsp;&nbsp;&nbsp;&nbsp; return this.content;<BR>&nbsp;&nbsp; }<BR>}<BR>//// 用于数据库操作的bean&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>package userinfobean;</P>
<P>import userinfobean.*;<BR>import java.io.*;<BR>import java.util.*;<BR>import java.sql.*;</P>
<P><BR>public class databaseBean{<BR>&nbsp; private String dbName;<BR>&nbsp; private String dbUser;<BR>&nbsp; private String dbPass;<BR>&nbsp;&nbsp;&nbsp;private Vector memoVector;</P>
<P>&nbsp;&nbsp; Connection connection;</P>
<P>&nbsp; public databaseBean(){<BR>&nbsp;&nbsp;&nbsp; dbName=new String("×××××××");<BR>&nbsp;&nbsp;&nbsp; dbUser=new String("××××××");<BR>&nbsp;&nbsp;&nbsp; dbPass=new String("×××××××");<BR>&nbsp;&nbsp;&nbsp; String connectionUrl="jdbc:mysql://localhost/"+dbName;<BR>&nbsp;&nbsp;&nbsp; try{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class.forName("org.gjt.mm.mysql.Driver");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connection=DriverManager.getConnection(connectionUrl,dbUser,dbPass);<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; catch(Exception e){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(e.toString());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp; }</P>
<P>&nbsp; public void dbQueryMemos(){<BR>&nbsp;&nbsp;&nbsp; try{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memoVector=new Vector();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Statement stmt=connection.createStatement();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ResultSet rs=stmt.executeQuery("select * from memo;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(rs.next()){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memoBean temp=new memoBean();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; temp.setId(rs.getString(2));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; temp.setEmail(rs.getString(3));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; temp.setContent(rs.getString(4));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memoVector.add(temp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; catch(SQLException e){<BR>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(e.toString());<BR>&nbsp;&nbsp; }</P>
<P>&nbsp;</P>
<P>&nbsp; }<BR><BR>&nbsp;&nbsp;&nbsp; public void setDbName(String s){<BR>&nbsp;&nbsp;&nbsp; this.dbName=s;<BR>&nbsp; }<BR>&nbsp; public void setDbUser(String s){<BR>&nbsp;&nbsp;&nbsp; this.dbUser=s;<BR>&nbsp; }<BR>&nbsp; public void setDbPass(String s){<BR>&nbsp;&nbsp;&nbsp; this.dbPass=s;<BR>&nbsp; }</P>
<P>&nbsp; public String getDbName(){<BR>&nbsp;&nbsp;&nbsp; return this.dbName;<BR>&nbsp; }<BR>&nbsp; public String getDbUser(){<BR>&nbsp;&nbsp;&nbsp; return this.dbUser;<BR>&nbsp; }<BR>&nbsp; public String getDbPass(){<BR>&nbsp;&nbsp;&nbsp; return this.dbPass;<BR>&nbsp; }<BR>&nbsp;&nbsp;&nbsp; public Vector getMemoVector(){<BR>&nbsp;&nbsp;&nbsp; return this.memoVector;</P>
<P>&nbsp; }</P>
<P>}<BR><BR>///以下是网页源码<BR><BR>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<BR>&lt;%@ page language="java" import="java.util.*" %&gt;<BR>&lt;%@ page&nbsp; import="java.text.*" %&gt;<BR>&lt;%@ page&nbsp; import="userinfobean.*" %&gt;<BR>&lt;jsp:useBean id="memoInfo" scope="page" class="userinfobean.memoBean"/&gt;<BR>&lt;jsp:useBean id="memoQuery" scope="page" class="userinfobean.databaseBean"/&gt;<BR>&lt;%!<BR>int totalPages;<BR>int countPerPage=3;<BR>int totalCount;<BR>int currentPage=0;<BR>int currentStart;<BR>%&gt;<BR>&lt;%<BR>memoQuery.dbQueryMemos();<BR>Vector vt=memoQuery.getMemoVector();<BR>totalCount=vt.size();<BR>totalPages=totalCount/countPerPage;<BR>if(totalCount%countPerPage&gt;0)totalPages=totalPages+1;<BR>if(request.getParameter("page")==null)<BR>{<BR>currentPage=1;<BR>}<BR>else<BR>{<BR>currentPage=Integer.parseInt(request.getParameter("page"));<BR>if(currentPage&gt;totalPages)currentPage=totalPages;<BR>if(currentPage&lt;1)currentPage=1;<BR>}<BR>currentStart=totalCount-1-countPerPage * (currentPage-1);<BR>%&gt;<BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;title&gt;NetGreen&lt;/title&gt;<BR>&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;<BR>&nbsp; &lt;link rel="stylesheet" href="main.css"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&lt;/head&gt;<BR>&lt;script language="JavaScript" &gt;<BR>function page_check()<BR>{<BR>if(document.pageForm.page.value=="")<BR>{alert("请输入页数");<BR>document.pageForm.page.focus();<BR>return false;<BR>}<BR>return true;<BR>}&lt;/script&gt;<BR>&lt;body bgcolor="ffffff"&nbsp; &gt;</P>
<P>&lt;center&gt;<BR>&nbsp; &lt;table width="800" border="0" height="622"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;tr&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="71" align="center" valign="middle"&gt; &lt;table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#0099CC"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="19%" height="60" align="left" valign="bottom" bgcolor="#FFFFFF"&gt;&lt;b&gt;&lt;font size="4" color="#00cc66" &gt;&lt;img src="image/logo.gif" width="156" height="60"&gt;&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="57%" align="left" valign="bottom" bgcolor="#FFFFFF"&gt;&lt;img src="image/banner.gif" width="100%" height="60"&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="24%" align="left" valign="bottom"&gt; &lt;table width="102%" height="60" border="1" cellpadding="0" cellspacing="0" bordercolor="#0099CC" bgcolor="#FFFFFF"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="50%" height="27" align="center"&gt;上 传&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="50%" align="center"&gt;收藏本页&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="21" align="center" bgcolor="#FFFFFF" &gt;退 出 &lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt;&lt;a href="memoForm.htm" target="_self"&gt;我要留言&lt;/a&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;tr&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="31"&gt;&lt;table width="100%" border="1" bordercolor="#0099CC"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr bgcolor="#00CC66"&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="12%" height="23" align="center" bgcolor="#CCFFFF"&gt;&lt;a href="index.htm" &gt;首页&lt;/a&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="12%" align="center" bgcolor="#CCFFFF"&gt;&lt;a href="loginForm.htm" &gt;登陆&lt;/a&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="12%" align="center" bgcolor="#CCFFFF"&gt;&amp;nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="12%" align="center" bgcolor="#CCFFFF"&gt;&amp;nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="12%" align="center" bgcolor="#CCFFFF" &gt;&amp;nbsp; &lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="12%" align="center" bgcolor="#CCFFFF"&gt;&amp;nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="12%" align="center" bgcolor="#CCFFFF"&gt;&lt;a href="memoDisplay.jsp" &gt;留言板&lt;/a&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="12%" align="center"&nbsp; bgcolor="#CCFFFF"&gt;&lt;a href="registForm.htm"&gt;注册&lt;/a&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;tr&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="435" align="center" valign="top" nowrap&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;table width="100%"&nbsp; border="1" cellpadding="0" cellspacing="0" bordercolor="#0099CC"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="18%" height="431" align="center" valign="middle" bgcolor="#CCFFFF"&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="83%" align="center" valign="top" bgcolor="#FFFFFF"&gt;&lt;table width="100%" border="1"&gt;&lt;form name="pageForm" method="post"&nbsp; onSubmit="return page_check();"action="memoDisplay.jsp"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="36%"&gt;共有留言&lt;%out.print(totalPages);%&gt; 页，现在是第&lt;%out.print(currentPage);%&gt;&nbsp; 页&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="64%"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;a href="memoDisplay.jsp?page=&lt;%=currentPage-1%&gt;" &gt;上一页 &lt;/a&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;a href="memoDisplay.jsp?page=&lt;%=currentPage+1%&gt;" &gt;下一页&nbsp; &lt;/a&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;a href="memoDisplay.jsp?page=1" &gt;首页 &lt;/a&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a href="memoDisplay.jsp?page=&lt;%=totalPages%&gt;" &gt;尾页&nbsp; &lt;/a&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type="submit" name="Submit" value="G0"&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input name="page" type="text" size="10"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 页&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/form&gt;&lt;/table&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;%<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;countPerPage&amp;&amp;currentStart-i&gt;=0;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memoInfo.setId(((memoBean)vt.get(currentStart-i)).getId());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memoInfo.setEmail(((memoBean)vt.get(currentStart-i)).getEmail());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memoInfo.setContent(((memoBean)vt.get(currentStart-i)).getContent());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;out.print("&lt;table width='100%' border='1' &gt;&lt;tr&gt;&lt;td width='19%'&gt;");<BR>&nbsp;&nbsp;&nbsp;out.print(memoInfo.getId());<BR>&nbsp;&nbsp;&nbsp;out.print("&lt;/td&gt;&lt;td width='81%'&gt;");<BR>&nbsp;&nbsp;&nbsp;out.print(memoInfo.getEmail());<BR>&nbsp;&nbsp;&nbsp;out.print("&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td height='44' colspan='2'&gt;");<BR>&nbsp;&nbsp;&nbsp;out.print(memoInfo.getContent());<BR>&nbsp;&nbsp;&nbsp;out.print("&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt; ");<BR>&nbsp;&nbsp;&nbsp;out.print("&lt;br&gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;%&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="73" align="center" valign="top" nowrap&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;table width="100%" border="0"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="21" align="center" bgcolor="#FFFFFF"&gt;&lt;hr width="85%" noshade&nbsp; color="#00CC66"&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="12" align="center"&gt;Copyright @ HomeLee. All rights reserved. <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="12" align="center" bgcolor="#FFFFFF"&gt;&amp;nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp; &lt;/table&gt;<BR>&nbsp; &lt;/center&gt;&lt;/body&gt;<BR>&lt;/html&gt;</P></DIV><img src ="http://www.blogjava.net/felicity/aggbug/23199.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2005-12-09 19:30 <a href="http://www.blogjava.net/felicity/archive/2005/12/09/23199.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDBC连接MySQL数据库 </title><link>http://www.blogjava.net/felicity/archive/2005/12/09/23198.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Fri, 09 Dec 2005 11:29:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2005/12/09/23198.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/23198.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2005/12/09/23198.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/23198.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/23198.html</trackback:ping><description><![CDATA[Step1：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查找驱动程序 MySQL目前提供的java驱动程序为Connection/J，可以从MySQL官方网站下载，并找到mysql-connector-java-3.0.15-ga-bin.jar文件，此驱动程序为纯java驱动程序，不需做其他配置。 <BR>Step2：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;动态指定classpath 如果需要执行时动态指定classpath，就在执行时采用－cp方式。否则将上面的.jar文件加入到classpath环境变量中。<BR>&nbsp;Step3：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;加载驱动程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class.forName("com.mysql.jdbc.Driver");&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("Success loading Mysql Driver!");&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(Exception e) {&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("Error loading Mysql Driver!");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>Step4：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;设置连接的url jdbc：mysql：//localhost/databasename[?pa=va][&amp;pa=va] <img src ="http://www.blogjava.net/felicity/aggbug/23198.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2005-12-09 19:29 <a href="http://www.blogjava.net/felicity/archive/2005/12/09/23198.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>