设为首页 加入收藏

TOP

Struts 2 入门(一)
2019-09-17 18:56:13 】 浏览:134
Tags:Struts 入门

Struts 2  入门:

一:Struts 2执行流程:

1 客户端发送请求;
2这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMeshPlugin)
3接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action。FilterDispatcher的功能如下:

       (1)执行Actions
       (2)清除ActionContext
       (3)维护静态内容
       (4)清除request生命周期内的XWork的interceptors

4如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5 ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类
6ActionProxy创建一个ActionInvocation的实例。
7ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2框架中继承的标签。在这个过程中需要涉及到ActionMapper

 

 

二:拦截器与过滤器:

 

1、拦截器是基于java反射机制的,而过滤器是基于函数回调的。2、过滤器依赖于servlet容器,而拦截器不依赖于servlet容器。
3、拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。
4、拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。
5、在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。

 

在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。Struts2的目标很简单--使Web开发变得更加容易。为了达成这一目标,Struts2中提供了很多新特性,比如智能的默认设置、annotation的使用以及"惯例重于配置"原则的应用,而这一切都大大减少了XML配置。Struts2中的Action都是POJO,这一方面增强了Action本身的可测试性,另一方面也减小了框架内部的耦合度,而HTML表单中的输入项都被转换成了恰当的类型以供action使用。开发人员还可以通过拦截器(可以自定义拦截器或者使用Struts2提供的拦截器)来对请求进行预处理和后处理,这样一来,处理请求就变得更加模块化,从而进一步减小耦合度。模块化是一个通用的主题--可以通过插件机制来对框架进行扩展;开发人员可以使用自定义的实现来替换掉框架的关键类,从而获得框架本身所不具备的功能;可以用标签来渲染多种主题(包括自定义的主题);Action执行完毕以后,可以有多种结果类型--包括渲染JSP页面,Velocity和Freemarker模板,但并不仅限于这些

 

三:Struts  2概述

  1. Struts 2缺陷:

(1.)表单成支持单一

(2.)对Servlet  api的依赖

(3.)不利于代码的重用

2.Struts 2的获取:

         官方网站:http://struts.apache.org

         资源包:http://strust.apache.org/download.cgi

  1. Strust 2项目的基础jar文件:

文件名      ---------------------     说明

Struts2-core-xxx.jar :Struts2框架的核心类库。

xwork-core-xxx.jar:XWork类库,Struts2的构建基础。

Ognl-xxx.jar:Struts2使用的一种表达式语音类库

Freemarker-xxx.jar:Struts2的标签模板使用类库

Javassist-xxx.GA.jar:对字节代码进行处理

Commons-fileupload-xxx.jar:文件上传时需要使用

Commons-io-xxx.jar:Java  Io扩展

Commons-lang-xxx.jar:包含一些数据库类型的工具类。

四:Action接口中常量字符串的逻辑含义

         常量---------值------------------------------逻辑含义

         SUCCESS:  success:表示程序处理异常,并返回给用户成功后的结果

         NONE    none    表示处理正常结束,但不返回给用户任何提示

         ERROR   error     表示处理结果失败

         INPUT   input    表示需要更多用户输入才能顺利执行

         LOGIN   login    表示需要用户正确登录后才能顺利执行   

五:Struts 2配置详解

<!DOCTYPE struts PUBLIC "-//A

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/8/8
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇nginx+tomcat单个域名及多个域名.. 下一篇spring boot实现ssm(1)功能

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目