四、Struts2

一、使用struts2的原因

  1. 侵入性框架:开发程序的同时,引进的框架。如果在使用该框架时,要继承框架提供的实体类或实现框架提供的接口,这就说明该框架是侵入式框架,因为程序本身对框架有了依赖,当去除框架时,程序也就无法运行,这个也就是我们说的重量级框架,如struts1中,action和actionForm必须要继承Action和ActionForm一样。相反的非侵入式框架是轻量级框架的重要特点,如hibernate和spring,当我们想去掉hibernate和Spring框架时,只需修改相应的程序,程序仍可运行。

  2. 耦合性(Coupling):也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。

  3. 综上所述:Struts1框架而言,由于与JSP/Servlet耦合非常紧密,因而导致了一些严重的问题:

    ①:Struts1支持的表现层技术单一。(Struts1出现的年代比较早,当时的技术单一)

    ②:Struts1与Servlet API的严重耦合,使应用难于测试。

    ③:Struts1代码严重依赖于Struts1 API,属于侵入性框架。

二、Struts2请求过程源码分析

  参考:http://www.cnblogs.com/liuling/p/2013-8-10-01.html

三、struts 事例(struts2-core.2.5.10.1)

  1. 导入基础包:

    

  2. 配置web.xml

   

    早期 webwork:com.opensymphony.webwork.dispatcher.ServletDispatcher
    现在 webwork:com.opensymphony.webwork.dispatcher.FilterDispatcher
    早期 struts2:com.opensymphony.webwork.dispatcher.FilterDispatcher
    2.5 之前:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    2.5 开始:org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter

  3. 创建struts.xml

  

  4. 创建login.jsp

  

  5. 创建指定action

    

原文地址:https://www.cnblogs.com/MissRabbit/p/6559943.html