欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Struts2学习

程序员文章站 2022-07-04 18:48:32
...

一、Struts2框架介绍

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。

二、Struts2框架的实现原理

Struts2学习
1)请求先到达Filter*控制器
2)然后为Action创建代理类
3)将各个服务存放在拦截器中,执行完拦截器后再去执行action类行action类,action类调用service,再调用dao
4)得到结果字符串,创建result对象
5)转向相应的视图。

三、配置Struts2框架的环境

1.修改web.xml中的内容,配置核心控制器

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>                  org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

2.在WEB-INF中添加struts2常用jar包
Struts2学习
3. 在项目路径下的src目录下创建struts.xml配置文件
符合如下dtd规范

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">

4.编写struts.xml配置文件

<struts>  
    <package name="user" namespace="/user" extends="struts-default">  
        <action name="user" class="com.dlf.action.UserAction" method="user">  
            <result name="success">/user.jsp</result>  
        </action>  
    </package>      
</struts>  

浏览器地址栏请求 http://localhost:8080/Struts/user/user.action
这个请求会被拦截器拦截,并解析请求 获取action名称 user 在struts.xml中找到对象action的class 利用反射创建该类的一个对象

四、Action的工作原理

拦截器拦截请求,创建代理Action对象,执行方法,返回结果,界面跳转。
拦截器解析请求路径,获取Action的名称,到配置文件中查找action的完整类名,利用反射创建对象。
每请求一次,就创建一个对象,所以action是多例的,也是线程安全的。

ActionProxy是Action的代理类,通过解析配置文件获取Action类中名称和完整路径,利用反射机制创建的。
ActionInvocation是Action类的调用者,反射创建的ActionProxy类就存在ActionInvocaiton类中。

五、Struts2数据处理

Struts2框架使用OGNL语言和值栈技术实现数据的处理
值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言
值栈:valueStack是一种数据结构,操作数据的方式为先进后出
OGNL : Object-GraphNavigation Language(对象图形导航语言)将多个对象的关系使用一种树形的结构展现出来,更像一个图形,那么如果需要对树形结构的节点数据进行操作,那么可以使用 对象.属性 的方式进行操作,OGNL技术底层采用反射实现

相关标签: struts