首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

《Struts 二 in Action》读书笔记——part 1——Struts 2:一个全新的框架

2013-01-26 
《Struts 2 in Action》读书笔记——part 1——Struts 2:一个全新的框架第一章Struts 2 :现代Web框架1.1? Web应

《Struts 2 in Action》读书笔记——part 1——Struts 2:一个全新的框架

第一章Struts 2 :现代Web框架
1.1? Web应用程序:快速学习
1. 不管构建在Web平台上的应用程序多么变化多端,这些应用程序的核心工作流仍然非常一致,这为重用提供了绝佳的机会。像Struts 2这样的框架通过提供一个核心的Web应用程序工作流的可重用的架构方案,努力将开发人员从对领域的普通关注点中解放出来。

《Struts 二 in Action》读书笔记——part 1——Struts 2:一个全新的框架

2. Java Servlet API负责将这些低级的HTTP 通信公开给Java语言(此外,Servlet API还提供了其他重要的高级功能,例如会话机制)。Servlet API通过一套面向对象的抽象直接封装客户/服务器交互的细节,这意味着我们不必自己解析传入的HTTP请求,而是收到一个整洁的、已经在Java中包装好的请求对象。
3. Struts 2使用Java Servlet API就是为了让你不必使用它们。不在Struts 2应用程序中使用Servlet API是一个好主意。
4. HTTP协议原本不是为满足Web应用程序开发人员的需求而设计的。它是为请求和处理静态的HTML文档而设计的。
5. 对于Web应用程序而言,需要跨越HTTP协议的两个障碍——无状态和基于文本。无状态的协议不记录收到多个请求之间的关系。HTTP是基于文本的。将基于文本的技术与强类型的技术(例如Java)匹配起来就引发了大量的数据绑定工作。
6. Servlet 是一个单例(singleton)的Java对象。
7. Servlet是一种特殊的应用程序,称为托管生命周期的应用程序(managed life cycle application),这意味着,你不直接执行servlet,把Servlet部署在容器中,容器通过调用不同的Servlet生命周期方法来管理它的执行。
8. Servlet API 解决了低层次的客户/服务器问题之后,现在要关注应用程序级别的问题。包括:

请求参数到Java类型的数据绑定(Servlet API 并没有提供这个功能,从请求对象中取出的请求参数仍然以字符串的形式表示);验证数据;访问业务逻辑;访问数据层;呈现表示层;提供国际化和本地化支持。

1.2 Web应用程序框架

<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>actionPackages</param-name> <param-value>com.yourpackage</param-value> </init-param> </filter>

?注意:如果是2.1.3之前的版本,用org.apache.struts2.dispatcher.FilterDispatcher,否则,用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

?

3. 参数actionPackages告诉框架在那些包中扫描注解。但是只告诉框架action在哪里还不够,我们还必须以某种方式标记哪些类是action类。有两种方式:

让action类实现com.opensymphony.xwork2.Action接口。使用命名约定,也就是所有action类的命名以Action结尾。最佳实践: 写道即使一个简单的没有动态处理的JSP页面,也要用空的action组件来转到你的结果。这可以让应用程序的架构保持一致,可以预先防备工作流预计增加的复杂度,并且可以将资源的真正结构隐藏在Struts 2 action的命名空间之后。

4. ?对于传入请求来说,表单字段的name属性被当做OGNL表达式解析,这个表达式用来指向ValueStack上的属性。

热点排行