论坛登陆 用户名:  密 码:
设为首页  加入收藏
08年北京名校秋季招生
名牌院校免试入学宽进严出,突破考分限制,名校与你零距离,以下院校按报名先后顺序录取,24小时网上报名覆盖全国
  您现在的位置: 中国教育招生在线 >> IT >> JAVA认证 >> IT正文
如何使用Eclipse + Resin + WebWork + Hibernate 开发
 作者:佚名     2007-3-14 17:12:18        来源:不详  浏览次数:

 

 

 

 

 

 

 

 

如何使用Eclipse + Resin + WebWork + Hibernate 开发

按照下面的步骤进行:

1. 下载 Eclipse. 2.1 M2 版本

2. 下载Resin. 2.1.7

3. 下载Resin plug-in for Eclipse. 0.5.2 版本

4. 安装并设置上面的软件,如果JDBC DRIVER不在系统的CLASSPATH内,则需要把它复制到Resin的 "lib" 目录里面.

5. 下载 Hibernate. 1.2b2 .

6. 下载WebWork. Version 1.2.1.

7. 下载Log4J. Version 1.2.7

8. 用Eclipse 创建一个 Resin 的Java project.

9. 右击 "WEB-INF/src" 后从下拉菜单选择 "Import...".

10. 浏览文件系统找到 WebWork´s skeleton example, 导入 "webwork.properties", "webwork.vm", "log4j.properties", 和 "views.properties".

11. 用同样的方法导入 WebWork的 "web.XML" 到 "WEB-INF" .

12. 从 WebWork´s "lib" 文件夹中导入 "webwork.jar" 和所有其他支持的.jar文件,除开 "saxon.jar" 文件,到 "WEB-INF/lib".

13. 导入 WebWork´s "template" 文件夹到你 Resin project的根目录.

14. 从 Hibernate´s 根目录导入 "cache.ccf" 和 "hibernate.properties" 到 "WEB-INF/src".

15. 注意这儿另外也有一个Note that there´s also another "log4j.properties" 文件file. 用编辑器打开,将其中的内容复制,然后追加到你已经导入到"WEB-INF/src"目录的"log4j.properties"中。

16. 从Hibernate´s 根目录中导入 "hibernate.jar" 到 "WEB-INF/lib"中.

17. 从Hibernate的 "lib" 目录导入所有jar文件到"WEB-INF/lib",除开 "J2EE.jar," "junit.jar," "xerces.jar," 和 "xml-apis.jar" 文件.

18. 导入Log4J .jar 文件到 "WEB-INF/lib".

19. 使用 Hibernate工具来建立持久层的类和映射.

20. 编辑 "WEB-INF/web.xml".增加如下的节点:

12: <Servlet>

13: <servlet-name>initializer</servlet-name>

14: <servlet-class>skeleton.servlet.SkeletonInitializer</servlet-class>

15: <load-on-startup>1</load-on-startup>

16: </servlet>

17:

18: <resource-ref>

19: <res-ref-name>jdbc/skeleton</res-ref-name>

20: <res-type>javax.sql.DataSource</res-type>

21: <init-param driver-name="org.postgresql.Driver"/>

22: <init-param url="jdbc:postgresql://localhost/skeleton"/>

23: </resource-ref>


编写类似下面的初始化 servlet.:


1:package skeleton.servlet;

2:

3:import java.io.IOException;

4:

5:import javax.servlet.GenericServlet;

6:import javax.servlet.ServletConfig;

7:import javax.servlet.ServletContext;

8:import javax.servlet.ServletException;

9:import javax.servlet.ServletRequest;

10:import javax.servlet.ServletResponse;

11:

12:import javax.naming.Context;

13:import javax.naming.InitialContext;

14:import javax.naming.NamingException;

15:

16:import java.sql.Connection;

17:import java.sql.SQLException;

18:import javax.sql.DataSource;

19:

20:import cirrus.hibernate.Datastore;

21:import cirrus.hibernate.Hibernate;

22:import cirrus.hibernate.HibernateException;

23:import cirrus.hibernate.SessionFactory;

24:import cirrus.hibernate.Session;

25:

26:public class SkeletonInitializer extends GenericServlet

27:{

28: public void init(ServletConfig config) throws ServletException

29: {

30: super.init(config);

31: Datastore ds = Hibernate.createDatastore()

32: .storeClass(skeleton.persistent.Customer.class)

33: .storeClass(skeleton.persistent.Purchase.class);

34:

35: try

36: {

37: SessionFactory factory = ds.buildSessionFactory();

38:

39: Context ctx = (Context)new InitialContext().lookup("java:comp/env");

40: DataSource db = (DataSource)ctx.lookup("jdbc/skeleton");

41: Connection conn = db.getConnection();

42: Session sess = factory.openSession(conn);

43: sess.disconnect();

44:

45: ServletContext app = getServletContext();

46: app.setAttribute("hibernate.factory", factory);

47: app.setAttribute("hibernate.session", sess);

48: }

49: catch (HibernateException he)

50: {

51: he.printStackTrace();

52: }

53: catch (NamingException ne)

54: {

55: ne.printStackTrace();

56: }

57: catch (SQLException se)

58: {

59: se.printStackTrace();

60: }

61: }

62:

63: public void service(ServletRequest req, ServletResponse res) throws IOException, ServletException

64: {

65: // This space intentionally left blank

66: }

67:}




