初涉Struts2---初识

原创 2013年12月04日 23:21:53

Sturts目前分为两个框架:

(1)是传统的Struts1和WebWork接合后的Struts框架,Struts2核心为WebWork

(2)是Shale,Shale是面向服务器架构,是建立在JSF上。

简述Struts1与Struts2区别:

①Action类:Struts2的Action类可以实现一个Action接口或其他接口,而Struts1类只继承一个抽象基类(使用的是抽象基类编程,而不是接口),Struts2提供一个ActionSupport基类去实现常用接口,Struts2的接口不是必须的。

②Servlet依赖:Struts2的Action不依赖于容器,Struts1的Action依赖于Servlet的API。

③表达式语言:Struts2在Struts1整合的JSTL基础上,支持一个更加强大和灵活的表达式语言OGNL(object Graph Notation Language)。

④线程模式:Struts1的Action是单例模式并且是线程安全的,因为仅有Action的一个实例处理所有的请求;Struts2的Action为每一个请求产生一个实例没有线程安全的问题。

⑤Action的执行控制:Struts1支持每个模块有单独的生命周期,但模块中的所有Action必须共享相同的生命周期,而Struts2支持通过拦截器堆栈为每个Action创建不同的生命周期,堆栈能够根据需要和不同的Action一起使用。


Sturts2的体系结构图:


通过Struts2体系结构图可知:Sturts2使用拦截器做为处理流以用户的业务逻辑控制为目标,创建一个控制器代理,该代理负责处理用户请求,毁掉业务控制器的execute方法,给用户返回一个可见视图资源。


Sturts2的配置文件:

Sturts2通常需要配置Action的sturts.xml和Action全局属性的sturts.properties文件。


sturts.xml配置文件:

<?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>
<package name="first" extends="struts-default">
<action name="hello" class="action.logionAction" method="{1}">
<result name="success">/hello.jsp</result>
</action>
</package>	
</struts>


sturts.properties配置文件:

  #指定Struts2 处于开发状态
     sturts.dovMode = false
     #指定当Struts2配置文件改变后,web框架是否重新加载Struts2配置文件
     sturts.configuration.xml.reload = ture



sturt2最重要的配置:web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <filter>
  	<filter-name>struts</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>  
  <filter-mapping>
  	<filter-name>struts</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>


以上内容均为个人在学习过程中的笔记资料,也是对Sturts2的概况理解,下篇将会学习sturt2的基本流程。

JAVA学习第一课(初识JAVA)

PS:退ACM集训队了,自己也疯玩了两天,后天就开学了,就正式大二了,该收收心好好学习啦                                                        ...
  • u013497151
  • u013497151
  • 2014年08月30日 14:51
  • 2211

初识神经网络(1)

神经网络是由简单处理单元构成的大规模并行分布式处理器,天然的具有存储经验知识和使之可用的特性。神经网络在两个方面与大脑相似: 神经网络是通过学习过程从外界环境中获取知识的;互连神经元的连接强度,即突...
  • universe_ant
  • universe_ant
  • 2016年10月02日 12:33
  • 1431

第一章 初识Java

什么是Java语言 Java是于 1995年 由Sun公司推出的 极富创造力的 面向对象程序设计语言 它由Java之父——Sun研究院院士 詹姆斯·高斯林(James Gosling)博士...
  • zsg6221827
  • zsg6221827
  • 2017年03月07日 12:11
  • 196

【redis 基础篇一】redis初识

在JDB来了差不多一个月的时间了,在了解公司业务和框架的过程中,看到了在通过上游调用接口的过程中,使用到了redis来调用值,上游将一个参数传过来,我们通过这个参数去redis中读取部分参数,然后将所...
  • huo065000
  • huo065000
  • 2016年02月28日 18:57
  • 601

iOS开发之OC篇(1)——初识iOS开发

简单介绍编译器Xcode以及开发语言OC。建立一个最简单的工程,打印出“Hello world!”。...
  • u012078168
  • u012078168
  • 2016年07月07日 18:48
  • 182

【docker】初识docker

docker经过这么几年的发展,到如今更是火热到即使你没吃过猪也见过猪跑的地步,本节会给大家介绍docker的一些含义,让大家了解docker什么是DockerDocker是一个开放源代码软件项目,让...
  • qq_28602957
  • qq_28602957
  • 2016年12月21日 17:41
  • 1759

《Hadoop基础教程》之初识Hadoop

Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身。 《Hadoop基础教程》是我读的...
  • xuezhisdc
  • xuezhisdc
  • 2016年07月30日 15:46
  • 1153

初识人工智能

人工智能,之所以冠以“”人工“,最主要是因为其模仿人类的思维过程所产生的。而“”智能“”,怎样才算智能呢?前一阵子比较火的智能家居,最主要的形式是通过各种手机APP 或者终端远程控制各种家电开关,这种...
  • oangeli
  • oangeli
  • 2017年01月18日 23:35
  • 157

初识前端技术

之所以写这篇文章是在开启自己的前端学习之前,对前端技术目前的认知的一个记录,方便自己学习一段时间之后再来更新自己的认识。 1.工具 github: 作用是代码管理,类似的还有SVN,VSS。 gith...
  • colar_lady
  • colar_lady
  • 2016年10月12日 16:26
  • 172

第一章:初识lucene

lucene实战程序示例: 建立索引(使用Indexer索引文本文件) package lucene; import java.io.File; import java.io.FileFilte...
  • zwx19921215
  • zwx19921215
  • 2015年01月19日 15:31
  • 815
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:初涉Struts2---初识
举报原因:
原因补充:

(最多只允许输入30个字)