Strutsconfig配置文件详解.docx
- 文档编号:5869129
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:24
- 大小:51.43KB
Strutsconfig配置文件详解.docx
《Strutsconfig配置文件详解.docx》由会员分享,可在线阅读,更多相关《Strutsconfig配置文件详解.docx(24页珍藏版)》请在冰豆网上搜索。
Strutsconfig配置文件详解
Struts配置文件
Struts框架在启动时会读入其配置文件,根据它来创建和配置各种Struts组件。
Struts配置文件使得开发者可以灵活地组装和配置各个组件,提高了应用软件的可扩展性和灵活性,可以避免硬编码。
Struts配置文件是基于XML的。
控制
Struts-config.xml,与之相关联的是ActionServlet:
通用的控制组件,提供了处理所有发送到Struts的HTTP请求的入口点。
截取和分发这些请求到相应的动作类(是Action类的子类)。
另外控制组件也负责用相应的请求参数填充ActionForm(通常称之为FormBean或JavaBean),并传给动作类(通常称之为Action)。
动作类实现核心业务逻辑,它可以访问javabean或调用EJB。
最后动作类把控制权传给后续的JSP文件,后者生成视图。
所有这些控制逻辑利用Struts-config.xml文件来配置。
视图
主要由JSP生成页面完成视图,Struts提供的标签库:
Html,Bean,Logic,Tiles等,这有利于分开表现逻辑和程序逻辑。
3)模型
模型以一个或多个JavaBean的形式存在。
这些bean分为三类:
ActionForm、JavaBeanorEJB。
ActionForm通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。
Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用JavaBean或EJB等。
Struts-config.xml组成
1)data-sources:
数据源配置元素
2)form-bean:
ActionForm配置元素
3)action:
action的配置元素
4)global-exceptions:
异常捕获的配置
5)global-forwards:
全局转发的配置
6)message-resources:
资源文件配置
配置文件的前提
为保证数据源配置方式能顺利运行,需将以下几个包复制到lib下:
commons-dbcp-1.3.jar
commons-dbcp-1.3-sources.jar
commons-dbcp-1.3-javadoc.jar
commons-pool-1.3.jar
struts-legacy.jar
commons-collections-3.2.jar
另:
jakarta-oro.jar使用Validator框架时用到
·1。
org.apache.struts.config包
在Struts1.1中加入了org.apache.struts.config包。
在Struts应用启动时,会把Struts配置文件中的配置信息读入到内存中,并把他们存放在cofnig包中相关JavaBean类的实例中。
org.apache.struts.config包中的每一个类都和Struts配置文件中特定的配置元素对应。
在Struts框架完成了对配置文件的验证和解析后,就把配置文件中的信息存放在这些类的实例中。
这些类的实例可以充当配置信息的运行时容器,Struts组件可以方便地通过他们来获取配置信息。
org.apache.struts.config.ModuleConfig在Struts框架中扮演了十分重要的角色。
它是整个org.apache.struts.config包的核心,在Struts应用运行时用来存放整个Struts应用的配置信息。
如果有多个子应用,每个子应用都会有一个ModuleConfig对象。
ModuleConfig和Struts配置文件的根元素
org.apache.struts.config.ConfigRuleSet类的功能不同于其他类,它包含了解析Struts配置文件所需要的一组规则。
在应用启动时,该类负责构造org.apache.struts.config包中其他用于保存配置信息的JavaBean类的实例。
下面分别介绍Struts配置文件中每个元素的用法。
·2。
在Struts配置文件中,必须按照它的DTD指定的先后顺序来配置
·3。
数据源负责建立和特定数据库的连接,许多数据源采用连接池机制实现,以便提高数据库访问性能。
Java语言提供了javax.sql.DataSource接口,所有的数据源必须实现该接口。
许多应用服务器和Web容器提供了内在的数据源组件,很多数据库厂商也提供了数据源的实现。
开发者应该根据实际应用的需要来选用合适的数据源实现。
配置了数据源后,就可以在Action类中访问数据源。
在org.apache.struts.action.Action类中定义了getDataSource(HttpRequest)方法,它用于获取数据源对象的引用。
也可以在配置文件中声明多个数据源,此时需要为每一个数据源分配唯一的key值,通过该值来标识特定的数据源。
·4。
每个
属性
描述
className
指定和
如果在这里设置自定义的类,该类必须扩展FormBeanConfig类
name
指定该ActionFormBean的唯一标识符,整个Struts框架用该标识符来引用这个bean。
该属性是必需的。
type
指定ActionForm类的完整类名(类的报名也包含在内),该属性是必需的
如果配置动态ActionFormBean,还必须配置
属性
描述
className
指定和
initial
以字符串的形式设置表单字段的初始值。
如果没有设置该属性,则基本类型的表单字段的默认值为0,对象类型的表单字段的默认值为null
name
指定表单字段的名字。
该属性是必需的
type
指定表单字段的类型。
如果表单资源为Java类,必须给出完整的类名。
该属性是必需的。
·5。
属性
描述
className
指定和
默认值为org.apache.struts.config.ExceptionConfig
handler
指定异常处理类。
默认值为org.apache.struts.action.ExceptionHandler
key
指定在ResourceBundle中描述该异常的消息key
path
指定当异常发生时的转发路径
scope
指定ActionMessages实例的存放范围,可选值包括request和session,此项的默认值为request
type
指定所需处理的异常类的名字。
此项是必需的
bundle
指定ResourceBundle
·6。
通过这种方式,Action类或者JSP文件无需要指定实际的URL,只要指定逻辑名就能实现请求转发或者重定向,这可是减弱控制组件和视图组件之间的耦合,并且有助于维护JSP文件。
属性
描述
className
和
contextRelative
如果此项为true,表示当path属性以“/”开头时,给出的是相对于当前上下文的URL。
此项的默认值为false
name
转发路径的逻辑名。
此项是必需的
path
指定转发或重定向的URL。
此项是必需的,必需以“/”开头。
当contextRelative属性为false时,表示URL路径相对于当前应用(application-relative);当contextRelative属性为true时,表示URL路径相对于当前上下文(context-relative)
redirect
当此项为true时,表示执行重定向操作;当此项为false时,表示执行请求转发操作。
此项默认值为false
·7。
在
在
在
在不同位置配置
属性
描述
attribute
设置和Action关联的ActionFormBean在request或session范围内的属性key。
例如,假定FormBean存在于request范围内,并且此项为“myBean”,那么request.getAttribute(“MyBean”)就可以返回该Bean的实例。
此项为可选项。
className
和
默认值为org.apache.struts.action.ActionMapping
forward
指定转发的URL路径
include
指定包含的URL路径
input
指定包含输入表单的URL路径。
当表单验证失败时,将把请求转发到该URL
name
指定和该Action关联的ActionFormBean的名字。
该名字必需在
此项是可选项
path
指定访问Action的路径,它以“/”开头,没有扩展名
parameter
指定Action的配置参数。
在Action类的execute()方法中,可以调用ActionMapping对象的getParameter()方法来读取该配置参数
roles
指定允许调用该Action的安全角色。
多个角色之间以逗号隔开。
在处理请求时,RequestProcessor会根据该配置项来决定用户是否有调用Action的权限
scope
指定ActionFormBean的存在范围,可选值为request和session。
默认值为session
type
指定Action类的完整类名
unknown
如果此项为true,表示可以处理用户发出的所有无效的ActionURL。
默认值为false
validate
指定是否要先调用ActionFormBean的validate()方法。
默认值为true
提示:
forward属性的作用和org.apache.struts.actions.ForwardAction类相同。
Include属性的作用和org.apache.struts.actions.IncludeAction类相同。
如果在
Forward属性指定和path属性匹配的请求转发路径。
·8。
属性
描述
bufferSize
指定上载文件的输入缓冲的大小。
该属性为可选项,默认值为4096。
className
指定和
默认值为org.apache.struts.config.ControllerConfig。
contentType
指定响应结果的内容类型和字符编码。
该属性为可选项,默认值为text/html。
如果在Action和JSP网页中也设置了内容类型和字符编码,将会覆盖该设置
locale
指定是否把Locale对象保存到当前用户的Session中。
默认值为false
processorClass
指定负责处理请求的Java类的完整类名。
默认值为org.apache.struts.action.RequestProcessor。
如果把此项设置为自定义的类,那么应该保持该类扩展了org.apache.struts.action.RequestProcessor类
tempDir
指定处理文件上传的临时目录。
如果此项没有设置,将采用Servlet容器为Web应用分配的临时工作目录
nochache
如果为true,在响应结果中将加入特定的头参数:
Pragma,Cache-Control和Expires,防止页面被存储在客户浏览器的缓存中。
默认值为false
如果应用包含多个子应用,可以在每个子应用的Struts配置文件中配置
这样,尽管这些子应用共享同一个ActionServlet对象,但是它们可以使用不同的RequestProcessor类。
·9。
属性
描述
className
和
默认值为org.apache.struts.config.MessageResourcesConfig
factory
指定消息资源的工厂类。
默认值为org.apache.struts.util.PropertyMessageResourcesFactory类
key
指定ResourceBundle存放在ServletContext对象中时采用的属性key。
默认值为由Globals.MESSAGES_KEY定义的字符串常量。
只允许有一个ResourceBundle采用默认的属性key
null
指定MessageResources类如何处理未知的消息key。
如果此项为true,将返回空字符串。
如果此项为false,将返回类似“?
?
?
global.label.missing?
?
?
”的字符串。
该属性为可选项,默认值为true
parameter
指定ResourceBundle的消息资源文件名。
许多Struts客户化标签都通过bundle属性来指定ResourceBundle,标签的bundle属性和
·10。
属性
描述
className
指定Struts插件类。
插件类必需实现org.apache.struts.action.PlugIn接口
·11。
配置多应用模块
Struts1.1支持多应用模块,即同一个应用包含多个子应用,每个子应用可以处理相关的一组功能。
所有的子应用都共享同一个ActionServlet实例,但每个子应用都有单独的配置文件。
把应用划分成多个子应用模块包含一下步骤:
(1) 为每个子应用传见单独的Struts配置文件。
(2) 在web.xml的ActionServlet的配置代码中添加每个子应用信息。
(3) 采用
------------
Structs的基本配置
第一章Structs的基本配置
1.为Structs应用配置Web.xml文件
第一步:
配置ActionServlet
注意:
不管应用中包含多少个子应用,都只需配置一个ActionServlet,因为ActionServlet支持多线程,目前的Structs框架只允许在应用中配置一个ActionServlet。
第二步:
初始化参数对Servlet的运行环境进行初始化配置。
表2-1. Struts1.1中用到的初始化参数
参数名 含义/默认值
config 以相对路径的方式指明Struts应用程序的配置文件位置。
如不设置,则默认值为/WEB-INF/struts-config.xml。
config/sub1 以相对路径的方式指明子应用程序的配置文件位置,一般来说,很少用到子应用程序,在此不多描述。
debug 设置Servlet的debug级别,控制日志记录的详细程度。
默认为0,记录相对最少的日志信息。
detail 设置Digester的debug级别,Digester是Struts框架所使用的用来解析xml配置文件的一个框架,通过该设置,可以查看不同详细等级的解析日志。
默认为0,记录相对最少的日志信息。
第三步:
配置欢迎清单
当客户访问Web应用时,如果仅仅给出Web应用的Root URL,没用指定具体的文件名,Web容器会自动调用Web应用的欢迎文件。
说明:
由于
首先,在Structs配置文件中为被调用的Action创建一个全局的转发项,例如:
创建一个welcome.jsp的文件
最后在web.xml文件中把welcome.jsp文件配置为欢迎文件,代码如下:
第四步:
配置错误处理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Strutsconfig 配置文件 详解