框架选择
框架一般有Structs、Spring、Hibernate;Tapestry;Flex和Laszlo;EJB(Enterprise JavaBeans)。Tapestry并不简单的是一种框架而已,它的优势还在于是一种模板,开发者使用Tapestry时可以直接使用Tapestry提供的模板甚至可以不用使用jsp;Flex和Laszlo是XML和javascript的结合体;Enterprise JavaBeans EJB可以作为一个服务被调用,可以单独运行,是一个进程 级组件。EJB中还提供了一些安全管理、事务控制功能,使得我们调用EJB时,不需要太多地束缚于这些问题的编码。相比于这些框架,我选择了Structs、Spring、Hibernate。
我们以前编辑页面使用的是JSP+Servlet+JavaBean,但是这种结构存在耦合紧密程序复用度底等问题,Structs、Spring就解决了这些问题。
Struct2使用WebWork的设计核心,使用拦截来处理页面的不同请求,并且在数据传递上提供了很大的方便。例:我在一个login.jsp中定义name和password并使用form提交,使点击提交时调用judge.java文件,我们只需在web.xml文件中定义judge的action系统就会调用judge.java文件;judge.java文件中我们只需要定义参数,使参数的名字与login.jsp一样都为name和password就可以直接获得login.jsp提交的用户名和密码;在judge中我们可以通过生成set和get方法设置和获得参数,最后我们需要返回一个值,并在struct.xml配置文件中配置相关信息,通过判断返回值决定下一步调用跳转;当成功时进入succee.jsp页面,在这个页面中我们可以通过<s:>获得judge中的参数。很方便。
Spring强大的基于 JavaBeans 的采用控制翻转(Inversion of Control,IoC)原则的配置管理,使得应用程序的组建更加快捷简易;是一个可用于从 applet 到 Java EE 等不同运行环境的核心 Bean 工厂;数据库事务的一般化抽象层,允许宣告式(Declarative)事务管理器,简化事务的划分使之与底层无关;内建的针对 JTA 和 单个 JDBC 数据源的一般化策略,使 Spring 的事务支持不要求 Java EE 环境,这与一般的 JTA 或者 EJB CMT 相反;DBC 抽象层提供了有针对性的异常等级(不再从SQL异常中提取原始代码), 简化了错误处理, 大大减少了程序员的编码量. 再次利用JDBC时,你无需再写出另一个 '终止' (finally) 模块. 并且面向JDBC的异常与Spring 通用数据访问对象 (Data Access Object) 异常等级相一致;以资源容器,DAO 实现和事务策略等形式与 Hibernate,JDO 和 iBATIS SQL Maps 集成。利用众多的翻转控制方便特性来全面支持, 解决了许多典型的Hibernate集成问题. 所有这些全部遵从Spring通用事务处理和通用数据访问对象异常等级规范;灵活的基于核心 Spring 功能的 MVC 网页应用程序框架。开发者通过策略接口将拥有对该框架的高度控制,因而该框架将适应于多种呈现(View)技术。值得注意的是,Spring 中间层可以轻易地结合于任何基于 MVC 框架的网页层;提供诸如事务管理等服务的面向方面编程框架。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。我们可以避免使用SQL语句,直接用Hibernate生成的类定义对象,通过对对象的操作实现对数据库的增删改查,这有点像我们使用C#时使用的EF框架。但Hibernate并不能完全的取代SQL有些语句我们还是得借助HQL。