码迷,mamicode.com
首页 > 其他好文 > 详细

Struts2学习之struts框架概述

时间:2015-05-11 08:53:49      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:struts 2   框架概述   mvc   处理流程   struts执行流程   

 Struts2是一个用来开发MVC应用程序的框架. 提供了Web 应用程序开发过程中的一些常见问题的解决方案:         

Struts2 =Struts1 + WebWork    struts1struts2没有本质的关系

Struts封装好的一些功能:

页面导航活动进行管理

对来自用户的输入数据进行合法性验证

统一的布局

可扩展性

国际化和本地化

支持Ajax

表单的重复提交

 

Struts中,用action取代了servlet

 

Struts2API中,com包为webwork的,org开头的为struts1的。

Struts2下载:http://struts.apache.org下载struts-2.x.x-all.zip

Struts2解压app目录中struts2-blank-2.1.8.1.war查看struts项目的最小引入jar

 

   struts2-core-2.1.8.1.jar         Struts2框架的核心类库

   xwork-core-2.1.6.jar               XWork类库,Struts 2在其上构建

   ognl-2.7.3.jar                   (ObjectGraph Navigation Language), 通过其读写对象的属性

   freemarker-2.3.15.jar :  Struts 2UI标签的模板使用FreeMarker编写

   commons-logging-1.1.x.jar   ASF出品的日志包,Struts2框架使用这个日志

   commons-fileupload-1.2.1.jar        文件上传组件,2.1.6版本后需要加入此文件

commons-io-1.3.2.jar      上传文件依赖的jar

 

 

strutsweb项目中的地位

技术分享

软件中的框架:是一种半成品;项目的开发需要在框架的基础上进行。

项目中使用什么样的框架,应该根据软件的需求和规模来决定。

在软件开发中,必须要同时使用到的框架的版本。

 

Tomcat启动时的加载项

Tomcat启动à加载自身的web.xml文件à加载所有项目的web.xml文件

在项目的web.xml文件中引入过滤器,加载和初始化框架。

                  Struts的核心功能的初始化,是通过过滤器完成的。

                  Servlet的初始化在第一次访问时完成

                  Filter的初始化在服务器启动时完成。doFilter()方法在访问的时候执行。

 

<!--引入Struts2核心过滤器 -->

 <filter>

 <filter-name>struts2</filter-name>

     <!-- Struts2核心过滤器 -->

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

 </filter>

 <filter-mapping>

 <filter-name>struts2</filter-name>

  <!—配置Struts2核心过滤器的拦截项-->

 <url-pattern>/*</url-pattern>

 </filter-mapping>

Struts的版本不同,核心过滤器类是不一样的。

struts的核心功能是通过过滤器完成的。

struts中,action类,也叫动作类一般继承ActionSupport

主要用来处理具体的请求和业务逻辑  struts中的action类取代了servlet类。Action中的业务逻辑方法用来处理具体的请求,业务逻辑方法必须返回一个String类型的结果,方法不能有参数。

Action类的实例在调用service方法之后创建。每访问一次,就创建一个实例。

 

Struts2执行流程

服务器启动:

         1.加载项目web.xml

         2.创建Struts核心过滤器对象,执行filterà  init()

                  struts-default.xml,    核心功能的初始化

struts-plugin.xml,    struts相关插件

struts.xml                       用户编写的配置文件

 

访问:

         3.用户访问Action,服务器根据访问路径名称,找对应的aciton配置, 创建action对象

         4.执行默认拦截器栈中定义的18拦截器

         5.执行action业务处理方法

 技术分享


拦截器只拦截action,过滤器可以在所有的web项目中使用。Struts每一个核心功能都是一个拦截器,一个拦截器就是一个Java类。

struts-default.xml,详解

 目录:struts2-core-2.3.4.1.jar/struts-default.xml

 内容:

         1.bean节点指定struts在运行的时候创建的对象类型

         2.指定struts-default 【用户写的package(struts.xml)一样要继承此包 】

               package  struts-default  包中定义了:

                         a.  跳转的结果类型

                                  dispatcher    转发,不指定默认为转发

                                  redirect       重定向

                                  redirectAction  重定向到action资源

                                  stream        (文件下载的时候用)

                         b. 定义了所有的拦截器

                                    定义了32个拦截器!

                                    为了拦截器引用方便,可以通过定义栈的方式引用拦截器,

                             此时如果引用了栈,栈中的拦截器都会被引用!

                                  

                                  defaultStack

                                           默认的栈,其中定义默认要执行的18个拦截器!

 

 

                         c. 默认执行的拦截器栈、默认执行的action

                                  <default-interceptor-refname="defaultStack"/>

              <default-class-refclass="com.opensymphony.xwork2.ActionSupport" />

 

 

<interceptor

name="prepare"class="com.opensymphony.xwork2.interceptor.PrepareInterceptor"/>

<interceptor

name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/>

 

struts会把从页面获取的数据自动封装起来,前提是属性名和页面中标签的name属性的值是一样的。

通过对象获取页面中的属性时,在页面中对应标签的name的值中使用 对象.属性 作为标签中name属性的值。 必须为该对象提供set()get()方法。

Struts2学习之struts框架概述

标签:struts 2   框架概述   mvc   处理流程   struts执行流程   

原文地址:http://blog.csdn.net/ning_xian_hong/article/details/45640057

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!