对.net网站开发认识(一)————前后台页面调用

最近在学习.net的东西,现在才算是真正开始.net技术的学习,原来运用的只是皮毛。

学习ASP.NET的第一步,是要弄清它的原理。为什么aspx页面在点击相应按钮后会发生不同的变化,与HTML页面有哪些不同,.net的控件到底是什么,这些都是需要一点点弄清的。

首先,我们要弄清楚.NET的前后台页面调用原理。简单说来,当一个客户端请求被提交时,第一步会被.NET服务器解析,根据页面后缀名的不同,根据IIS中的配置,服务器调用aspnet_isapi.dll这个扩展程序,然后通过一系列的HTTP模块,最终到达一个HTTP处理程序,HTTP处理程序会针对客户端传来的相应请求,处理好页面,再回发给客户端。

做一个小实验,在.NET新建的网站项目中,新建一个HTML页面,而不是ASPX页面。然后再新建一个一般处理程序,一般处理程序的后缀名为.ashx。它默认内容如下

 

这就是一个最基本的HTTP处理程序,这个程序的大体功能就是,回发一个包含“HELLO WORLD”的HTML页面,稍后做详细说明。

我们在新建的HTML页面中的BODY部分添加如下代码

    <form action="TestHandler.ashx" method="get">
        <input id="Submit1" type="submit" value="submit" />
    </form>

这是一个简单的表单,它的action属性表明,我们会将页面提交给我们自定义的HTTP处理程序,采用GET地址栏传参的方法,点击提交按钮,表单会进行提交。

要注意,我们要采用VS中的开发服务器来运行这个网站,这样HTTP处理程序才会起作用,如果用IIS运行的话还需详细配置。

然后我们运行这个HTML页面,点击提交按钮,会出现如下界面

这个就是.NET处理页面的基本原理雏形,我们的ASPX页面实质也是应用了HTTP处理程序。

我们在ASPX页面上的第一行中(<%@%>其中的代码)可以找到Inherits这个属性,表示这个前台页面在C#中的实际类名,例如_Default。接下来我们双击ASPX页面的后置代码,如下图

它表明我们这个控制前台页面的类和前台页面其实是一个类,只是通过partial关键字将前后台代码分隔开来。

我们还发现这个_Default类还继承与Page这个.NET内置的类,我们去MSDN查查看。

 

由此看来,Page类继承自IHttpHandler类,这就是我们的HTTP处理程序类了。

这样我们了解到,ASPX页面其实也是一个HTTP处理程序,只不过它封装的更加智能,便于开发者更好的控制HTML上的各个元素。

先写到这里,本人只是个大学生,理解错的地方请大牛们一定要指出。

posted on 2013-02-20 18:44  叶刀刀  阅读(709)  评论(0编辑  收藏  举报

导航