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>