Struts2学习

一、struts是什么?

  1、Struts是流行和成熟的基于MVC设计模式的Web应用程序框架。

二、MVC模式

  1、 jsp+javabean=model1    jsp+servlet+javabean=model2

  2、MVC是模型视图控制器,一种软件的设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

三、Struts2核心文件

  web.xml    StrutsPrepareAndExecuteFilter

  Struts.xml  核心配置文件,主要负责应用中Action映射、该Action中包含的result定义等。

    主要包含的内容:

      1、全局属性

      2、用户请求和响应Action之间的对应关系

      3、Action可能用到的参数和返回的结果

      4、各种拦截器的配置

  Struts.properties   全局属性文件,自动加载。(包含很多的key-value对,该文件可配置在struts.xml文件中,使用constant元素)

      

四、Struts2用法

  1、访问ServletAPI           5、默认Action

  2、Action搜索顺序      6、Struts2后缀

  3、动态方法调用       7、接收参数

  4、指定多个配置文件     8、处理结果类型

五、访问ServletAPI    

  struts2中Action的execute方法

六、Action搜索顺序

七、接收参数

  使用Action的属性接收参数

  使用DomainModel接收参数

  使用ModelDriven接收参数  必需implement ModelDriver<Object>

八、处理结果类型

  用户请求 –> Struts框架 –> 控制器  — > Struts框架 –>  视图资源

  SUCCESS 正确执行,返回相应的视图

  NONE 执行成功,不反回任何视图

  ERROR 执行失败,错误视图

  LOGIN  没有登录成功,将返回登录视图

  INPUT 表单验证

八 处理结果类型

  处理结果是通过Struts.xml使用<result/>来配置。

  根据位置的不同,分为两种:局部结果 将<result/>作为<action/> 元素的子元素配置。  全局结果 将<result/>作为<global-result/> 元素的子元素配置。

 

什么是Struts2

    1. Struts2 是一个非常优秀的MVC框架,基于Model2 设计模型
      由传统Struts1和WebWork两个经典框架发展而来
    2. Strust2 核心功能
      (1)允许POJO(Plain Old Java Objects)对象 作为Action
      (2)Action的execute 方法不再与Servlet API耦合,更易测试
      (3)支持更多视图技术(JSP、FreeMarker、Velocity)
      (4)基于Spring AOP思想的拦截器机制,更易扩展
      (5)更强大、更易用输入校验功能

 Struts2工作原理

 

(1) 客户端(Client)向Action发用一个请求(Request)
(2) Container通过web.xml映射请求,并获得控制器(Controller)的名字
(3) 容器(Container)调用控制器(StrutsPrepareAndExecuteFilter或FilterDispatcher)。在Struts2.1以前调用FilterDispatcher,Struts2.1以后调用StrutsPrepareAndExecuteFilter
(4) 控制器(Controller)通过ActionMapper获得Action的信息
(5) 控制器(Controller)调用ActionProxy
(6) ActionProxy读取struts.xml文件获取action和interceptor stack的信息。
(7) ActionProxy把request请求传递给ActionInvocation
(8) ActionInvocation依次调用action和interceptor
(9) 根据action的配置信息,产生result
(10) Result信息返回给ActionInvocation
(11) 产生一个HttpServletResponse响应
(12) 产生的响应行为发送给客服端

  

 

posted on 2018-06-12 21:51 code_001 阅读() 评论() 编辑 收藏

版权声明:本文为Liuzz001原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Liuzz001/p/9153421.html