值类型直接存在堆栈中,引用类型存放在托管堆中;
值类型是密封的,不能作为任何其它类型的基类,而引用类型一般都有继承性;
系统会自动给未赋值的值类型通过隐式的默认构造函数赋值为相应的默认初始化值,而引用类型未赋值时默认为null;
作为参数传递给方法时,值类型传递的是变量的复制值,自身不会发生改变,引用类型传递的是变量的引用地址,参数本身会被影响;
const修饰的字段必须在声明时赋予初值,构造方法当中不能对该值进行改变,readonly修饰的字段可以在声明时赋予初值,也可以在构造方法中赋予初值;
const修饰的字段是编译时常量,而readonly是运行时常量;
const不能与static联合使用,默认即为static的,const=static+literal,readonly能和static联合使用,其修饰的字段可以在静态构造方法中赋初值;
const只能应用于原始数据类型,readonly对任何数据类型都可以
C/S是客户端/服务器端(Client/Server),是一种两层结构的系统:第一层是在客户机系统上结合了表示与业务逻辑;第二层是通过网络结合了数据库服务器。
B/S是浏览器/服务器端(Browser/Server),采用了逻辑上的三层结构:第一层客户机是用户与整个系统的接口,第二层是Web服务器,接收客户端传来的请求并处理返回给客户端,第三层是数据库服务器,负责协调不同的Web服务器发出的SQ请求,管理数据库。
比较:在C/S中,客户端有一套完整的应用程序,交互性比B/S强;
C/S模式提供了更安全的存取模式。由于C/S是配对的点对点的结构模式,采用适用于局域网、安全性比较好的网络协议(例如:NT的NetBEUI协议),安全性可以得到较好的保证。而B/S采用点对多点、多点对多点这种开放的结构模式,并采用TCP/IP这一类运用于Internet的开放性协议,其安全性只能靠数据服务器上管理密码的数据库来保证;
由于C/S在逻辑结构上比B/S少一层,对于相同的任务,C/S完成的速度总比B/S快,使得C/S更利于处理大量数据;
C/S必须要在客户端安装并部署程序才能运行,对客户端的配置要求比较高,B/S简化了客户端,只需安装通用的浏览器软件, B/S特别适用于网上信息发布;
C/S模式的系统的升级、维护开销B/S大,C/S需对客户端和服务器端都进行更新,B/S只需更新服务器端;
property是指类向外提供的数据区域,用于存取类的字段,通过set和get关键字对字段按需要而灵活进行不同程度的封装;
而attribute则是描述对象在编译时或运行时特性的,用[ ]把相应的特性在类或字段的上方进行标注,则该类或字段才有相对应的功能,如在一个类上方标注[seralizable],则该类是可以序列化。
表单的提交方式POST和GET有什么区别 解决思路:
两者的区别需要通过提交表单后才看得出来,主要是在数据发送方式和接收方式上。 具体步骤:
Post和Get都是表单属性Method的可选值,Method的默认值为Get,两者的主要区别在于:
1.在客户端,Get方式在通过URL提交数据,提交后在地址栏中的地址如图1.4.3所示。
图1.4.3 Get方式提交表单后的地址栏
而Post提交后地栏不变,如图1.4.4所示。
图1.4.4 Post方式提交表单后的地址栏不变
2.在服务器端只能用Request.QueryString来获取Get方式提交来的数据,用Post方式提交的数据只能用Request.Form来获取:
- <%@language="VBScript" Codepage="936"%>
- <html>
- <head>
- <title> 表单提交方式测试</title>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- </head>
- <body>
- <form method="post" action="<%=Request.ServerVariables("Script_Name")%>">
- 提交数据:
- <input name="oStr" type="text">
- <br>
- 提交方式:
- <select name="select" onchange="this.form.method=this.value">
- <option value="Post" selected>Post</option>
- <option value="Get">Get</option>
- </select>
- <br>
- <input type="submit" name="Submit" value="提交">
- </form>
- <%
- if Request("Submit")<>"" then
- Response.Write "通过"&Request.ServerVariables("Request_Method")&"方式提交的数据为:"
- if Request.ServerVariables("Request_Method")="GET" then
- Response.Write Request.QueryString("oStr")
- else
- Response.Write Request.Form("oStr")
- end if
- end if
- %>
- </body>
- </html>
注意:虽然两种提交方式可以统一用Request("oStr")来获取提交数据,但是这样对程序效率有影响,不推荐使用。
特别提示
通过IIS运行本例代码(用http://localhost/method.asp这种方式来浏览,有关IIS的安装和配置,请参考第四部分),输入所提交的数据,选择Post方式提交,将看到图1.4.4所示的效果。选择Get方式提交,效果将如图1.4.3所示。
特别说明
一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。但是在分页程序中,用Get方式就比用Post好。本例中用到的表单的属性解释(ASP部分请参考第四部分):
Get把参数添加到action属性指定的地址中,并以锚方式打开。
Post通过HTTP post处理发送数据