1、第九章 ASP.NET基础,-系统对象,系统对象,Page对象Request对象Response 对象Application对象Session 对象Cookie 对象Server 对象,系统对象,JSP和ASP.NET中的常见系统对象对比。,注意:JSP和ASP.NET中对象的大小写不同,Page对象,每个.aspx文件对应一个Page对象.aspx与后台代码类(局部类)合并生成页面类Page对象是页面类的实例所有的.aspx文件(Web窗体页)都继承自System.Web.UI.Page类,查看源视图,Page指令,指明页面代码和后置代码所使用的脚本语言,设置是否自动调用网页事件 ,默认为t
2、rue,指定代码后置文件,该文件包含此页面的局部类,代码后置的类,局部类, Page指令定义了 ASP.NET 页用于编译和解析的属性。每个aspx页面只能有一个Page指令,页面输入输出控制,Request对象获得页面输入URL传参Form表单提交Response 对象在页面输出要显示的内容重定向,Request对象,Request对象主要提供对当前页请求的访问,其中包括请求标题、Cookies、客户端证书、查询字符串等。该对象派生自HttpRequest类,是Page类的成员。它的主要功能是从客户端浏览器取得数据,包括浏览器种类、用户输入表单中的数据、Cookies中的数据和客户端认证等。
3、,Request对象的常用属性,Request对象应用示例,1获取文件的路径信息 Request对象的Url、UserHostAddress、PhysicalApplicationPath、CurrentExecutionFilePath和PhysicalPath属性能够分别获取当前请求的URL、远程客户端的IP主机地址、当前正在执行的服务器应用程序的根目录的物理文件系统路径、当前请求的虚拟路径及获取与请求的URL相对应的物理文件系统路径。,Request对象,如何获取传递过来的数据呢?,Request对象,ServerVariables 属性,Form 属性,Params 属性,QueryS
4、tring属性,获取通过URL路径传来的数据,获取通过表单提交传输的数据,获取Web服务器变量的集合,以上三种方式传输的内容都可以使用该属性获取,2.利用QueryString集合传递参数例如:http:/Localhost/MyPage/ShowPage.aspx?Id=2结果为Id=2,Name= Zhangsan ,接收到的数据类型为字符串型。,3利用Form集合接受表单数据 例如:Request.Form“TxtName”,表示获取表单中名为TxtName控件的值。4利用Browser对象获取浏览器信息 Request对象的Browser属性能够返回一个HttpBrowserCapab
5、ilities类型的集合对象。该集合对象可以取得目前连接到Web服务器的浏览器的信息。例如可以利用这个对象的一个属性确认访问者所使用的操作系统。,5利用ServerVariables集合列出服务器端环境变量 Request对象的ServerVariables集合返回一个NameValueCollection对象。在这个集合中,可以读取服务器端的环境变量信息。它由一些预定义的服务器环境变量组成,如发出请求的浏览器的信息、构成请求的HTTP方法、用户登录Windows的帐号、客户端的IP地址等。,综合示例,获取并打印浏览器的信息输出浏览器类型(IE/FireFox)输出相关版本信息输出客户端语言信
6、息,Request.ServerVariablesHTTP_USER_AGENT;/获取浏览器及版本Request.ServerVariablesHTTP_ACCEPT_LANGUAGE;/获取浏览器语言,Response 对象,Response 对象允许开发人员对当前页面的输出流进行操作,Response.对象,Redirect方法,Write方法,Response.Write(Hello,ACCP);,直接在页面上输出内容,重定向到另外一个页面,Response.Redirect(http:/);,页内数据传递,回发,ASP.NET Web页面,控件1,控件1,用户页面操作,Page.Is
7、PostBack属性,回传,首次加载,true,false,如何判断回发和首次加载?,关键代码:验证回传,IsPostBack常放置于Page_Load方法中用于首次加载页面时的初始化,protected void Page_Load(object sender, EventArgs e) if (Page.IsPostBack) . . ,跨页数据传递,ASP.NETWeb页面1,ASP.NETWeb页面2,控件1,控件2 ,跨页传递,如何知道跨页发送并获取传过来的数据?,跨页数据传递,IsCrossPagePostBack,指示跨页回发是否包含该页PreviousPage,获取向当前页面传
8、输数据的页面,PreviousPage 属性,页面2,FindControl 方法,找到页面1的对象,根据控件名,获得控件对象,演示示例2:跨页数据传递,关键代码,发出提交的页面获取内容的页面,if (Page.PreviousPage!=null)if(PreviousPage.IsCrossPagePostBack = true) this.lblShowURL.Text = 您的查询条件为: + (TextBox)this.PreviousPage.FindControl(txtKeyWord).Text;,通过PostBackUrl指定获取页,获取控件值,判断该页面的是否为其他页回传,
9、状态管理,ASP.NET中状态保持,ASP.NET状态保持,Session,Cookie,Application,存储于服务器,存储于客户端,应用程序级别的状态保持,Session,Session用于什么场合?结合JSP中学过的知识,我们知道Session保持当前用户状态信息常用于用户登录、购物车等,Session示例,用户登录。用户输入用户名和密码检测用户名和密码是否输入合法登录成功时,在Session中保存用户对象。,关键代码,登录代码,User user = new User();user.Id = 0;user.UserName = txtloginId.Text;user.PassW
10、ord = txtLoginPwd.Text;SessionUser = user;,Session的名称,要存储的对象,Cookie演示,Cookie方式记录用户最后登录时间当用户登录时,记录用户的登录时间用户下次登录时,显示用户上次登录时间,关键代码,写入Cookie代码读取Cookie代码,HttpCookie hcCookie = new HttpCookie(UserName, “张三);Response.Cookies.Add(hcCookie);,string UserName=Request.CookiesUserName.Value;,添加新的Cookie,Applicati
11、on对象,Application对象可以存储应用程序级的数据。“Application”:应用程序第一个用户访问站点时,应用程序启动,并创建一个Application对象。创建成功后,整个应用程序中都可以使用该对象。除非应用程序关闭,否则对象一直存储在内存中。,Application对象对应HttpApplication类,它定义 ASP.NET 应用程序中的所有应用程序对象通用的方法、属性和事件。,Server 对象,Server对象是HttpServerUtility的一个实例,它提供对服务器上的方法和属性的访问。,Server对象,HtmlEncode方法和HtmlDecode方法,Execute 方法和 Transfer 方法,UrlEncode方法和UrlDecode方法,MapPath方法,取得文件的物理路径,执行另一个页面的脚本,将文本编码成可以在浏览器中可正确浏览的格式,URL编码和解码,类似与JSP中的URLEncoder.encode,综合示例,修改欢迎页当用户未登录时转到登录页面登录成功后转回欢迎页在欢迎页面显示用户的信息根据用户浏览器的语言,给予不同语言的欢迎辞(如:中文用“您好, !”,其他用“HELLO, .!”。),