论文部分内容阅读
随着社会对软件需求的不断增长,计算机替代体力劳动变得越来越普遍。我们可以毫不夸张地说,社会各行各业都与软件已经密不可分。但是在软件开发过程中的开发效率低以及开发结束后期维护工作一直是困扰许多开发人员的事情。在这个背景之下,软件领域提出了构件、设计模式、框架等概念。本文首先对构件、设计模式及框架进行了一番辨析:构件即代码重用;而设计模式是设计重用;框架则介于二者之间,部分代码重用,部分设计重用,有时分析也可重用。 本文经过一番理论铺垫后,先对MVC模式的变体――Model 2加以阐述,Model 2作为MVC第二代,它继承了Model 1所有优点,而又抛弃了Model 1紧耦合,复用性差以及维护成本高等缺陷。同时我们对Model 2的工作流程通过图文加以阐释:(1)Servlet接受客户端请求;(2)Servlet把接收到的HTML FORM数据保存到数据Bean中;(3)逻辑Bean进行数据处理;(4)Servlet根据逻辑Bean的处理结果,调用相应的JSP。(5)JSP生成HTML页面,并返回给客户端。到此为止我们其实已经对Struts的本质有了一个初步的了解。接下来我们就对Struts的3个主要类:ActionServlet、Action、ActionForm及标签库Taglib做了详尽的介绍。(1)ActionServlet:完成Controller的功能。它根据HTTP请求信息,调用类Action,并根据其执行结果,选择调用的JSP文件。选择JSP文件时的匹配信息保存在XML配置文件struts-config.xml中;(2)Action:完成Model中逻辑Bean的功能。它是事务处理的封装,并完成数据的处理。(3)ActionForm:完成Model中数据Bean的功能。它保存从HTTP请求中的取得的数据,并包含数据的设定(set)及取的(get)等操作。(4) 标签库Taglib占有相当重要的地位,它大大提高了开发效率,我们重点介绍了如何自定义标签库。此外,我们还对Struts的相关技术:宣称式异常处理、日志功能、分页功能等做了大致的讲述。分页功能也是在标签库的基础之上进行的。日志功能重点讲了系统中用到的Log4j。宣称式异常处理即可配置的异常处理,顾名思义即可领会。 <WP=68>接着本文结合白云机场项目中的一个实例,从环境配置到实例背景,从逻辑设计到界面设计更为详尽地阐述了Struts的优点所在。最后本文先总结了Struts的优点。随着Weblogic、Websphere等Application Server对J2EE(Java 2 Enterprise Edition)的全面支撑,J2EE正逐渐成为Web应用软件开发的标准。为了使用Java和HTML开发出更具柔韧性的应用软件,必须解决好以下两个问题:(1)用户界面和业务逻辑的分离;(2)动态生成网页的逻辑部分和HTML的分离。而Struts很好地解决了它们:对于问题(1),采用面向对象设计中常用的MVC模型即可解决。MVC模型2是MVC在面向Web应用软件开发中的扩展,模型中的三个要素Model、View和Controller分别由JavaBean、JSP和Servlet担当。对于问题(2),采用JSP提供的标签库功能即可解决。它是通过在HTML中插入特殊标记,来达到逻辑部分和HTML的分离的目的。除了上述两个优点外,它还具有开发效率高,可维护性和可扩展性好等可取之处。本文继而提出了Struts的两个不完善之处:(1)中文请求的处理问题;(2)ActionForm类的缺陷。并且给出了在实际应用中的改进方法。前者通过编写一个编码转换的类实现filter接口,并在web.xml文件中做相应的配置,将所有请求数据在被接收之前转换为GB2312编码。后者则应用一种类反射的机制,使应用程序对ActionForm Bean的赋值自动化。