Struts2是一个由权威人士精心整理的MVC框架,它源于Struts1和Webwork框架的融合,虽然沿用了Struts1的名字,但核心却是Webwork。这个框架的主要目标是提高Web开发的效率,通过提供一个半成品的架构来简化开发流程。
在Struts2中,M(模型)代表业务逻辑和数据,V(视图)负责数据的展示,C(控制器)则处理用户请求并协调模型和视图之间的交互。这种设计模式使得开发者可以更专注于业务逻辑,而无需关心太多的底层实现细节。
Struts2的搭建涉及以下几个步骤:
1. 从官方网址下载Struts2框架。
2. 解压文件,了解其目录结构,包括示例、文档、库文件和源码。
3. 创建一个新的Java Web工程,并将必要的jar包添加到工程中,这些包通常包括Struts2的核心库、XWork框架、OGNL(用于对象图导航)、FreeMarker(用于视图模板)、日志库(如Commons Logging)以及文件上传相关的组件。
4. 在`web.xml`中配置Struts2的核心过滤器`StrutsPrepareAndExecuteFilter`,该过滤器负责拦截所有非action或空的请求,确保只有符合规则的请求才能进入Struts2的处理流程。
5. 创建名为`struts.xml`的配置文件,位于`WEB-INF/classes`目录下,这是Struts2的核心配置文件,用于定义动作和视图的映射。
构建第一个Struts2应用案例通常包括以下步骤:
1. 创建两个JSP页面,如`hello.jsp`和`success.jsp`,分别作为请求的入口和结果展示。
2. 编写一个Java类作为动作类,遵循POJO(Plain Old Java Object)规范,这个类将包含处理请求的方法。
3. 在`struts.xml`中配置动作类和方法,指定动作类实例化、方法调用以及根据返回值决定跳转的页面。
4. 部署应用程序到Tomcat服务器,启动服务器,如果无错误,表明搭建成功。
5. 通过浏览器访问`hello.jsp`进行测试。
执行过程和原理方面,当用户发起请求时,Struts2的核心过滤器会捕获请求,然后根据`struts.xml`中的配置找到对应的动作类和方法。执行动作类的方法后,Struts2会根据返回值决定转发到哪个视图页面。整个过程中,OGNL用于在模型和视图之间传递数据,FreeMarker用于渲染视图,而Action类则起到了连接控制器和模型的桥梁作用。
学习Struts2,不仅要理解其基本概念和架构,还需要掌握配置文件的编写、动作类的设计以及视图的创建。同时,了解其执行流程和原理对于解决实际问题和应对面试非常有帮助。