我的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指令导入标签库:
Struts标签如标签用来产生一个URL,它的action属性用来指定动作名,如hello,当用户单击该链接时将向容器发送hello.action请求动作。注意事项:
3、OGNL概述
OGNL(Object-Graph Navigation Language)称为对象-图导航语言,使用OGNL可以访问存储在ValueStack和ActionContext中的数据。可通过
调用。
使用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笔记(不含代码)的主要内容,如果未能解决你的问题,请参考以下文章