我的struts2笔记(不含代码)

Posted 弘博软件教育

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的struts2笔记(不含代码)相关的知识,希望对你有一定的参考价值。

弘博教育创新实验班的2016级计科专业的小伙伴们马上就要进行Struts2的学习,小编特整理了Struts的笔记如下。

Struts2是基于MVC(Model View Controller)设计模式的Web应用程序开发框架,它是由Struts和WebWork发展而来的。

1、Struts2框架的组成

(1)控制器:由核心过滤器StrutsPrepareAndExcuteFilter、若干拦截器和Action组件实现。

(2)模型:由JavaBeans或JOPO实现,它可实现业务逻辑。

(3)视图:通常由JSP页面实现,或其它表层技术实现。

(4)配置文件:Struts2框架提供了struts.xml的配置文件。

 

2、Struts2标签

    Struts标签通常以前缀“s”开头,使用前需使用taglib指令导入标签库:

我的struts2笔记(不含代码)

     Struts标签如标签用来产生一个URL,它的action属性用来指定动作名,如hello,当用户单击该链接时将向容器发送hello.action请求动作。注意事项:

  

我的struts2笔记(不含代码)

 

3、OGNL概述

    OGNL(Object-Graph Navigation Language)称为对象-图导航语言,使用OGNL可以访问存储在ValueStack和ActionContext中的数据。可通过

我的struts2笔记(不含代码)

调用。

    使用OGNL可访问数组元素,List类型属性,Map类型属性等。Struts2 利用 标签和 OGNL 表达式来读取值栈中的属性值。

 

    ValueStack:对应用程序的每一个动作,Struts在执行相应的动作方法前会先创建一个ValueStack对象,称为值栈,且可以从ActionContext中获取值栈对象,值栈分为两个逻辑部分:

 

(1)Map栈:是OgnlContext类型,是个Map,也是对ActionContext的一个引用,里边保存着各种Map:

         requestMap,sessionMap,+++++++++++++++++++++++++++++applicationMap,parametersMap,attr

 

(2)对象栈:实际上是CompoundRoot类型,是一个使用ArrayList定义的栈,里边保存各种和当前Action实例相关的对象,是一个数据结构意义的栈。 


4、Struts2的请求—action

 

(1)action:代表一个Struts2 的请求。

 

(2)Action 类:能够处理 Struts2 请求的类。属性的名字必须遵守与 JavaBeans 属性名相同的命名规则。属性的类型可以是任意类型,从字符串到非字符串(基本数据库类型)之间的数据转换可以自动发生。

 

(3)必须有一个不带参的构造器:通过反射创建实例。至少有一个供 struts 在执行这个 action 时调用的方法。同一个 Action 类可以包含多个 action 方法。Struts2 会为每一个 HTTP 请求创建一个新的 Action 实例,即 Action 不是单例的,是线程安全的。

 

(4)在 Action 中访问WEB资源(HttpServletRequest, HttpSession, ServletContext 等原生的 Servlet API):

 

① 和Servlet API 解耦的方式:只能访问有限的 Servlet API 对象,且只能访问其有限的方法(读取请求参数,读写域对象的属性,使 session 失效)。通过使用ActionContext以及实现XxxAware接口。

 

② 和Servlet API 耦合的方式:可以访问更多的 Servlet API 对象,且可以调用其原生的方法。通过使用ServletActionContext以及实现ServletXxxAware接口。


希望会对大家有帮助,让我们一起学习,共同进步。

编辑|李世华        

以上是关于我的struts2笔记(不含代码)的主要内容,如果未能解决你的问题,请参考以下文章

[Struts2学习笔记] -- 输入校验

struts2--笔记

Struts2学习笔记

struts2学习笔记之六:struts2的Action访问ServletAPI的几种方式

struts2学习笔记--上传单个和批量文件示例

Struts2学习笔记④