目的
在你使用Strust之前你应该想知道应该学习哪些技术,这篇文章简答介绍了成功运行一个Struts项目你需要了解哪些技术。
如果你还不能确定Struts是否适合于你或者你有任何的问题都可以通过 Struts user mailinglist。
你需要了解的关键技术
Struts文档是写给哪些活跃的web开发者并且假设对如何开发Java Web程序有一定的经验的人的。在开始使用Struts之前,你需要了解下面这几项关键技术:
- HTTP和HTML
- 基于HTPP的请求/响应周期
- Java语言
- JavaScript,AJAX和SOAP
- 属性文件和ResourceBundles
- Servlet,Filters和Web容器
- JSP和JSP标签库
- XML
- MVC
这里简单的介绍每项技术但并没有讲述有关细节。为了方便,下面提供了进一步学习相关技术的链接。
起步
如果你对Java语言还不熟悉,你最好从 Java Turtorial 。
如果你已经熟悉了Java语言,但是对我们提到的相关技术还不熟悉,可以参考 Java EE Tutorial 。
如果你有在其他平台开发web程序的经验,你可以参考其他的文档学习。Struts所使用的核心技术也被绝大多数其它Java web产品使用,所以这些背景信息在任何Java项目中都有用。
HTTP,HTML和User Agent
万维网建立在HTTP和HTML之上。一个用户代理,例如浏览器,使用HTTP去请求一个HTML文档。然后浏览器解析并显示返回给用户的内容。HTTP被用来传输HTML内容让浏览器渲染。
如果你想学习HTTP,我们推荐由Dave Raggett写的 Getting started with HTML 。
HTTP的请求/响应周期
对于web开发者来说HTTP最重要的部分就是请求/响应周期。使用HTTP你必须构建一个请求。一个HTTP服务器,像web服务器,负责响应。当你构建你的web程序时,你设计时通过一个HTTP response来响应一个HTTP request。框架常常抽象了其中的很多细节,关键是我们要理解在这背后发生了什么。
如果你对基于HTTP的请求/响应还不属性,你应该学习它。网上有很多有用的资料可以参考。
Java语言和应用框架
Struts是用Java语言写的。Java是一门面向对象的语言,这些框架大量使用面向对象的技术。对Java的深入理解,特别是面向对象技术和线程,将会帮助你更好的学习Struts。
反射和内省
反射是决定一个对象的哪些成员变量和方法可用的过程。内省是JavaBean API使用的一种特殊形式的反射。使用内省,我们可以决定一个对象的哪些方法可以用来让另一个对象使用,比如getter和setter方法。
Struts使用内省将HTTP参数转化成JavaBean属性和使用JavaBean属性填充HTML字段。这项技术使在HTML forms和JavaBean之间进行“roundtrip”变得更方面。
当你初学Strust时,你并不需要深入理解这些概念,但当你产品不断变大,日益复杂时,这将会很有帮助。
属性文件和ResourceBundles
Java应用程序包括web应用程序,常常使用属性文件来配置。属性文件是ResourceBundles的基础,框架常使用它来给应用程序提供消息资源。
Java官方教程对Properties有详细的介绍。
Java ResourceBundles使用一个或多个属性文件给用户提供国际化信息。我们可以在框架的基础上一步步构建本地化应用。
线程
在Struts1的时代,你需要知道如何在多线程的环境下编写代码。在Struts2时,不再需要。在Struts2中,由一个HTTP request引起的每个action是一个普通的Java对象。