Struts教程之一:你的第一个struts应用程序

有句古话虽说“苦干不如巧干”,但有时却是说来容易做来难。然而你一旦掌握了Struts技术-一个用来构建严谨Web程序的框架-你开发程序的效率会比现在更高。遗憾的是,大多数程序员觉得学习Struts是一个艰难的曲折过程。本文(六篇系列文章的第一篇)给那些使用过servlets或JSP页面但对Struts了解不多的程序员提供了一个quick start。

我会教你如何安装和配置Struts,并展示建立在框架中的一个小程序的规范和部署描述符(deployment descriptor)。我会在这个序列的第二部分仔细讲解这个程序。

在开始之前有一点很重要:就是构建这个程序要求对Java Web程序中的Model-View-Controller (MVC)模式有很好的理解,如果它对你来说还是个新概念,就请先阅读“Almost All Java Web Apps Need Model 2."

首先,你要了解关于Struts的一些基本知识。Struts使用基于MVC设计模式的Model 2架构。对于严谨的开发人员来说Model 2应用程序是个理想化的模式,因为通过它们可以开发出灵活、可扩展而且容易维护的程序来。即使对一个简单的程序来说Model 2也是被推荐使用的架构,因此有一个能够更快更容易地构建这种程序的框架是非常重要的。来自Apache Software Foundation的Apache"s Jakarta Struts Project就是这一类型的框架,本文的例子会帮你理解如何使用它。

这个例子是一个给初学者的教学工具,所以没有完全发挥Struts的实际性能。比如说,它没有用到Struts标签库或其他有趣的特性,因此代码很容易理解。而且,为了简单起见,它只用到几个文件。最后,你会看到在JSP页面中使用了Java代码,在实际应用中它是用Beans来实现的,但如果用到这个例子中就会使程序变得复杂化了。

在你开始之前,你要在机器里装上Struts。如果还没有装的话就请立即下载配置它吧。

安装Struts
安装Struts很容易,而且它不需要复杂的配置。首先,从http://jakarta.apache.org/site/binindex.html下载Struts安装文件。在编写本文期间,1.0版是稳定版本,而1.1版是bata版。(在这一系列的项目中我用到1.1-b2版)

Struts程序是用Java写的,因此它要求使用JDK1.2 或更高级的版本。它同时要求一个与解析XML的Java API(JAXP)规范相兼容中的XML解析器。你需要将XML解析库(jaxp.jar/parser.jar/其他文件)加入到你的CLASSPATH环境变量中去。而且,如果你在使用数据库,你则需要从http://java.sun.com/products/jdbc中下载并安装JDBC 2.0 Optional Package Binary。(如果你用的是JDK1.4,那么XML解析器和JDBC 2.0 Optional Package Binary会自动包含在里面。)

 

还有,Struts要求使用一个支持Servlet API 2.2或更高版本的servlet容器。要找到已被确认的可以使用Struts的servlet容器列表,请查阅INSTALL文件。

最后,要使Struts运转起来,你需要加入一个环境变量JAVA_HOME,使其指向JDK安装根目录,并将.jar文件复制到每个程序的WEB-INF/lib目录下。

注册程序
这是一个简单的注册程序的例子,仅用到了MVC模式中的视图和控制器。它要求用户在查看公司机密账号之前输入用户名和密码。展示的第一个页面是Longin页面(见图1)。如果注册成功,用户可以看到Main Menu页面(见图2),其中包含两个链接:一个是退出,另一个是查看公司机密账号。如果注册失败,则用户会被重新引导到注册页面。


                        图1.
图1. 注册
如果用户输入正确的用户名和密码,程序会建立一个session对象,并会有一个叫做loggedIn的属性被添加到这个session对象中去。只有当程序能够在用户的session对象中查找到这个loggedIn属性时用户才可以浏览Main Menu页面和Secret页面。所有缺少该属性或无效的session对象都会迫使用户登陆。(正确的用户名是“john”,密码是“123”。这些值是程序中固定写死的以避免需要连接到数据库里或使用其他存储来完成用户验证。)

