Struts2框架入门

Struts2入门

本文章采用当前Struts2最新版本struts-2.5.20,读者应挑选对应的版本进行开发。

Struts2的体系结构介绍

        Struts2是基于WebWork技术开发的全新Web框架,结构体系如下。
        Struts2通过过滤器拦截要处理的请求,当客户端发送一个HTTP请求时,需要经过一个过滤器链。这个过滤器包括ActionContextClearUp过滤器、其它Web应用过滤器及StrutsPrepareAndExecuteFilter过滤器,其中StrutsPrepareAndExecuteFilter过滤器是必须配置的。
         1、当StrutsPrepareAndExecuteFilter过滤器被调用时,Action映射器将查找需要调用的Action对象,并反回代理对象。
        2、Action代理从配置管理器中读取Struts2的相关配置(struts.xml)。
        3、Action容器调用指定的Action对象,在调用之前经过一系列的拦截器。(拦截器与过滤器相似,并且两次执行顺序相反)
        4、当Action处理请求后,将反回相应的结果视图(JSP和FreeMarker等),在这些视图之中可以使用Struts标签显示数据并控制数据逻辑。
        5、HTTP回应给浏览器,在回应的过程中同样经过过滤器链。
Struts体系结果图:
在这里插入图片描述

获取和配置Struts2

Struts官方地址:http://struts.apache.org
在项目开发时需要添加的基本类库支持

名称说明
struts2-core-2.5.20.jarStruts2核心类库
ognl-3.1.21.jarOGNL表达式语言类库
freemarker-2.3.28.jarFreemarker模板语言支持类库
javassist-3.20.0-GA.jar分析、编辑和创建Java字节码类库
log4j-api-2.11.1.jar日志支持类库
commons-lang3-3.8.1.jar包含了一些数据类型工具类,是java.lang.*的扩展
commons-io-2.6.jar处理I/O操作的工具类库
commons-fileupload-1.4.jar文件上下传支持类库
	在实际开发中可能还需要更多类库支持,其相关类库在lib目录中查找添加即可。

创建一个简单的Struts2程序

本实例应用Struts2框架处理HTTP请求。
(1)创建struts2.01的Web项目,并将Struts2支持的类库添加到WEB-INF目录下的lib文件夹中。
在这里插入图片描述
(2)配置web.xml文件。文件声明Struts2提供的过滤器,类名为org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter。关键代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
id="WebApp_ID" version="3.1">
  <display-name>Struts2.01</display-name>
  <!--配置Struts2过滤器-->
  <filter>
  	<filter-name>struts2</filter-name><!--过滤器名称-->
  	<!--过滤器类-->
  	<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>struts2</filter-name><!--过滤器名称-->
  	<url-pattern>/*</url-pattern><!--过滤器映射-->
  </filter-mapping>
</web-app>

(3)在原码文件夹(src)中创建struts.xml配置文件。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
    <constant name="struts.devMode" value="true" />
	<!-- 声明包 -->
    <package name="basicstruts2" extends="struts-default">
        <!-- 定义action -->
        <action name="welcome">
        	<!-- 定义处理成功后映射的页面 -->
            <result>/welcome.jsp</result>
        </action>
    </package>
</struts>

上面代码中,标签用于声明一个包,通过name属性指定包名为basicstruts2,并通extends指定此包继承struts-default包;标签用来定义Action对象,name属性用于指定访问此Action的URL;子元素用于定义处理结果和资源之间的映射关系,实现子元素的配置处理成功后跳转到welcome.jsp页面
(4)创建welcome.jsp页面,该页面为访问Action后跳转的结果页面。

<body>
	Welcome To Struts2!
</body>

(5)编写主页面index.jsp,在其中编写一个超链接用于访问Action。

<body>
<a href="welcome.action">Struts2</a>
</body>

(6)实例运行结果如下:打开主页面,单击Struts2后,请求将交给Action对象welcome来处理,在处理成功后反回welcome.jsp页面。
index.jsp页面:
index.jsp
welcome.jsp页面:
welcome.jsp页面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值