struts 框架介绍 原理透析 struts概念说明

1Struts2框架介绍

  Struts2框架是MVC流程框架,适合分层开发。框架应用实现不依赖于Servlet,使用大量的拦截器来处理用户请求,属于无侵入式的设计。

 

 

2,Struts2框架的流程原理


1)请求先到达Filter中央控制器

2)然后为Action创建代理类

3)将各个服务存放在拦截器中,执行完拦截器后再去执行action类行action类,action类调用service,再调用dao

4)得到结果字符串,创建result对象

5)转向相应的视图。


程序流程图如下:



 

 

3,框架的使用

  框架为我们做好了封装,使用起来就按照步骤,配置几个xml文件就行拉。

  1)导入jar包

  

  2)拷贝struts.xml文件

  将拷贝的配置文件放在根目录src下。struts.xml文件主要是配置请求路径对应action类的,以及结果跳转路劲。

[html]  view plain  copy
 print ?
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.0.dtd">  
  5. <struts>  
  6.     <package name="example" namespace="/example" extends="struts-default">  
  7.         <action name="HelloWorld" class="struts2.action.HelloWorldAction">  
  8.             <result name="success">/success.jsp</result>  
  9.         </action>  
  10.     </package>      
  11. </struts>  
  代码说明:访问/example/HelloWorld.action对应执行struts2.action包下面的HelloWorldAction类;默认情况下执行类中的execute方法,如果想指定方法,需要在<action>标签中添加method属性;<result>标签配置结果跳转路径。根据Action类中方法返回的String字符串,去匹配result标签中的name值,进行跳转。

   

  3)在web.xml文件中配置核心控制器

[html]  view plain  copy
 print ?
  1. <!-- 配置框架的核心调度器 -->  
  2. <filter>  
  3.     <filter-name>struts2</filter-name>  
  4.     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  5. </filter>  
  6. <filter-mapping>  
  7.     <filter-name>struts2</filter-name>  
  8.     <url-pattern>/*</url-pattern>  
  9. </filter-mapping>  
   

4、原理


       客户端请求到ActionSeverlet,ActionSeverlet负责截URL进行分发分发到每一个Action上,Action负责和Model打交道然后把相关信息返回到ActionSeverlet ,ActionSeverlet在返回到jsp。
5、总结。

       Struts体系结构实现了MVC设计模式的概念,它将Model、View和Controller分别映射到Web应用中的组件。Controller负责控制流程,由ActionServlet负责读取struts-config.xml,并使用ActionMapping来查找对应的Action;Model由ActionForm来构建;View是由JSP和Struts提供的自定义标签来实现。

Struts有五个核心类:

ActionSvervlet:

       用来接收用户请求和状态改变,以及发出视图选择。当ActionServlet接收到HTTP Request的时候,

调用process()方法,将Request()转发给RequestProcessor来处理。

       在一般情况下,我们不需要自己实现或者修改ActionServlet类,仅仅通过在web.xml中进行配置直接

使用就可以了。在某些情况下,我们可以自己扩展ActionServlet类,从ActionServlet继承,实现自己的

ActionServlet。

ActionMapping:

      ActionMapping是ActionConfig的子类,实质上是对struts-config.xml的一个映射,从中可以取得所有配

置信息。

Action:

       控制器的一部分,用于模型交互,执行状态改变或状态查询,高数ActionServlet下一个选择的视图。

       Action类是实现整个体系的核心部分,它在客户请求、界面表示和业务逻辑之间起到一个桥梁的作用。

每一个Action是用来执行一个业务操作。

ActionForward:

       ActionForward是对struts-config.cml配置的mapping元素的forward属性的包装。在Action的excute方法

中返回一个ActionForward类。ActionForward把配置文件中forward部分的信息包装起来,减少了应用程序

和物理资源信息之间的耦合性。

ActionForm:

         用来保存用户表单信息,它的所有属性应该满足get和set对应。对于一些复杂的系统可以采用

DynaActionForm来构造动态的Form。

       以上是Struts的核心类,通过我查阅资料下面让我们从用户操作的角度来理解当一个ActionServlet接收到一个客户请求时的流程,如下图:



6、感受。
         通过Struts的学习对Struts有了一个基本的了解,对Struts的基本原理有了一定的掌握,还有对Struts框架中的标签库,scope属性,ActionForm、国际化的应用有了一个初步的了解。一开始学习的时候没啥感觉。等学完以后才发现学习这个框架与学习JavaScriptjQuery有点相似,jqueryjavascript的一个封装好的框架,说框架说的其实有点太专业说白了就是javascript的函数库别人封装好的就像我们自己封装的SQLHelper一样。而Struts呢是Java封装的一个函数库。Struts为我们封装优化了MVC,使得MVC使用起来更高效,更快捷。就像JQuery一样。JQuery帮我们封装了Javascript让我们使用起来更加方便。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值