- 浏览: 229569 次
- 性别:
- 来自: 常州
文章分类
- 全部博客 (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 818缓存(Cache) 如果每次进入页面的时候都查询数据库生产的 ... -
ASP.NET 异常处理
2013-04-21 17:38 475ASP.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 1210Request对象 Page类的一个 ... -
ASP.NET中的三层架构
2012-11-18 15:42 841三层架构 1.分层是一种思想,把属于每块功能区域的功能抽取出 ... -
ASP.NET全局应用程序类
2012-11-17 23:57 3124全局文件 新建全局文件 Visual Studio ... -
ASP.NET中使用Ajax
2012-11-17 22:42 894方法一:使用一般处理程序 asp.net可以使用一般处理 ...
相关推荐
ASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习...
ASP.NET学习资料 ASP.NET学习资料 ASP.NET学习资料
ASP.NET学习大全(整理)。。。学习ASP.NET好教程
ASP.NET学习大全经典总结ASP.NET学习大全经典总结
Asp.net学习文件
asp.net学习资料asp.net学习资料
ASP.NET 学习笔记 内包括很多实用的代码
C# , ASP.NET 学习心得C# , ASP.NET 学习心得
ASP.NET学习大全,包括以下文档: GridView导出excel 小山的TreeView数据绑定方法 ADO.NET在开发中的部分使用方法和技巧.txt ADO.NET中的视图和过滤器.doc ASP .NET - ArrayList对象.txt asp.net 2.0中TREEVIEW中...
ASP.Net学习之常用模块整理 .NET C sharp
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+asp.net学习教程ASP+asp.net学习教程ASP+asp.net学习教程ASP+asp.net学习教程ASP+asp.net学习教程ASP+asp.net学习教程
asp.net 学习心得和一些使用技巧
ASP.NET学习PDF有兴趣的可以下载去看,资源分数最少是1分,本来是想免费下载的
ASP.NET学习大全,笔者整理过的笔记,适合初学者。
ASP.NET学习大总结+笔记 分享一下啊
ASP.NET 学习 示例 源代码 下载ASP.NET 学习 示例 源代码 下载ASP.NET 学习 示例 源代码 下载ASP.NET 学习 示例 源代码 下载ASP.NET 学习 示例 源代码 下载ASP.NET 学习 示例 源代码 下载ASP.NET 学习 示例 源代码 ...
ASP.NET学习大全 ASP.NET学习大全 系统总结