- 浏览: 237045 次
- 性别:
- 来自: 常州
文章分类
- 全部博客 (165)
- Java基础 (49)
- 开发工具 (3)
- Python基础 (1)
- Oracle基础 (9)
- Java 符号计算 (0)
- 计算机基本原理 (10)
- SQL (6)
- javascript (16)
- HTML (2)
- XML (4)
- 程序员之路 (7)
- JDBC (1)
- Unicode (0)
- 字符编码 (3)
- JSP基础 (2)
- Servlet&JSP (9)
- MySQL基础 (1)
- UML基础 (1)
- Hibernate (2)
- Java包 (1)
- Spring (1)
- Struts2 (9)
- 系统命令 (1)
- Tomcat (1)
- Windows (1)
- Android (1)
- C#基础 (14)
- HTML5 (1)
- .NET基础 (1)
- 数据库基础 (2)
- ASP.NET基础 (7)
- 开源Java (3)
- 趣味算法 (1)
- 面向对象思想 (1)
- 软件应用 (1)
- Web工程 (1)
- jquery (2)
- JPA (0)
- 设计模式 (0)
最新评论
-
静夜独窗:
JavaBean组件能说的具体一点吗,我感觉这样说理解的不清晰 ...
EL 表达式语言 -
静夜独窗:
在Java中,不同字符集编码的转换是通过Unicode作为中介 ...
JavaWeb中的乱码产生与解决方案
WebForm
前台aspx:控制页面显示格式,后台cs:控制程序逻辑。
aspx文件 :后缀名aspx。一般称为Web窗体或WebForm。相当于模板,页面中有asp标签。asp标签 会asp.net引擎会自动 翻译成HTML。
cs文件 :后缀名aspx.cs。后台逻辑代码。cs可以访问aspx中的控件。aspx中也可以访问cs中定义的字段、函数。
aspx页面中可以想JSP那样写C#代码。
例:在页面中用C#写十个“你好”
<%for(int i=0;i<10;i++){ %>
你好
<%}%>
其他写法示例:
<%Response.Write("你好")%>
<%
for(int i=0;i<10;i++){
Response.Write("你好");
}
%>
<int age=30;>
不推荐这样写。但是一些简单的代码可以使用这种写法。比如输出值。
例:
在cs中有一个MyName的Page类的非私有的成员变量。显示在ASPX页面中。
<%=MyName%>
<%=GetMyName()%>
说明:= 等号 表示输出表达式的值。相对于调用Response.Write()方法。
aspx调用cs成员级别必须是protected或public,不能是private。
aspx,cs,dll之间的关系
通过反射可以看到:
1. cs的代码在实际执行的时候生成cs的类的子类。
2. aspx代码 与 cs代码 一起 经编译后生成在cs的类的子类中。
补充:C#中一切可执行的最终都编译成Assembly。
Page类
1. Request,Response,Server是Page类的属性。是对content.Request,content.Response,content.Server的简化调用。
2. AppRelativeVirtualPath属性:获得页面相对于应用跟路径的路径,比如~/Default2.aspx
3.FindControl(string ctrlid) 根据控件的Id找到控件。该方法返回控件实例。一般情况下,需要访问控件可以直接使用控件Id。但有些场合,使用ListView等。
4. IsPostBack属性
5.Session属性
6. ResolveClientUrl(url)将虚拟路径转换为客户端访问时的路径。
比如ResolveClientUrl("~a/b.aspx")结果是a/b.aspx,这通常在ListView等控件的模板中输出HTML使用。基本就是对VirtualPathUtility.ToAbslute简化调用。考虑当前页面的相对路径,生成的路径短。该方法比较常用。
7.ResolveUrl("~a/b.aspx")的结果就是 /WebSite/a/b.aspx 。不考虑当前页面,就是对VirtualPathUtility.ToAbslute的调用。
补充:
显示转换类型:使用as运算符。
服务器控件与HTML控件
1. HTML控件
运行在浏览器端,与服务器无关。
2. ASP.NET服务器控件
经过ASP.NET高度封装。
3. runat="server"的HTML控件
asp.net页面中,对普通html控件添加runat="server"属性,即可以在服务器端操作html控件。这种html控件运行在服务器端,需要被服务器引擎渲染。
这种控件在服务器端仅可使用比较简单的HTML属性,不如ASP控件编写方便。
应用:如果没有被ASP.NET封装的控件。比如:<td>
原生的html<input>等,就是html控件。
asp标签的控件,即服务器控件。
website与webapplication
(1)在后台修改代码,webapplication,需要重启浏览器才能生效。website不要重启,直接生效。
(2)webapplication显示namespace,为项目名称,website不显示namespace。
WebSite是为了兼容asp转过来的开发人员的习惯而存在的,使用比较方便。但是不利于工程化开发,比如代码出错不容易发现,代码不分命名空间。
website与webapplication开发技术上没有任何区别,只是开发,调式习惯不同。
如果需要的话,在Visual Studio中可以把WebSite转换为webapplication。
asp.net的所有提交都是post,get方式几乎不可用。
Post提交数据时,浏览器中点刷新,会提示“重试”。这是Post的最大缺陷。
虚拟路径
1.HTTP的定位:/ 表示网站根目录、../ 表示上级目录、./表示当前目录。
例:网站为localhost中,/a.html 表示localhost/a.html 。
2.ASP.NET中~表示从应用程序目录开始定义。特殊路径表示“~”,该符号只能在服务器控件使用。
如果HTML控件或者需要在代码中转换的话就可以使用VirtualPathUtility.ToAbsolute("~/a/b1.aspx")就是虚拟路径转换为相对于应用根路径的全路径,也就是/WebSite/a/b1.aspx
VirtualPathUtility主要方法:
string AppendTrailingSlash(string virtualPath)
如果路径最后没有"/"则添加;
string Combine(string basePath,string relativePath)
将两个路径合并。
string GetDirectory(string virtualPath)
返回虚拟路径的目录部分。
string MakeRelative(string fromPath,string toPath)
计算两个虚拟路径的相对路径。
string ToAbsolute(string path)
转换为绝对路径。
IsPostBack属性
页面中
Page_Load(){
if(!IsPostBack) //表示第一次加载页面。
{
}
}
IsPostBack表示是不是提交返回给服务器的数据处理。
所以如果!IsPostBack==true,则表示该过程是第一次加载页面,没有提交回服务器。
ViewState
ViewState存储非表单域,非value值的容器。所有webform都有viewstate。
注意:有些控件,是没有value概念的。则这些值无法提交给服务器,所以就放在viewstate中。而有value概念的控件,由于自身可以提交到服务器,所以不用放进viewstate,也能提交。
开发web页面,必须部分禁止viewstate。完成web页面之后,查看页面源码,如果viewstate的值很多,则必须要部分禁用viewstate。
禁用方法:
1.每个控件都有EnableViewState,设置false,则控件的viewstate就被禁用了。
2.禁用整个页面的ViewState的方法,
在asp最上面配置区<%@ Page Language="C#" AutoEventWiroup="true" VodeFile="XXX.aspx.cs" Inherits="XXX"%>
中放入EnableViewState="false"。
HTTP是无状态协议。ViewState可以使web应用变为有状态信息的。
ViewState的缺点
状态信息保存在隐藏字段中的缺点;加大网站的流量、降低访问速度,机密数据放到表达中会有数据前排等安全性问题。
注意:
禁用了ViewState就无法得到上次给客户端的值了。即禁用了ViewState之后,对写页面中的值无影响,但对读取会有影响。
ASP.NET中的超链接提交请求与表单提交请求
1. 通过表单提交数据至服务区,页面会将ViewState提交。有回发状态,IsPostBack=true。
2. 通过超链接提交,也就是通过Get方式提交。页面不会发送ViewState。也就是每一次超链接请求的IsPostBack=false,即每次超链接请求都是第一次请求。
注意:LinkedButton虽然看起来像超链接,但实际也是要提交表单的。
数据绑定控件
数据绑定分为数据源和数据绑定控件。
数据绑定控件通过数据源来获得数据,通过数据源来隔离数据提者和数据使用者。
数据绑定控件通过数据源来对数据进行修改。
数据源有SqlDataSource,AccessDataSource,ObjectDataSource,LinqDataSource,EnityDataSource,XmlDataSource等(SiteMapDataSource是SiteMap专用数据源),由于大部分项目都不会页面直接连数据库,所以SqlDataSource,AccessDataSource不会使用,LinqDataSource,EnityDataSource只有在很极端的采用Linq、Enity Framework的项目中才会用。
XmlDataSource是处理XML数据时才可能会用。
ObjectDataSource是web开发中应用最广的数据源。
数据绑定控件有列表数据绑定控件:DropDownList、RadioButtonList、ListBox、CheckBoxList、BulletedList等。和复杂控件:DataGrid、GridView、DetailsView、FormView、ListView,Repeater、DataList等。
复杂控件中DataGrid已经不推荐使用。Repeater是最轻量级的组件,在互联网的前台用的最多。ListView是ASP.NET 3.5新增的控件,ListView是GridView,FormView,Repeater。DataList等控件的统一。这些控件的优点ListView都有。
ObjectDataSource用来将一个类(大部分情况类是使用DataSet)作为数据源,TypeName属性是数据源类的全名,有DeleteMethod,InsertMethod,SelectMethod,UpdateMethod等几个属性,分别为类中删,插,更新的方法名,这些方法可能有参数,参数的值通过DeleteParameters,UpdateParameters,InsertParameters等嵌套节点设置。
数据绑定控件可以使用Visual studio配置使得控件绑定到ObjectDataSource等。也可以使用手工方式绑定。
例:
BulletedList.DataSource=new int[]{1,2,3,4};//一般实现IEnumerable接口的数据都可以设置。
BulletedList.DataBind();//表示刷新数据显示。该句不能少。
数据绑定控件的AppendDataBoundItems属性,表示将数据绑定项追加到静态声明列表项上。
Reapter
轻量级,Repeat通常用于数据展示。不适合操组数据。
生产导向。
ListView
重量级,ListView方便操作数据,
错误页
配置错误页
配置web.config,配置customErrors区域。
<customErrors mode="RemoteOnly" redirectMode="ResponseRewrite" defaultRedirect="MyErrorPage.aspx">
<error statusCode="403" redirect="~/NoAccess.htm" />
<error statusCode="404" redirect="~/FileNotFound.htm">
</customErrors >
defaultRedirect表示,发生错误需要被现实的页面。
<error statusCode>是指定特殊的错误处理页面。
~/NoAccess.htm 表示虚拟路径。
mode有三个可选值(注意大小写):
On: |
总是显示错误页面。 |
Off: | 不使用错误页面。即不做任何异常处理。 |
RemoteOnly: | 本机的访问显示调用堆栈等异常信息,对外部用户的现实定制错误页面。 |
说明:
1.一般设置mode="RemoteOnly",网站服务器的管理者可以在服务器的浏览器中看到详细错误信息,网站外部用户会显示异常处理页面。
2.演示异常处理页时,使用mode="On"。
redirectMode表示发生错误之后,页面跳转的方式。一般redirectMode有两种值"ResponseRewrite"和"ResponseRedirect"。默认为" ResponseRedirect "。
在错误处理时,如果要在错误页面中取得异常对象,必须设置redirectMode=" ResponseRewrite "。
因为如果是"ResponseRedirect",则表示客户端重定向,即客户端重新发送一次新HTTP请求给异常处理页面。由于是新的请求,异常处理页面无法取得之前一次请求的异常对象。
而"ResponseRewrite"表示直接从服务器输出页面给服务器,相对于在服务器内部做了页面跳转。没有新的请求,获得本次异常对象。所以必须采用这种方式。
使用asp页面
在asp页面中,可以处理异常信息,比如将异常写入日志中。
在asp中处理异常信息方式:
Page_Load(){
if(!IsPostBack) //表示第一次加载页面。
{
Exception ex=HttpContext.Current.Server.GetLastError(); //获得异常对象。
//日志记录 ex.Message 和 ex.StackTrace
}
}
注意,错误处理页面如果发生错误的话,就不能处理之前异常了。
在异常处理页面中判断Request.UserHostAddress来者之某些Ip可以看到异常,也可以读取Session,让网站后台管理员可以看到异常。
发表评论
-
ASP.NET 页面数据绑定
2012-12-08 12:09 31. 使用<%# %> CS代码 pub ... -
ASP.NET缓存
2012-11-21 00:23 847缓存(Cache) 如果每次进入页面的时候都查询数据库生产的 ... -
ASP.NET 异常处理
2013-04-21 17:38 522ASP.NET项目开发中应用程序异常处理主要是页面和 ... -
Server对象
2012-11-20 23:15 14Server对象 context的一个属性,是HttpSer ... -
Response对象
2012-11-20 22:43 10Response对象 Page类的一个属性。 响应的 ... -
ASP.NET Request Response Server
2012-11-19 22:22 1248Request对象 Page类的一个 ... -
ASP.NET中的三层架构
2012-11-18 15:42 883三层架构 1.分层是一种思想,把属于每块功能区域的功能抽取出 ... -
ASP.NET全局应用程序类
2012-11-17 23:57 3190全局文件 新建全局文件 Visual Studio ... -
ASP.NET中使用Ajax
2012-11-17 22:42 925方法一:使用一般处理程序 asp.net可以使用一般处理 ...
相关推荐
ASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习...
本资源"ASP.NET学习大全(整理)"是一个全面的教程集合,旨在帮助学习者系统地掌握ASP.NET的核心概念和技术。 1. **基础概念**: - ASP.NET架构:了解ASP.NET的基础框架,包括页面生命周期、事件处理模型以及如何...
这个“Asp.net学习文件”压缩包包含了一份名为"Asp.net夜话.pdf"的学习资料,这通常是一本深入浅出的教程或者是一位专家的经验分享,旨在帮助初学者或有经验的开发者更好地理解和掌握Asp.NET的核心概念和技术。...
总之,ASP.NET学习笔记涵盖了从基础到高级的诸多主题,包括但不限于ASP.NET的架构、Web Forms和MVC的区别、控件使用、身份验证与授权、数据库操作、路由和视图解析、ASP.NET Core的特性等。无论你是初学者还是有经验...
这个“ASP.NET学习资料汇总”显然是一份全面的学习资源集合,涵盖了从基础概念到进阶技巧的多个方面。 在“常用代码”部分,你可以期待找到ASP.NET开发中常用的代码片段,如页面生命周期管理、数据绑定、用户控件...
本压缩包包含的资源是关于ASP.NET的学习资料,包括“ASP.NET学习大全”,这可能是一本详细的教程或者一系列的学习笔记。 在学习ASP.NET时,首先需要理解其基本概念。ASP.NET不仅仅是一种编程语言,更是一个包含了...
ASP.NET是微软公司推出的一种用于构建动态网站、...通过深入学习这些知识点,并结合提供的ASP.NET学习资料,开发者不仅可以理解ASP.NET的工作原理,还能熟练运用到实际项目中,构建出高效、稳定、可扩展的Web应用程序。
**ASP.NET学习手册** ASP.NET是微软公司推出的一种用于构建Web应用程序的开发框架,它基于.NET Framework,旨在简化Web开发过程,提供高效、安全且可扩展的解决方案。本手册将深入探讨ASP.NET的核心概念和技术,...
这个“ASP.NET学习资料”压缩包包含了针对初学者的基础知识,旨在帮助他们快速入门并掌握ASP.NET的核心概念。 在ASP.NET环境中,开发者通常使用C#作为编程语言,因为它是.NET Framework的主要支持语言之一。C#是一...
这个“ASP.NET学习大全(初学者整理过的笔记)”包含了作者在学习过程中整理的重要概念、技术和实践,非常适合那些希望入门ASP.NET的开发者。 1. **ASP.NET概述** ASP.NET是一个强大的开发平台,它提供了丰富的工具...
《ASP.NET学习手册光盘代码》是一本由明日科技社出版的综合性教程,涵盖了ASP.NET技术的各个方面,旨在帮助读者从基础到高级逐步掌握这项强大的Web开发框架。书中的内容分为四大篇,分别是基础篇、核心篇、高级篇和...
这份“ASP.NET学习大总结+笔记”涵盖了从基础概念到高级特性的全面知识,是学习和巩固ASP.NET技术的宝贵资料。 一、ASP.NET简介 ASP.NET是服务器端的编程模型,它允许开发人员使用多种编程语言(如C#、VB.NET)创建...
这个“asp.net学习文档精华版”包含了作者在学习ASP.NET过程中积累的经验和解决问题的方法,是学习ASP.NET的宝贵资料。 1. **基础概念** - ASP.NET:它是.NET Framework的一部分,用于构建动态网站、Web应用程序和...
本经典总结将深入探讨ASP.NET的学习要点,帮助你全面掌握这一强大的技术。 一、ASP.NET概述 ASP.NET是服务器端的编程模型,它允许开发者使用多种编程语言(如C#、VB.NET)来创建动态网页和Web服务。ASP.NET的核心...
ASP.NET学习大全,包括以下文档: GridView导出excel 小山的TreeView数据绑定方法 ADO.NET在开发中的部分使用方法和技巧.txt ADO.NET中的视图和过滤器.doc ASP .NET - ArrayList对象.txt asp.net 2.0中TREEVIEW中...
ASP.net 各种方法技巧全部...ASP.NET学习大全(整理)ASP.NET学习大全(整理) ASP.NET学习大全(整理) ASP.NET学习大全(整理) ASP.NET学习大全(整理) ASP.NET学习大全(整理) ASP.NET学习大全(整理) ASP.NET学习大全(整理)
C#.NET ASP.NET学习资料目录(带链接).rarC#.NET ASP.NET学习资料目录(带链接).rarC#.NET ASP.NET学习资料目录(带链接).rarC#.NET ASP.NET学习资料目录(带链接).rarC#.NET ASP.NET学习资料目录(带链接).rar
这份“ASP.NET学习PPT”显然是一份关于如何使用ASP.NET进行应用开发的教程资料,适用于初学者和有一定基础的开发者,帮助他们深入理解和实践ASP.NET的技术要点。 在ASP.NET中,Web应用程序主要由服务器控件、页面...
本"ASP.NET学习大全"涵盖了从基础到高级的全方位知识,旨在帮助学习者系统掌握ASP.NET的核心概念和技术。 1. **ASP.NET架构与工作原理** ASP.NET基于HTTP协议,通过控件模型、页面生命周期和事件驱动模式来处理Web...