Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14417814
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:44:56

下载本文示例代码
  用Action控制器替换switch.jsp  在《JBuilder 2005 Servlet高级开发》中我们介绍了用户登录模块的流程,其中switch.jsp充当一个业务处理和页面转发的中心处理器。由于JSP的设计初衷是实现页面展现逻辑,而这里我们居然"倒行逆施",将JSP用作业务处理和页面转发,显然是不恰当的。我们原来的switch.jsp身兼数职:接收login.jsp页面的表单数据,查询数据库,转发页面,象一个事无巨细,有僭越之嫌的 "管家"总揽了所有的事情,程序没有分层,逻辑显得非常不清晰,象个大杂烩。  其实Servlet本身倒是比较适合开发switch.jsp所完成的功能,但在《JBuilder 2005 Servlet高级开发》专题中,我们并没有用Servlet斧正之,是因为我们希望在本专题中从更高的角度更完美地替换switch.jsp。  可以通过Struts框架对switch.jsp功能进行分解,switch.jsp通过获取登录页面表单数据可以通过ActionForm机制实现;switch.jsp查询T_USER数据表,判断用户是否是合法用户可以在Action的execute()中处理;当未通过验证转向fail.jsp页面,如果发生异常转向error.jsp页面,当用户通过验证后转向welcome.jsp页面,可以在Action中通过ActionForward实现多出口切换。  新增一个图书管理模块  现实的图书管理模块,应该包括对图书进行增、删、改、查的功能,由于篇幅所限,我们仅提供图书新增的功能。数据库中必须提供一张表用于保存图书的信息,这张表名为T_BOOK,其结构如图 4所示: 图 4 T_BOOK表结构  我们完全用Struts框架实现图书新增的功能,JBuilder 提供了一个优秀的Struts可视化设计工具(Struts Config Editor),其中Action Designer能够非常形象地描述出一个业务功能操作流程,我们不妨就通过这个可视化设计器预览图书新增业务的程序结构,如图 5所示: 图 5 新增图书Struts流程  ·bookAdd.jsp:图书录入的界面,在这儿你将学习到Struts标签和资源文件的知识。  ·bookActionForm:由BookActionForm类实现,保存bookAdd.jsp表单提交的数据。在这儿,你将学习到如何创建ActionForm,ActionForm如何对数据有效性进行自检的知识。  ·/bookInsertAction:由BookInsertAction类实现,即业务控制器,负责将bookActionForm中的新增图书保存到数据库T_BOOK表中,并导向到insertSuccess.htm页面。  事前准备  通过File->New Project...创建一个名为bookStore的新工程,并在工程下创建名为webModule的Web模块,将原《JBuilder 2005 Servlet高级开发》专题的代码覆盖该新工程对应的内容。  用SQL Plus运行下面的SQL语句创建T_BOOK表:  代码清单 5 创建T_BOOK表的SQL语句 1. create table T_BOOK (2. BOOK_ID VARCHAR2(10) not null,3. ISBN VARCHAR2(20) not null,4. BOOK_NAME VARCHAR2(50) not null,5. AUTHOR VARCHAR2(50),6. CREATE_DATE CHAR(8),7. constraint PK_T_BOOK primary key (BOOK_ID)8. );  从这个SQL中,我们可以看出BOOK_ID是表的主键,所以不允许重复,而ISBN和BOOK_NAME两字段不允许为空。它们决定了在图书添加时的数据检验规则。  同样的,我们需要将必要的类添加到这个新工程的类库中。   用Action控制器替换switch.jsp  在《JBuilder 2005 Servlet高级开发》中我们介绍了用户登录模块的流程,其中switch.jsp充当一个业务处理和页面转发的中心处理器。由于JSP的设计初衷是实现页面展现逻辑,而这里我们居然"倒行逆施",将JSP用作业务处理和页面转发,显然是不恰当的。我们原来的switch.jsp身兼数职:接收login.jsp页面的表单数据,查询数据库,转发页面,象一个事无巨细,有僭越之嫌的 "管家"总揽了所有的事情,程序没有分层,逻辑显得非常不清晰,象个大杂烩。  其实Servlet本身倒是比较适合开发switch.jsp所完成的功能,但在《JBuilder 2005 Servlet高级开发》专题中,我们并没有用Servlet斧正之,是因为我们希望在本专题中从更高的角度更完美地替换switch.jsp。  可以通过Struts框架对switch.jsp功能进行分解,switch.jsp通过获取登录页面表单数据可以通过ActionForm机制实现;switch.jsp查询T_USER数据表,判断用户是否是合法用户可以在Action的execute()中处理;当未通过验证转向fail.jsp页面,如果发生异常转向error.jsp页面,当用户通过验证后转向welcome.jsp页面,可以在Action中通过ActionForward实现多出口切换。  新增一个图书管理模块  现实的图书管理模块,应该包括对图书进行增、删、改、查的功能,由于篇幅所限,我们仅提供图书新增的功能。数据库中必须提供一张表用于保存图书的信息,这张表名为T_BOOK,其结构如图 4所示: 图 4 T_BOOK表结构  我们完全用Struts框架实现图书新增的功能,JBuilder 提供了一个优秀的Struts可视化设计工具(Struts Config Editor),其中Action Designer能够非常形象地描述出一个业务功能操作流程,我们不妨就通过这个可视化设计器预览图书新增业务的程序结构,如图 5所示: 图 5 新增图书Struts流程  ·bookAdd.jsp:图书录入的界面,在这儿你将学习到Struts标签和资源文件的知识。  ·bookActionForm:由BookActionForm类实现,保存bookAdd.jsp表单提交的数据。在这儿,你将学习到如何创建ActionForm,ActionForm如何对数据有效性进行自检的知识。  ·/bookInsertAction:由BookInsertAction类实现,即业务控制器,负责将bookActionForm中的新增图书保存到数据库T_BOOK表中,并导向到insertSuccess.htm页面。  事前准备  通过File->New Project...创建一个名为bookStore的新工程,并在工程下创建名为webModule的Web模块,将原《JBuilder 2005 Servlet高级开发》专题的代码覆盖该新工程对应的内容。  用SQL Plus运行下面的SQL语句创建T_BOOK表:  代码清单 5 创建T_BOOK表的SQL语句 1. create table T_BOOK (2. BOOK_ID VARCHAR2(10) not null,3. ISBN VARCHAR2(20) not null,4. BOOK_NAME VARCHAR2(50) not null,5. AUTHOR VARCHAR2(50),6. CREATE_DATE CHAR(8),7. constraint PK_T_BOOK primary key (BOOK_ID)8. );  从这个SQL中,我们可以看出BOOK_ID是表的主键,所以不允许重复,而ISBN和BOOK_NAME两字段不允许为空。它们决定了在图书添加时的数据检验规则。  同样的,我们需要将必要的类添加到这个新工程的类库中。 下载本文示例代码


JBuilder2005 Struts深度体验之升级JBuilder2005 Struts深度体验之升级JBuilder2005 Struts深度体验之升级JBuilder2005 Struts深度体验之升级JBuilder2005 Struts深度体验之升级JBuilder2005 Struts深度体验之升级JBuilder2005 Struts深度体验之升级JBuilder2005 Struts深度体验之升级JBuilder2005 Struts深度体验之升级JBuilder2005 Struts深度体验之升级JBuilder2005 Struts深度体验之升级JBuilder2005 Struts深度体验之升级JBuilder2005 Struts深度体验之升级JBuilder2005 Struts深度体验之升级JBuilder2005 Struts深度体验之升级
阅读(167) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~