当用户退出时,他或她的session对象将会失效,同时Longin页面会重新显示。当用户点击链接要查看公司机密时,会弹出Secret页面(见图3)。

有三种JSP页面是以MVC模式中视图的形式出现的:login.jsp (见图1), mainMenu.jsp (见图2), and viewSecret.jsp (见图3)。


            图2.
图2. 主要事件
由于所有 Struts应用程序同时也是Model 2应用程序,所以它们必须具备一些用来充当MVC模式中控制器的东西(在该例子中是一个控制器 servlet)。在使用 Struts时,你无需编写自己的控制器servlet。程序已经帮你建好了,这也是用 Struts来提高开发效率的方法之一。

Struts应用程序中控制器servlet是org.apache.struts.action.ActionServlet类的一个实例。该类是包含在struts.jar文件中的诸多类的一个成员,所以你得在每个开发的程序中分发此文件。


            图3.
图3. 你发现了一个秘密
这个控制器servlet将根据请求中的URL把请求发送给适合的视图。依照惯例,这个URI是以.do结尾的。例如,指向Secret页面请求的URI是:http://domain/appName/viewSecret.do,而指向Longin页面中的URL是http://domain/appName/login.do。(当然,在URI后面也可以带有其他信息)

如果你编写过servlet或者JSP应用程序,你可能猜想在部署描述符当中使用了servlet映射,以便将请求发送到ActionServlet实例中去。没错,Struts是另一种版本的servlet/JSP程序。程序中的描述符显示在列表1中。这些代码说明了以下三点:

 
  • 在action servlet配置部分,org.apache.struts.action.ActionServlet类的实例被称为action。
 
  • 所有以.do结尾的URL均被映射到action servlet中。
 
  • Login.jsp是一个welcome file,它是在URL不包含资源名称时(换言之,当URL属于http://domain/myApp form时)被调用的默认文件。

此外,列表1中的部署描述符没有什么特殊的用法,它只是简单地说明Struts应用程序和一般的servlet应用程序很相似。

应用程序中对资源的请求被发送到ActionServlet中去,然后由它将控制权转给其他对象,这些对象称为action objects。我会在这个系列的第二部分中讲解action 对象和其他一些应用程序。

现在你知道了如何安装和配置Struts,而且你也弄懂了注册程序项目规范和部署描述符,那么你可以点击此处下载全部程序

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
概述 4 Framework概念 4 Struts的概念和体系结构 5 Struts的与Web App的关系 5 Struts的体系结构 5 从视图角度(View) 6 从模型角度(Model) 6 从控制器角度(Controller) 6 Struts的基本组件包 6 Struts framework的工作原理和组件 7 Struts ActionServlet控制器对象 8 Struts Action Classes 8 Struts Action Mapping 9 使用ActionForward导航 10 Struts ActionForm Bean捕获表单数据 11 Struts的其他组件 12 Validation Framework for Struts 12 Struts TagLib 12 BeanUtils 12 Collections 13 Digester 13 Struts配置文件简介 13 有关Struts Controller及其相关的的配置描述 13 有关struts tag lib的配置描述 14 有关Struts Action Mapping的配置描述 14 Form-bean元素 15 Action元素 15 Struts高级特性(Struts Advanced Feature) 17 验证 17 使用异常处理声明 19 使用应用模块(Application Modules) 21 把JSP放到WEB-INF后以保护JSP源代码 22 使用 Prebuilt Action类提升开发效率 23 Struts标记库 25 定制JSP标记 25 资源束 26 Bean标记 27 Bean复制标记 27 定义脚本变量的标记 28 显示Bean属性 29 消息标记和国际化 29 逻辑标记 30 条件逻辑 30 重复标记 32 转发和重定向标记 33 HTML标记 34 显示表单元素和输入控件 34 显示错误信息的标记 38 其他HTML标记 39 模板标记 39 一个简单的示例 41 Struts的安装 41 第一个实验:简单的JSP页 41 第二个实验:struts的国际化 42 struts中的Forms 45 struts:介绍ActionForm 49 分离Book和BookForm的一个好方法 51
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值