WebConfig配置详解资料_第1页
WebConfig配置详解资料_第2页
WebConfig配置详解资料_第3页
WebConfig配置详解资料_第4页
WebConfig配置详解资料_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Web.config配置详解

一、认识Web.config文件

Web.config文件是一个XML文本文件,它用来储存ASP.NETWeb应用程序的配置信息(如

最常用的设置ASP.NETWeb应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。

当你通过.NET新建•个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文

件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以

在该子目录下新建一个Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也

可以重写或修改父目录中定义的设置。

(-).Web.config是以XML文件规范存储,配置文件分为以下格式

1.配置行处理程序声明

特点:位于配置文件的顶部,包含在<confiqSections>标志中。

2.特定应用程序配置

特点:位于<appSetting>中。可以定义应用程序的全局常量设置等信息.

3.配置节设置

特点:位于〈system.Web>节中,控制A运行时的行为.

4.配置节组

特点:用vsectionGroup>标记,可以自定义分组,可以放到<configSections>内部或其它<se

ctionGroup>标记的内部.

(二).配置节的每一节

1.<configuration>节

根元素,其它节都是在它的内部.

2.<appSetting>节

此节用于定义应用程序设置项。对一些不确定设置.,还可以让用户根据自己实际情况自己设置

用法:

I.

<appSettings>

<addkey="Conntction"value="server=192,168.85.66;userid=sa;password=;datab

ase=Info;7>

<appSettings>

定义了一个连接字符串常量,并且在实际应用时可以修改连接字符串,不用修改程式代码.

II.<appSettings>

<addkey="ErrPage"value="Error.aspx"/>

<appSettings>

定义了一个错误重定向页面.

3.<compilation>节

格式:

<compilation

defaultLanguage="c#"

debug="true"

/>

I.defaultlanguage:定义后台代码语言,可以选择C#和VB.net两种语言.

Ildebug:为true时,后动aspx调试;为false不启动aspx调试,因而可以提高应用程斤运行

时的性能。一股程序员在产发时设置为true,交给客户时设置为false.

4.<customErrors>节

格式:

<customErrors

mode="RemoteOnly"

defaultRedirect="error.aspx"

<errorstatusCode='*440"redirect="err440page.aspx"/>

<errorstatusCode="500"redirect="errSOOPage.aspx"/>

/>

I.mode:具有OnQff,RemoteOnly3种状态。On表示始终显示自定义的信息;Off表示始终

显示详细的借误信息;RemoteOnly表示只对不在本地Web服务器上运行的用户显示自定义

信息.

II.defaultRedirect:用于出现错误时重定向的URL地此罡可选的

Ill.statusCode:指明错误状态码,表明一种特定的出错状态.

IV.redirect:错误重定向的URL.

5.<globalization>节

格式:

<globalization

requestEncoding="utf"8"

responseEncoding="utf-8"

fileEncoding="utf-8"

/>

LrequestEncoding:它用来检查每一个发来请求的编码.

II.responseEncoding:用于检查发回的响应内容编码.

III.fileEncoding:用于检查aspxzasax等文件解析的默认编玛.

6.<sessionState>节

格式:

<sessionstate

mode="InProc"

stateConnectionString="tcpip=:42424"

sqlConnectionString="datasource=127.0.0.l;Trusted_Connection=yes"

cookieless="false"

timeout="20"

/>

I.mode:分为off/nproc,StateServer,SqIServer几种状态

这里有详细介绍此属性:/chengking/archive/2005/10/27/518079.aspx

II.stateConnectionString:指定A应用程序存储远程会话状态的服务器名,默认为本机

Ill.sqlConnectionString:当用会话状态数据库时,在这里设置连接字符串

IV.Cookieless:设置为true时,表示不使用cookie会话状态来标识客户;否则,相反.

V.TimcOut:用来定义会话状态存储的时间,超过期限,将自动烈止会话.

web.config配置文件(默认的配置设置)以下所有的代码都应该位于

<configuration>

<system.web>

</system.web>

</configuration>

之间,出手学习的目的下面的示例都省略了这段XML标记。

1、<authentication>节

作用:配置ASP.NET身份验证支持(为Windows、Forms.PassPort,None四种)。该元素只

能在计算机、站点或应用程序级别声明。vauthentication>元素必需与〈authorization〉节

配合使用。

示例:

以下示例为基于窗体(Forms)的身份验证配置站点,当没有•登陆的用户访问需要身份验证的网页,网页

自动跳转到登陆网页。

<authenticationmode="Forms">

<formsloginUrl="logon.aspx"name=".FormsAuthCookie''/>

</authentication>

其中元素loginUrl表示登陆网页的名称,name表示Cookie名称。

2,<authorization>节

作用:控制对URL资源的客户端访问(如允许匿名用户访问)。此元素可以在任何级别(计算机、

站点、应用程序、子目录或页)上声明。必需与〈authentication〉节配合使用。

示例:以下示例禁止匿名用户的访问

<authorization>

<denyusers="?'/>

</authorization>

注:你可以使用user.identitymame米获取已经过验证的当前的用户名:可以使用web.Security.For

msAuthentication.RedirecFromLoginPage方法将已验证的用户重定向到用户刚才请求的页面.具体

3、<compilation>节

作用:配置ASP.NET使用的所有编译设置。默认的debug属性为''True".在程序编译完成交付使用

之后应将其设为False(Web.config文件中有详细说明,此处省略示例)

4,<customErrors>

作用:为ASP.NET应用程序提供有关自定义错误信息的信息。它不适用于XMLWebservi

ces中发生的错误。

示例:当发生错误时,将网页跳转到自定义的错误页面。

<customErrorsdefaultRedirect="ErrorPage.aspx"mode="RemoteOnly">

</customErrors>

其中元素defaultRedirect表示自定义的错误网页的名称。mode元素表示:对不在本地Web服务

器上运行的用户显示自定义(友好的)信息。

5、<httpRuntime>节

作用:配置ASP.NETH-TP运行库设置。该节可以在计算机、站点、应用程序和子目录级别声明。

示例:控制用户上传文件最大为4M,最长时间为60秒,最多请求数为100

<httpRuntimemaxRequestLength="4096"executionTimeout="60"appRequestQ

ueueLimit="100"/>

Configurationsettings.AppSettings["scon"]

ASP.NET中使用web.config配置web应用程

序中的数据库连接

固你会经常碰到这种情况:几乎在网站的每个页面上,存储一些全局处理信息。理想的做法是将这些信息

一次性的集中存储在资料档案库中,而不是在网站的每个页面上都重梵这样的操作。比如说数据库连接串

就是这样的信息,如果这些信息不是集中存储在特定区域中,而是在网站的每个需要连接数据库的页面.上

手工输入,可以设想:当数据库连接串改动时将会令人头痛,你必须遍历网站中所有连接数据库的页面去

修改!

在ASP.NET中,通过Web.config,你可为使用<appSettings>标记,在这个标记中,你可用<ad

d.../>标记定义0到多个设置.本文中我们主要讨论了如何使用web.config来配置一个web应用程

序中的数据库连接。

web.config文件是标准的xml文件,我们可以使用它来为一台机器下的每一个web应用程序或某个应

用程序或一个目录下的页面来进行设置,当然,它也可以为一个单独的web页面进行设置。

如:网站的主目录是\inetpub\wwwroot\,那么我们将web.config放置于其下,那么这个网站中的应

用程序将被web.config中的设置所影响。

e.g.:

<?xmlversion="1.0"encoding="gb2312"?>

<configuration>

<system.web>

<compilationdefaultlanguage="vb"debug="true"/>

<customerrorsmode="remoteonly"defaultredirect="js/error.htm">

<errorstatuscode="404"redirect="js/filenotfound.aspx"/>

<errorstatuscode="500"redirect="js/error.htm"/>

</customerrors>

<authenticationmode="windows"/>

〈authorization〉

<allowusers="*"/>

</authorization>

<httpruntimemaxrequestlength="4000"usefu11yquaIifiedredirecturl="true"executionti

meout="45"/>

<traceenabled="false"requestlimit="10"pageoutput="false"tracemode="sortbytime"

localonly="true"/>

<sessionstatemode="inproc"stateconnectionstring="tcpip=:43444"cookieles

s="false"timeout="20"/>

<globalizationrequestencoding-"gb2312"responseencoding-"gb2312"fileencodinq-"g

b2312"/>

</system.web>

<appsettings>

oddkey="connstring"value="uid=flash;password=3.1415926;database=news;server

=(local)"/>

</appsettings>

</configuration>

这里我们讨论一下如何在wcb.config中设置数据库连接。

1、连接一个数据库:

在web.config中的〈configuration〉后加入

<appsettings>

<addkey="connstring"

value="uid=flash;password=3.1415926;database=news;server=(local)"/>

</appsettings>

在程序中,你可以使用以下代码来使用web.config中的设置:

importssystem.configuration

dimmyvarasstring

myvar=configurationsettings.appsettings("connstring"

usingsystem.configuration;

stringmyvar;

myvar=configurationsettings.appsettings["connstring"];

2、连接多个数据库

同理,那就是使用多个不同的key值来设置

3、设置不同子目录下应用程序的数据库链接

这是一个很有意思的方法,在设置前,先说明一下它的用途:

如果在•个虚拟目录下有多个子目录,每•个子目录下下的web应用程序都需要连接不同的数据库,这

如何做呢??

一种方法是在每一个子目录下分别建立一个web.config,用它来设置这个目录下的数据库连接。但这种

方法的问题是需要维护每一个了目录下的web.config.

方法二,是只在虚拟目录卜建立一个web.config,在它里面设置每一个子目录卜的应用程序的数据库连

接。说到这里,你会想到上面的第二种方法,使用多个不同的key值来设置,这的确是一个办法。

这里,我想说明的是另一种方法:在虚拟目录下布置web.config,在其中使用location标记,使用同一

个key值来连接数据库,这样做的好处很明显,因为用同一个key值,将导致在所有目录下的应用程序

中,都可以使用共同的语句来连接数据库,这在程序以后发生位置迁移时,并不用修改程序中连接数据库

的语句。

具体设置如下:

<locationpath="news">

<appsettings>

<addkey="connstring"value="uid=flyangel;password=3.1415926;database=news;serv

er=(local)"/>

</appsettings>

</location>

<locationpath="bbs">

<appsettings>

oddkey="connstring"value="uid=flyangel;password=3.1415926;database=bbs;ssrve

r=(local)"/>

</appsettings>

</location>

<locationpath="soft">

<appsettings>

oddkey=,,connstring"value="uid=flyangel;password=3.1415926;database^soft;serve

r=(local)"/>

</appsettings>

</location>

注:上例中news、bbs、soft分别是虚拟目录下的子目录。

程序中使用连接时,采用下而的方法:

publicfunctiongetconnectionstring()

configurationsettings.appsettings().item("connstring"

endsub

最后需要说明的一点是,为了有效地利用.config文件,你应当创建标准的键名和值定义供所有的应用程

序开发人员所用。这样就可以让同•项目的开发人员采用公共的项目设置。这些标准在部署应用程序和将

其转化为产品的时候非常有用。

web.config中的session配置详解

打开某个应用程序的配置文件Web.config后,我们会发现以下这段:

<sessionstate

mode="InProc"

stateConnectionString="tcpip=:42424"

sqlConnectionString="datasource=;Trusted_Connection=yes"

cookieless="false"

timeout="20"

/>

这一段就是配置应用程序是如何存储Session信息的了。我们以下的各种操作主要是针对这一段配置

展开。让我们先看看这一段配置中所包含的内容的意思。sessionstate节点的语法岫这样的:

<sessionstatemode="Off|InProc|StateServer|SQLServer"

cookieless="true|false"

timeout="numberofminutes"

stateConnectionString="tcpip=server:port"

sqlConnectionString="sqlconnectionstring"

stateNetworkTimeout="numberofseconds"

/>

必须有的属性是

属性选项描述

mode设置将Session信息存储到哪里

Off设置为不使用Session功能

InProc设置为将Session存储在进程内,就是ASP中的存储方式,这是默认值。

StateServer设置为将Session存储在独立的状态服务中。

SQLServer设置将Session存储在SQLServer中。

可选的属性是:

属性选项描述

cookieless设置客户端的session信息存储到哪里.

ture使用Cookieless模式

false使用Cookie模式,这是默认值。

timeout设置经过多少分钟后服务器自动放弃Session信息。默认为20分钟

stateConnectionString设置将Session信息存储在状态服务中时使用的服务器名称和端口号,例如:

"tcpip=:42424"。当mode的值是StateServerJt,这个属性是必需的。

sqlConnectionString设置与SQLServer■连接时的连接字符串。例如"datasource=localhost;Inte

gratedSecurity=SSPI;InitialCatalog=northwind"o当mode的值是SQLServer时,这个属性是

必需的。

stateNetworkTimeout设置当使用StateServer■模式存储Session状态时,经过多少秒空闲后,断开

Web服务器与存储状态信息的服务器的TCP/IP连接的。默认值是10秒钟。

ASP.NET中客户端Session状态的存储

在我们上面的Session模型简介中,大家可以发现Session状态应该存储在两个地方,分别是客户

端和服务器端。客户端只负责保存相应网站的SessionlD,而其他的Session信息则保存在服务器端。在

ASP中,客户端的SessionlD实际是以Cookie的形式存储的。如果用户在浏览器的设置中选择了禁用C

ookie,那末他也就无法享受Session的便利之处了,甚至造成不能访问某些网站。为了解决以上问题,

在ASP.NET中客户端的Session信息存储方式分为:Cookie和Cookieless两种。

ASP.NET中,默认状态下,在客户端还是使用Cookie存储Session信息的。如果我们想在客户端

使用Cookieless的方式存储Session信息的方法如卜.:

找到当前Web应用程序的根H录,打开Web.Config文件,找到如下段落;

<sessionstate

mode="InProc"

stateConnectionString="tcpip=:42424"

sqlConnectionString="datasource=127.0.0.l;Trusted_Connection=yes"

cookieless="false"

timeout="20"

/>

这段话中的cookieless="false"改为:cookieless="true",这样,客户端的Session信息就不再

使用Cookie存储而是将其通过URL存储。关闭当前的IE,打开•个新IE,重新访问刚才的Web

应用程序,就会看到类似下面的样子:

其中,http://localhost/MyTestApplication/(ulqsek45heu3ic2a5zgdl245)/default.aspx中黑

体标出的就是客户端的SessionID。注意,这段信息是由HS自动加上的,不会影响以前正常的连接。

ASP.NET中服务器端Session状态的存储

准备工.作

为了您能更好的体验到实验现象,您可以建立一个叫做SessionState.aspx的页面,然后把以下这

些代码添加到vbodyx/body〉中。

<scriptrunat="server">

SubSession_Add(senderAsObject,eAsEventArgs)

Session("MySession")=textl.Value

spanl.InnerHtml="Sessiondataupdated!<P>Yoursessioncontains:<fontcolor

=red>"&Session("MySession").ToString()&"</font>"

EndSub

SubCheckSession(sendsrAsObject,eAsEventArgs)

If(Session("MySession")IsNothing)Then

spanl.InnerHtml="NOTHING,SESSIONDATALOST!"

Else

spanl.InnerHtml="Yoursessioncontains:<fontcolor=red>"&

Session("MySesson").ToString()&"</font>"

EndIf

EndSub

</script>

<formrunat="server"id="Form2">

<inputid="textl"type="text"runat="server"name="textl">

<inputtype="submit"runat="server"OnServerClick="Session_Add"

value="AddtoSessionState"id="Submitl"name="Submitl">

<inputtype="submit"runat="server"OnServerClick="CheckSession"

value="ViewSessionState"id="Submit2"name="Submit2">

</form>

<hrsize="l">

<fontsize="6"><spanid="spanl"runat="server"/></font>

这个SessionState.aspx的页面可以用来测试在当前的服务器上是否丢失了Session信息。

将服务器Session信息存储在进程中

让我们来回到Web.config文件的刚才那段段落中:

<sessionstate

mode="InProc"

stateConnectionString="tcpip=:42424"

sqlConnectionString="datasource=127.0.0.l;Trusted_Connection=yes"

cookieless="false"

timeout="20"

/>

当mode的值是InProc时,说明服务器正在使用这种模式,

这种方式和以前ASP中的模式•样,就是服务器将Session信息存储在IIS进程中。当HS关闭、

再起后,这些信息都会丢失。但是这种模式也有自己最大好处,就是性能最高。应为所有的Session信息

都存储在了HS的进程中,所以HS能够很快的访问到这些信息,这种模式的性能比进程外存储Session

信息或是在SQLServer中存储Session信息都要快上很多。这种模式也是ASP.NET的默认方式.

好了,现在让我们做个试验。打开刚才的SessionState.aspx页面,随便输入一些字符,使其存储

在Session中。然后,让我们让HS重起。注意,并不是使当前的站点停止再开始,而是在IIS中本机的

机渊名的节点上点击鼠标右犍,选择重新启动(想当初使用NT4时,重新启动HS必须要重新启动

计算机才行,微软真是@#$%人&)返回到Sessionstate.aspx页面中,检查刚才的Session信息,发现

信息已经丢失了。

将服务器Session信息存储在进程外

首先,让我们来打开管理工具->服务,找到名为:ASP.NETStateService的服务,启动它。实际

上,这个服务就是启动一个要保存Session信息的进程。启动这个服务后,你可以从Windows任务管理

器・>进程中看到一个名为aspnet_state.exe的进程,这个就是我们保存Session信息的进程。

然后,回到Web.config文件中上述的段落中,将mode的值改为StateServero保存文件后的重新

打开一个1匕打开sessionstate.aspx页面,保住一些信息到Session中。这时,让我们重起US,再

回到SessionState.aspx页面中查看刚才的Session信息,发现没有丢失。

实际上,这种将Session信息存储在进程外的方式不光指"以将信息存储在本机的进程外,还可以将

Session信息存储在其他的服务器的进程中。这时,不光需要将mode的值改为StateServer,还籥要在

stateConnectionString中配置相应的参数。例如你的计算你是,你想把Session存储在

IP为的it算机的进程中,就帝要设置.成这样:stateconnectionstrlng="tcpip=192.16

8.0.2:42424"。当然,不要忘记在的计算机中装上.NETFramework,并且启动ASP.N

ETStateServices服务。

将服务器Session信息存储在SQLServer中

首先,还是让我们来做一些准备工作。启动SQLServer和SQLServer代理服务。在SQLServer

中执行一个叫做InstalISqIState.sql的脚本文件。这个脚本文件将在SQLServer中创建一个用来专门

存储Session信息的数据电及一个维护Session信息数据库的SQLServer代理作业。我们可以在以

下路径中找到那个文件:

[systemdrive]\winnt\Microsoft.NET\Framework\[version]\

然后打开查询分析器,连接到SQLServe「服务器,打开刚才的那个文件并且执行。稍等片刻,数据

库及作业就建立好了。这时,你可以打开企业管理器,看到新增了一个叫ASPState的数据库。但是这个

数据库中只是些存储过程,没有用户表。实际上Session信息是存储在了tempdb数据库的ASPSrateT

empSessions表中的,另外一个ASPStateTempApplications表存储了ASP中Application对象信息。

这两个表也是刚才的那个脚本建立的。另外查看管理->SQLServer代理。作业,发现也多了一个叫做A

SPState_Job_DeleteExpiredSessions的作业,这个作业实际上就是每分钟去ASPStateTempSessi

ons表中删除过期的Session信息的。

接着,我们返回到Web.config文件,修改mode的值改为SQLServer。注意,还要同时修改sql

Connectionstring的值,格式为:

sqlConncctionString-"datosource-localhost;IntegratedSccurity-SSPI;"

其中datasource是指SQLServed艮务器的IP地址,如果SQLServer与US是一台机子,写1

就行了。IntegratedSecurity=SSPI的意思是使用Windows集成身份验证,这样,访问数

据库将以ASP.NET的身份进行,通过如此配置,能够获得比使用userid=sa;password=口令的SQLS

erver验证方式更好的安全性。当然,如果SQLServer运行于另一台计算机上,你可能会需要通过Acti

veDirectory域的方式来维护两边验证的一致性。

同样,让我们做个试验。句SessionState.aspx中添加Session信息,这时发现Session信息已经

存在SQLServer中了,即使你重起计算机,刚才的Session信息也不会丢失。现在,你已经完全看见了

Session信息到底是什么样子的了,而且又是存储在SQLServer中的,能干什么就看你的发挥了,哈哈。

总结

通过这篇文章,你可以看到在Session的管理和维护上,ASP.NET比ASP有了很大的进步,我们可

以更加随意的挑选适合的方法广。对于企业级的应用来说,这无疑对于服务器的同步、服务器的稳定性、

可靠性都是有利的。相信在强大的微软支持下,新一代的电子商务平台耨会搭建的更好!

同时.,大家也会发现,在这个整个技术中包括了操作系统、Web服务及数据库多种技术的整合。我相

信,也许Windows没有Unix稳定,HS没有Apache稳定,SQLServer也没有Oracle强大,但是,

谁可以将他们如此完美的联动到一起呢?所以说,虽然微软每一方面都不是太强,但是如果把微软的东西

都整合到一起,谁敢说他不强大呢?微软就是微软!

javascript事件列表解说

javascript事件列表解说

事件浏览器支持解说

—onclickIE3、N2鼠标点击时触发此事件

般ondblclickIE4、N4鼠标双击时触发此事件

onmousedownIE4、N4按下鼠标时触发此事件

onmouseupIE4、N4鼠标按下后松开鼠标时触发此事件

onmouseoverIE3、N2当鼠标移动到某对象范围的上方时触发此事件

onmousemoveIE4、N4鼠标移动时触发此事件

onmouseoutIE4、N3当鼠标离开某对象范围时触发此事件

onkeypressIE4、N4当键盘上的某个键被按下并且释放时触发此事件.

onkeydownIE4、N4当键盘上某个按键被按下时触发此事件

onkeyupIE4、N4当键盘上某个按键被投放开时触发此事件

onabortIE4、N3图片在下载时被用户中断

onbeforeunloadIE4、N当前页面的内容将要被改变时触发此事件

onerrorIE4、N3出现错误时触发此事件

、页面内容完成时触发此事件

面onloadIE3N2

相onmoveIE、N4浏览器的窗口被移动时触发此事件

onresizeIE4、N4当浏览器的窗口大小被改变时触发此事件

onscrollIE4、N浏览器的滚动条位置发生变化时触发此事件

浏览器的停止按钮被按下时触发此事件或者正在下载的文件被

onstopIE5、N

中断

onunloadIE3、N2当前页面将被改变时触发此事件

1

友onblurIE3、N2当前元素失去焦点时触发此事件

单.

onchangeIE3、N2当前元素失去焦点并且元素的内容发生改变而触发此事件

onfocusIE3N2当某个元素获得焦点时触发此事件

onresetIE4N3当表单中RESET的属性被激发时触发此事件

Ji

件onsubmitIE3N2一个表单被递交时触发此事件

滚onbounceIE4、N在Marquee内的内容移动至Marquee显示范国之外时触发此

事件

onfinishIE4、N当Marquee元素完成需要显示的内容后触发此事件

‘幕

onstartIE4、N

1;当Marquee元素开始显示内容时触发此事件

1

onbeforecopyIE5、N当页而当前的被选择内容将要豆制到浏览者系统的剪贴板前触

发此事件

onbeforecutIE5,N当页面中的一部分或者全部的内容将被移离当前页面[剪贴]并

移动到浏览者的系统剪贴板时触发此事件

onbeforeeditfocusIE5、N当前元素将要进入编辑状态

onbeforepasteIE5,N内容将要从浏览者的系统剪贴板传送[粘贴]到页面中时触发此

事件

onbeforeupdateIE5、N当浏览者粘贴系统剪贴板中的内容时通知目标对象

oncontextmenuIE5、N当浏览者按下鼠标右键出现菜单时或者通过键盘的按键斛发页

面菜单时触发的事件

oncopyIE5、N当页面当前的被选择内容被复制后触发此事件

件oncutIE5、N当页面当前的被选择内容被剪切时触发此事件

ondragIE5、N当某个对象被拖动时触发此事件[活动事件]

ondragdropIE、N4•个外部对象被鼠标拖进当前窗口或者帧

ondragendIE5,N当鼠标拖动结束时触发此事件,即鼠标的按钮被释放了

ondragenterIE5、N当对象被鼠标拖动的对象进入其容器范围内时触发此事件

ondragleaveIE5、N当对象被鼠标拖动的对象离开其容器范围内时触发此事件

ondragoverIE5、N当某被拖动的对象在另•对象容器范闱内拖动时触发此事件

ondragstartIE4、N当某对象将被拖动时触发此事件

ondropIE5、N在一个拖动过程中,释放鼠标键时触发此事件

onlosecaptureIE5、N当元素失去鼠标移动所形成的选择焦点时触发此事件

onpasteIE5、N当内容被粘贴时触发此事件

onselectIE4、N当文本内容被选择时的事件

onselectstartIE4、N当文本内容选择将开妗发生时触发的事件

onafterupdateIE4、N当数据完成由数据源到对象的传送时触发此事件

oncellchangeIE5、N当数据来源发生变化时

ondataavailableIE4、N当数据接收完成时触发事件

ondatasetchangedIE4、N数据在数据源发生变化时触发的事件

ondatasetcompleteIE4、N当来子数据源的全部有效数据读取完毕时触发此事件

,据

onerrorupdateIE4、N当使用onBeforeUpdate事件触发取消了数据传送时.,代替o

nAfterUpdate事件

onrowenterIE5、N当前数据源的数据发生变化并且有新的有效数据时触发的事件

onrowexitIE5sN当前数据源的数据将耍发生变化时触发的事件

onrowsdeleteIE5、N当前数据记录将被删除时触发此事件

onrowsinsertedIE5sN当前数据源将要插入新数据记录时触发此事件

onafterprintIE5、N当文档被打印后触发此事件

onbeforeprintIE5、N当文档即将打印时触发此事件

onfilterchangeIE4、N当某个对象的滤镜效果发生变化时触发的事件

onhelpIE4、N当浏览者按下F1或者浏览器的帮助选择时触发此事件

■11

当对象的属性之一发生变化时触发此事件

件onpropertychangeIE5,N

onreadystatechangIE4、N

当对象的初始化属性值发生变化时触发此事件

e

附录资料:

Ehcache缓存配置

简介

Cache的配置很灵活,官方提供的Cache配置方式有好几种。你可以

通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传

入不同的参数。

你可以将Cache的配置从代码中剥离出来,也可以在使用运行时配

置,所谓的运行时配置无非也就是在代码中配置。以下是运行时配置

的好处:

•在同一个地方配置所有的Cache,这样很容易管理Cache的

内存和磁盘消耗。

•发布时可更改Cache配置。

•可再安装阶段就检查出配置错误信息,而避免了运行时错误。

本文将会对ehcache.xml配置文件进行详细的阐述。在配置的时可以

拷贝一个现有的ehcache.xml,如果没有请点击这里去下载。

ehcache-failsafe.xml

如果你调用了CacheManager默认构造方法去创建CacheManager的实

例,此方法会到classpath中找ehcache.xml文件,否则它会到类路

径下找ehcache-failsafe.xml文件。而ehcache-failsafe.xml被包

含在jar包中,所有它肯定能找的到。

ehcache-failsafe.xml提供了一个非常简单的默认配置,这样可以

使用户在没有创建ehcache.xml的情况下使用Ehcache。

不过这样做Ehcache会提醒用户创建一个正确的Ehcache配置。

ehcache.xml片'段:

<ehcache>

<diskStorepath二〃java.io.tmpdir〃/>

<defaultCache

maxElementsInMemory=〃10000〃

eternal二〃false”

tinieToTdleSeconds=,/120,/

timeToLiveSeconds=/,l20〃

overflowToDisk=/,truez,

maxElementsOnDisk=”10000000〃

diskPersistem二〃false”

diskExpiryThreadIntervalSeconds=,/120

memoryStoreEvictionPolicy=,,LRU,z

/>

</ehcache>

ehcache.xml和其他配置文件

在Ehcache-1.6之前的版本,只支持ASCII编码的ehcache.xml配置

文件。在Ehcach-1.6之后版本中,支持UTF8编码的ehcache.xml配

置文件。因为向后兼容,所有采用ASCII编码的配置文件完全没有必

要转换为UTF8。

一个CacheManager必须要有一个XML配置。由于磁盘路径或是监听

端口,多个CacheManager使用同一个配置文件时会出现错误。

下面是ehcache.xml具体实例以及配置指南

<ehcache

xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

•CacheManager配置

Dmu11icastGroupPort=4446,这样可以配置监听端口。

•DiskStore配置

如果你使用的DiskStore(磁盘缓存),你必须要配置DiskStore配

置项。如果不配置,Ehcache将会使用java.io.tmpdiro

diskStroe的“pata”属性是用来配置磁盘缓存使用的物理路径的,

Ehcache磁盘缓存使用的文件后缀名是.data和.index。

<disStorepalh="java.io.tmpdir”/>

•CacheManagerEventListener酉己置

我们通过CacheManagerEventListenerFactory可以实例化一个

CacheManagerPeerProvider,当我们从CacheManager中added和

removedCache时、将通知CacheManagerPeerProvider,这样一来,

我们就可以很方面的对CacheManager中的Cache做一些统计。

注册到CacheManager的事件监听类名有:addingaCache和

removingaCache

<cacheManagerEventListenerFacotoryclass二"“

properties="”/>

•CacheManagerPeerProvider酉己置

在集群中CacheManager配置CacheManagerPeerProviderFactory创

建CacheManagerPeerProvidero具体的实例如下:

<cacheManagerPeerProviderFactoryclass=,,net.sf.ehcache.distr

ibution.

RMTCacheManagerPeerProviderFactory,z

properties=z/peerDiscovery=manual,

rmiUrls=//server1:40000/sampleCachel//server2:40000/seimple

Cache1

//serveri:40000/sampleCache21//server2:40000/sampleCache2,,

propertySeparator=〃,〃/>

•CacheManagerPeerListener配置

CacheManagerPeerListener配置是用来监听集群中缓存消息的分发

的。

<cacheManagerPeerListenerFactory

class=〃net・sf.ehcache.distribution.RMICacheManagerPe

erListenerFactory,/

properties=/zhostName=fully_qualifieci_hostname_or_ip,

port=40001,

socketTimeoutMiHis=120000"

propertySeparator="/>

•Cache配置

•name:Cache的唯一标识

•maxE1ementsInMemory:内存中最大缓存对

象数。

•maxElementsOnDisk:磁盘中最大缓存对象

数,若是0表示无穷大。

•eternal:Element是否永久有效,一但设

置了,timeout将不起作用。

•overflowToDisk:配置此属性,当内存中

Element数量达到maxElementsInMemory时,Ehcache将会Element

写到磁盘中。

•timoToTdleSeconds:设置Element在失效

前的允许闲置时间。仅当element不是永久有效时使用,可选属性,

默认值是0,也就是可闲置时间无穷大。

timeToLiveSeconds:设置Element在失效

前允许存活时间。最大时间介于创建时间和失效时间之间。仅当

element不是永久有效时使用,默认是0.,也就是element存活时间

无穷大。

•diskPersistent:是否缓存虚拟机重启期

数据。(这个虚拟机是指什么虚拟机一直没看明白是什么,有高人还

希望能指点一二)。

•diskExpiryThreadlntervalSeconds:磁盘

失效线程运行时间间隔,默认是120秒。

•diskSpoolBufferSizeMB:这个参数设置

DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都

应该有自己的一个缓冲区。

•memoryStoreEvictionPo1icy:当达至U

maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理

内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进

先出)或是LFU(较少使用)。这里比较遗憾,Ehcache并没有提供

一个用户定制策略的接口,仅仅支持三种指定策略,感觉做的不够理

想。

•CacheExceptionHandlingRfi

<cacheExceptionIIcndlerFactory

class=〃com.example.ExampleExceptionHandlerFactory/z

proper

ties二〃logLevel=FINE〃/>

总结

这里只对通用缓存的配置做了详细的阐述:至于RMI缓存和集群缓存

可以参考这里。

下面给出几个配置示例:

•Ehcache默认Cache配置

<defaultCache

m£xElementsInMemory=z,10000z,

eternal=〃false”

timeToIdleSeconds=/,120//

timeToLiveSeconds=,,120//

overflowToDisk二〃true”

diskSpoo1BufferSizeMB=z/30

niaxElementsOnDisk=〃10000000〃

diskPorsistent二〃false”

diskExpiryThreadTntervalSeconds="120〃

memoryStoreEvictionPolicy二〃LRU〃

/>

Samp1eCache1配置

简单配置,在ehcache.xml文件中有此配置,在使用Ehcache前最好

将其删除掉,自己配置。

缓存名sampleCachel,内存中最多可缓存10000个Element,其中的

element会在闲置5分钟或是存活10分钟之后失效。

超过lOOOOelement时,element将会输出到磁盘中,输出路径是

java.io.tmpdir。

<cachename二〃sampleCachel”

maxElementsInMemory=",10000/,

maxElements0nDisk=zz1000/,

eternal二〃false”

overf1owToDisk=//1rue〃

diskSpoolBufferSizeMB=,,20,z

timeToIdleSeconds=/,300//

timeToLiveSeconds=〃600〃

memoryStoreEvictionPo1icy二〃LFU〃

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论