首页 > 编程 > .NET > 正文

.NET之ASP Web Application快速入门(3)(转载)

2024-07-10 13:05:07
字体:
来源:转载
供稿:网友
文件global.asax

除了编写ui(use interface:用户界面)以外,我们还可以在web
application中添加"application"级别的控制逻辑代码以及事件触发程
序。这些代码不会去操作产生ui,并且基本上不会响应于单独的页面请
求,它们负责的是处理高级别的application事件,包括
application_start、application_end、session_start和
session_end。这些控制逻辑代码位于web
application所在虚拟目录结构根目录下的global.asax文件中,
asp.net自动地解析这个文件并编译为动态.net框架类。这个类扩充了
httpapplication基类,当位于application名字空间内的任意资源或
url被首次访问时,它就被创建。


global.asax文件本身经过了设置,任何关于它的直接url请求都会被自
动拒绝,从而保证了外部用户无法下载它并浏览其内容。

application 或 session作用范围内的事件


我们可以在global.asa文件中编写方法以定义有关httpapplication基
类的事件触发程序,方法的命名要匹配于字符串"application_事件名
称"。比如,请看下面使用vb、c#以及jscript三种语言编写的代码:

c#


<script language="c#" runat="server">

void application_start() {
  // application startup code goes here  
}
</script>

vb

<script language="vb" runat="server">

sub application_start()
  ’ application startup code goes here  
end sub
</script>

jscript

<script language="jscript" runat="server">

function application_start() : void {
  // application startup code goes here  
}
</script>

如果事件触发代码需用输入另外的名字空间,我们可以在.aspx页面中编
写类似如下代码的输入标识:

<%@ import namespace="system.text" %>


下面的例子图解了application、session 和request 的生存期:

application1.aspx


[]点击这里运行例程]
| []查看源代码]


页面首次打开时,将激活application和session的onstart事件。关于
这些事件触发程序,请看下面使用vb、c#以及jscript三种语言编写的代
码:

c#


void application_start() {
  response.write("application is starting...");
}

void session_start() {
  response.write("session is starting...");
  session.timeout = 1;
}

vb

sub application_start()
  response.write("application is starting...")
end sub

sub session_start()
  response.write("session is starting...")
  session.timeout = 1
end sub

jscript

function application_start() : void {
  response.write("application is starting...");
}

function session_start() : void {
  response.write("session is starting...");
  session.timeout = 1;
}

每次请求发生时,都会激活beginrequest 和endrequest 事件。比如,
当页面被刷新时,来自beginrequest、endrequest
和page_load 方法的信息将显现出来。注意,当放弃当前的session时
(点击"end this session"按钮),将产生一个新session,接着再次
触发session_onstart事件。  


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表