【java框架】Struts2(1) -- Struts2入门

Struts2入门基础

1.   Struts2的认识

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为核心控制器(Controller)来建立模型与视图的数据交互。

Struts2是Struts的下一代产品,是在Struts1和WebWork的技术基础上进行了合并的全新的Struts2框架。

Strust2主要有以下几点核心功能:

①    允许POJO(Plain Old Java Objects)对象 作为Action

②    Action的execute 方法不再与Servlet API耦合,更易测试

③    支持更多视图技术(JSP、FreeMarker、Velocity)

④    基于Spring AOP思想的拦截器机制,更易扩展 AOP 面向切面编程

⑤    更强大、更易用输入校验功能

⑥     整合Ajax支持(局部刷新技术)

2.   Struts2基于Hello World构建一个Web项目

2.1.下载Struts2

可以到Struts2官网进行下载Struts2版本:http://struts.apache.org/download.cgi

目前最新版本Struts2为2.5.22,这里使用Struts2 2.3.20版本为例进行构建项目。

下载完成后解压struts-2.3.20-all.zip即可。

这里说明一下Struts2的目录结构:

 

apps目录:主要包含基于Struts2的示例应用,对于初学者可以学习示例中的Demo进行项目构建;

docs目录:主要包含Struts2的相关文档,包括Struts2快速入门、Struts2API文档等;

lib目录:主要包含Struts2框架和核心类库,以及Struts2第三方插件类库;

src目录:主要包含Struts2框架的完整源代码

2.2.搭建一个Hello World项目并运行

①在解压后的struts-2.3.20的目录路径:struts-2.3.20apps struts2-blank.war,找到struts2-blank.war包进行解压,解压后在:struts2-blankWEB-INFlib中找到对应的jar包,如下图所示:

在IDEA构建的web项目中引入这些jar包即可:

②在web.xml文件中配置核心控制器,在刚才解压的struts2-blankWEB-INFweb.xml中拷贝web.xml文件,拷贝以下核心控制器部分及filter-mapping映射:

③创建Action类返回结果视图映射语句;

④配置struts.xml核心配置文件;

注意文件命名方式必须是struts.xml;可以在解压后的struts2-blankWEB-INFclassesstruts.xml中找到struts.xml,拷贝到项目中的src目录下,并做如下配置:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 4    "http://struts.apache.org/dtds/struts-2.3.dtd">
 5 
 6 <struts>
 7 
 8     <package name="default" namespace="/" extends="struts-default">
 9         <!--
10             name:action的名称
11             class:action类的全限定名
12             method:执行的方法
13         -->
14         <action name="hello" class="cn.yif.action.UserAction" method="excute">
15             <!--result:结果视图
16                 name:结果视图的名称,注意必须和action中excute方法的返回值对应
17                 type:跳转的类型
18                 /success.jsp:跳转到成功页面-->
19            <result name="success" type="dispatcher">
20              /success.jsp
21            </result>
22         </action>
23     </package>
24 
25 </struts>

3.   Struts2的运行流程

通过前台页面uri路径hello,访问路径会经过web.xml中配置的struts2核心控制器,配置的url-pattern会对相应的路径进行拦截处理,由二级代理StrutsPrepareAndExecuteFilter定位到struts.xml文件,在struts.xml文件中找到对应hello所对应的Action,通过反射区去创建一个Action对象,在通过反射调用对应method中的方法,而我们的方法会返回一个String,这个String类型的结果对应struts.xml中结果视图的名称,这时会找到对应的结果视图,对应相应的结果视图类型type与结果视图的路径进行跳转。

原文地址:https://www.cnblogs.com/yif0118/p/12389804.html