Struts2(一)

Struts2框架的概述

  struts2是基于MVC模式的轻量级Web框架》

什么是Struts2框架

  Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

常见的web层框架:

  • Struts1
  • Struts2
  • Webwork
  • SpringMVC

WEB层的框架都会基于前端控制器的模式

  在传统方式的开发,有一次请求HttpRequetsServlt 就会对应一个Servlet.导致会有很多Servlet。而Struts2将所有请求都经过一个前端控制器。在前端控制器中实现框架的部分功能。剩下的操作就会交给具体的Action中。如何实现前端控制器呢让所有的请求都经过前端控制器。Struts2用到了过滤器。

  

 Struts2 的开发包下载:  Struts2 的官网:https://struts.apache.org/

解压后的机构目录:

 

  • apps:该文件夹存用于存放官方提供的Struts2 实例程序,为学习者提供很好的参照,各实例均为war文件,可以通过zip解压。
  • docs:该文件夹用于存放官方提供的文档,包括Struts2的快速入门、Struts2是文档、以及API文档等内容
  • lib :该文件用于存放Struts2 核心内库,以及Struts2的第三方插件类库。、
  • src :该文件用于存放该版本Struts框架对应的源代码

Struts jar包的导入情况:

Struts框架目录中的lib文件夹中有107个jar包。 在实际开发中用不到那么多的的jar包  ,可以在apps中的实例,其中在 struts2-blank.war 是一个

Struts2的空的工程。只需把struts2-blank.war 解压后进入到WEB—INF下的lib中查看

  通常使用Struts2 的web项目并不用到Struts的所有jar包,没有必要把lib目录下的所欲jar包全部都复制到WEB-INF 下的lib中,可以根据需要,再添加相应的jar包

创建一个页面:放置一个链接

  首先需要在WebContext下创建一个demo目录,在demo下创建一个新的jsp。在jsp中编写一个Action 的访问路径

  

<h1>Struts2的入门案例</h1>
<a href ="${pageContext.requestContextPath}/strutsDemo1.action">访问sturts2的Action</a>

编写一个Action:

在src下创建一个包cn.itcast.struts2.action , 在该包下新建一个StrutsDemo1的类。在这个类中编写一个公有的,返回值为String类型的方法,这个方法叫做execute该方法没有任何的参数(因为这个方法最终要被反射执行)

public class StrutsDemol{
           
        
           public   String  execute(){
                    system.out.println("strutsdeom1 中的execute被执行了);
             return  null;
         }  
}    

   Action 类编写好了以后,Struts为了识别他就是一个Action  还需要对Action进行配置。

 

Action的配置:

  Action  还需要对Action进行配置。我们观察 App中的实例代码,在WEB-INF下的classes中,有个叫Struts.xml 的文件这个文件就是 Struts2 的配置文件。

  我们在开发中需要将Struts。xml文件引到src下面 。  src下面的内容发布到服务器上就是WEB-INF 下的classes中 。

<struts>
        <!--配置一个包:package-->
      <package>
      <!--配置Action -->
           <action  name="sturtsDemo1"  class="cn.itcast.struts2.action.SturtsDemo1"></acton>
      
      </package>


</struts>    

 

原文地址:https://www.cnblogs.com/shaoxiaohuan/p/8504477.html