当然你需要使用真实的持久类的名称,最好,对这段代码再进行加工。.



编写类似下面的 WebWork action classes:


1:package skeleton.action;

2:

3:import webwork.action.Action;

4:import webwork.action.ActionContext;

5:import webwork.action.ActionSupport;

6:

7:import cirrus.hibernate.Hibernate;

8:import cirrus.hibernate.HibernateException;

9:import cirrus.hibernate.Session;

10:

11:import java.sql.SQLException;

12:

13:import java.util.List;

14:

15:import skeleton.persistent.Customer;

16:

17:public class SkeletonAction extends ActionSupport

18:{

19: private String incomingA;

20: private String incomingB;

21: private Customer customer;

22:

23: public void setIncomingA(String value)

24: {

25: incomingA = value;

26: }

27:

28: public void setIncomingB(String value)

29: {

30: incomingB = value;

31: }

32:

33: public void setCustomer(Customer value)

34: {

35: customer = value;

36: }

37:

38: public String getIncomingA()

39: {

40: return incomingA;

41: }

42:

43: public String getIncomingB()

44: {

45: return incomingB;

46: }

47:

48: public Customer getCustomer()

49: {

50: return customer;

51: }

52:

53: public String execute()

54: {

55: Session sess = (Session)ActionContext.getContext().getApplication.().get("hibernate.session");

56: try

57: {

58: sess.reconnect();

59: List results = sess.find("Your query here", new Object[]{incomingA, incomingB}, new Object[]{Hibernate.STRING, Hibernate.STRING});

60: // Do something to discriminate among the results; for now snag the first one

61: customer = (Customer)results.iterator().next();

62: }

63: catch (HibernateException he)

64: {

65: he.printStackTrace();

66: return Action.ERROR;

67: }

68: catch (SQLException se)

69: {

70: se.printStackTrace();

71: return Action.ERROR;

72: }

73: finally

74: {

75: try

76: {

77: sess.disconnect();

78: }

79: catch (HibernateException he)

80: {

81: he.printStackTrace();

82: }

83: catch (SQLException se)

84: {

85: se.printStackTrace();

86: }

87: }

88: return Action.SUCCESS;

89: }

90:}


使用WebWork´s <property> tag 开发你的views,:


1:<ww:property value="customer">

2: <ww:property value="name"/><br>

3: <ww:property value="address"/><br>

4: ...

5:</ww:property>



在不同的项目上,步骤19-23是需要对action的代码进行一些工作


版权申明:允许非盈利性引用,如有转载,请注明来源:“编译:brickhan;转载自http://www.javapub.com ”字样, 版权归原作/译者所有。


责任编辑:lss
  相关新闻
如何30天突破三级网络?
WebWork拦截器(Interceptor)使用方法
如何应付新大纲二级考试的公共基础知识
以二级C语言为例分析如何准备计算机考试
我该如何报考软件水平资格考试?
如何顺利通过这次考试:计算机二级考试备考秘诀
名师访谈:如何应对二级C语言笔试考题
如何准备计算机等级考试,基础教程网
使用AppFuse框架进行开发的总结
中小企业如何有效架设邮件服务系统(图)
如何准备计算机等级考试,基础教程网
如何30天突破三级网络?
以二级C语言为例分析如何准备计算机考试
如何应付新大纲二级考试的公共基础知识
名师访谈:如何应对二级C语言笔试考题
名师访谈实录:二级公共基础部分如何准备
专家谈如何准备二级VFP上机考试
2006年4月计算机等级考试应如何备考
如何顺利通过这次考试:计算机二级考试备考秘诀
我该如何报考软件水平资格考试?
  评论
现在有100人对本文发表评论
查看所有评论
 
推  荐
 
100本成功必读热销书
热门招生
  北京文理研修学院   前进大学
  北京明园大学   北京建设大学
  北京邮电大学世纪学院   北方工商管理学院
  联想软件定向委培班   香港数码动画学院
  青年企业管理研修学院   北京华夏管理学院
热门培训
网络化办公专家培训认证 电子科技大学软件学院
软件测试工程师培训认证 北大青鸟十大授权培训
IT硬件工程师培训认证班 北京环球雅思荷兰预科
JAVA开发工程师培训 潜能时代IT服务管理培训
网络信息化工程师培训 清华大学继续教育学院
论坛精选
 
有些细节是男人也该注意的风度!最容易读错的字
某强人手机里保存的30条短信 中国十大高薪职业
最感人的十大韩剧经典台词 嫁给工程师的N个理由
爆强!只有一句话的鬼故事 转贴教你如何做妖精
 女人一定要記住的話 女人最好别嫁给最爱的男人
城市联盟
 大连 上海 天津 广州 西安 深圳  天津  青岛  大连  福州  沈阳  青海  连云港  南京  吉林  厦门  威海  辽宁  呼和浩特
Copyright © 2006   www.edu999.com   All rights reserved. 中国教育招生在线  版权所有
北京市通信管理局[2004]字第552号函    京ICP证040442号