您的位置:首页 > 编程语言 > Java开发

Struts2

2015-03-07 13:26 14 查看
Struts框架拥有两个主要的版本,分别是Struts 1.x 和Struts 2.x 版本,它们都是遵循MVC思想的开源框架。

注意:Struts 2 框架并不是核心控制器Struts 1 的升级版,而是一个全新的框架,在体系结构上与Struts 1 也存在着较大的差距。

它将Struts技术与WebWork技术完美地结合起来。

一、Struts2 工作流程

1、用户发出一个 HttpServletRequest 请求。

2、这个请求经过一系列的过滤器 Filter 来传送。【如果Struts2 与Site Mesh 插件以及其他框架进行了集成,则请求首先要经过可选的ActionContextCleanUp过滤器】

3、调用FilterDispatcher(核心控制器)【Struts 2框架的基础,包含了框架内部的控制流程和处理机制。】,它通过询问ActionMapper来确定该请求是否需要调用某个Action。如果需要调用某个Action,则FilterDispatcher就把请求转交给ActionProxy处理。

4、ActionProxy通过配置管理器 Configuration Manager 询问框架的配置文件struts.xml,从而找到需要调用的Action类。

5、ActionProxy 创建一个ActionInvocation的实例,该实例使用命名模式来调用。在Action执行的前后,ActionInvocation实例根据配置文件加载与Action相关的所有拦截器Interceptor。

6、一旦Action执行完毕,ActionInvocation实例根据struts.xml文件中的配置找到相对应的返回结果。【返回结果通常是一个Jsp或者FreeMarker的模版。】

7、最后,HttpServletResponse响应通过web.xml文件中配置的过滤器返回。

基本简要流程如下:

      1、客户端浏览器发出HTTP请求。

      2、根据web.xml配置,该请求被FilterDispatcher接收。

      3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。

      4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。

      5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。

      6、返回HTTP响应到客户端浏览器。

最简单的七个步骤:

      1:客户端在浏览器中输入一个url地址。

      2:这个url请求通过http协议发送给tomcat。

      3:tomcat根据url找到对应项目里面的web.xml文件。

      4:在web.xml里面会发现有struts2的配置。

      5:然后会找到struts2对应的struts.xml配置文件。

      6:根据url解析struts.xml配置文件就会找到对应的class。

      7:调用完class返回一个String字符串,根据struts.xml返回到对应的jsp。

 

 

struts2标签分类:

      1.表单UI标签

      2.非表单UI标签

      3.控制标签

      4.数据标签

 

 

为什么使用struts2?

      1.开源

      2.mvc框架

      3.纯pojo的Action

      4.更好的标签特性

      5.易测试

      6.易扩展

二、配置

web.xml【struts2-core-2.2.1.jar】

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


struts.xml【struts-2.0.dtd】

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.i18n.encoding" value="utf-8" />
<package name="default" namespace="/" extends="struts-default">
<action name="userAction" class="action.UserAction">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>


Action类继承ActionSupport。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts 2