介绍struts2:

  struts2是一个基于mvc设计模式的web层框架。

详谈struts2的执行流程:

struts2的执行流程:用户发送请求---->首先经过Struts2的核心过滤器---->然后经过Struts2的一组拦截器并完成部分功能(如接受数据并封装数据)---->自定义action类---->跳转页面result。
 
struts2的拦截器:
  什么是拦截器?拦截器实质上是struts2的核心,拦截器拦截的是对action的访问。
 
拦截器和过滤器的区别?

过滤器:过滤的是从客户端向服务器发送的任何请求。

拦截器:只能拦截对Action的访问,可以拦截到Action中的具体的方法。

struts2框架接受和封装jsp页面传递过来的参数:

  • 1.(属性驱动)在自定义Action类中提供相应属性的set方法,记住只提供set方法。
  • 2.(属性驱动)在页面表单中提供OGNL表达式。
  • 3.(模型驱动)在自定义Action类中实现ModelDriven<T>接口,然后手动创建一个实例【记住:模型驱动必须手动new一个对象出来】。

struts2访问servlet的api三种方式:

  • 完全解耦合的方式,通过ActionContext对象获取。
  • 实现一些特定接口的方式,通过实现如ServletRequestAware、ServletResponseAware、ServletContextAware等接口来获取。
  • 通过ServletActionContext对象中的一些静态方法来获取。

struts2的valueStack(值栈):

什么是值栈?

值栈的内部结构:

【ActionContext是action的上下文,通过它可以获得值栈对象】

获得值栈对象的方式:

注意点:

详谈Struts2的更多相关文章

  1. Java框架Struts2

    struts2的核心和工作原理   在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于we ...

  2. Struts2(一)入门及工作原理

    Apache Struts 2 是一种流行的 Java模型 - 视图 - 控制器(MVC)框架,成功地结合了 WebWork和Struts1.x 两种 web 框架. Apache Struts2与S ...

  3. struts2请求过程源码分析

    Struts2是Struts社区和WebWork社区的共同成果,我们甚至可以说,Struts2是WebWork的升级版,他采用的正是WebWork的核心,所以,Struts2并不是一个不成熟的产品,相 ...

  4. struts2框架 转载 精华帖

    一.Struts2简介 参考<JavaEE 轻量级框架应用与开发—S2SH> Struts框架是流行广泛的一个MVC开源实现,而Struts2是Struts框架的新一代产品,是将Strut ...

  5. struts2的核心和工作原理 <转>

    在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于web程序设计.在这儿MVC模式的好处就 ...

  6. struts2(2.0.x到2.1.2版本)的核心和工作原理(转)

    在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于web程序设计.在这儿MVC模式的好处就 ...

  7. Struts2 的核心、执行原理

    转自: http://www.cnblogs.com/xiadongqing/p/5240615.html 在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样 ...

  8. struts2的核心和工作原理 (转)

    转自--------http://blog.csdn.net/laner0515/article/details/27692673 在学习struts2之前,首先我们要明白使用struts2的目的是什 ...

  9. struts2与struts1的比较

    struts2相对于struts1来说简单了很多,并且功能强大了很多,我们可以从几个方面来看: 从体系结构来看:struts2大量使用拦截器来出来请求,从而允许与业务逻辑控制器 与 servlet-a ...

随机推荐

  1. ckeditor_3.6.6.2+CKFinder2.0.2配置

    一.首先工具的下载,找到相应的版本进行下载     ckeditor_3.6.6.2+CKFinder2.0.2 http://ckeditor.com/download      打开war文件,然 ...

  2. PageRank在Hadoop和spark下的实现以及对比

    关于PageRank的地位,不必多说. 主要思想:对于每个网页,用户都有可能点击网页上的某个链接,例如 A:B,C,D B:A,D C:AD:B,C 由这个我们可以得到网页的转移矩阵      A   ...

  3. LPC1768的USB-相关结构体定义

    #ifndef __USB_H__ #define __USB_H__ //usb传输数据的宏定义描述 #include "sys.h" typedef __packed unio ...

  4. CSS重设(reset)

    在当今网页设计/开发实践中,使用CSS来为语义化的(X)HTML标记添加样式风格是重要的关键.在设计师们的梦想中都存在着这样的一个完美世界:所有的浏览器都能够理解和适用多有CSS规则,并且呈现相同的视 ...

  5. C++中的IO流

    一,标准输入流 1.基本功能(头文件为iostream) char ch = cin.get();// 一次读取一个字符,如果遇到EOF则结束. cin.getline(buf,length);// ...

  6. UVa 10523 - Very Easy !!!

    题目大意:给你一个公式,直接按照式子计算就可以了,要用到大数. import java.io.*; import java.util.*; import java.math.*; class Main ...

  7. [Angular Tutorial] 6-Two-way Data Binding

    在这一步中,您将会添加一个新特性来使得您的用户可以控制电话列表中电话的顺序,动态改变顺序是由创建一个新的数据模型的特性实现的,将它和迭代器绑定在一起,并且让数据绑定神奇地处理下面的工作. ·除了搜索框 ...

  8. linux下启动tomcat----Cannot find ./catalina.sh

    参考:http://dearseven.blog.163.com/blog/static/1005379222013764440253/ linux 下启动tomcat [root@test233 b ...

  9. linux内核设计与实现笔记 进程调度

    转载:http://blog.chinaunix.net/uid-24919665-id-3013590.html

  10. JAVA中用于处理字符串的“三兄弟”

    JAVA中用于处理字符串常用的有三个类:java.lang.String.java.lang.StringBuffer.java.lang.StringBuilder,这三者的共同之处都是final类 ...