当你打开测试页面时,你接收到如下所示错误信息:
“Parser Error –Description: An error occurred during the parsing of a resource required to service this request.”
你需要修改指令改正这个错误,选择正确的指令? B
A. <%@ Register Tagprefix=”tk” Tagname=”CustomerAddress” Namespace=”.\\AddressControls\\CustomerAddress.ascx” %> B. <%@ Register Tagprefix=”tk” Tagname=”CustomerAddress” Src=”CustomerAddress.ascx” %>
C. <%@ Register Tagprefix=”tk” Tagname=”CustomerAddress” Assembly=”CustomerAddress” %>
D. <%@ Reference control=”CustomerAddress.ascx” %>
92.你正在修改一个ASP.NET应用程序SalesForecast,此应用程序是用Visual
Basic .NET编写的。应用程序包括一个在Sales命名空间中的FirstQuarter.aspx页面。这个页面的类为FirstQuarter。你发现另外一个开发员不小心把FirstQuarter.aspx页面的指令删除了。你想新建一个页面指令使FirstQuarter.aspx能正常工作你该使用哪些指令? C A. <%@ Page Language=”vb”
Codebehind=”FirstQuarter.aspx.vb” Inherits=”FirstQuarter”%> B.<%@ Page Language=”vb”
Codebehind=”FirstQuarter.aspx.vb” ClassName=”Sales.FirstQuarter”%> C. <%@ Page Language=”vb”
Codebehind=”FirstQuarter.aspx.vb” Inherits=”Sales.FirstQuarter”%>
D. <%@ Page Language=”vb”
Codebehind=”FirstQuarter.aspx.vb” ClassName=”Sales.FirstQuarter” Inherits=”FirstQuarter”%>
93.你在Address.ascx文件中创建了一个用户控件名为Address,Address在HTML表格中显示address字段。一些容器页面可能包含不只一个Address用户控件的实例。例如一个页面包含一个送货地址和订货地址。你在Address用户控件中添加一个名为Caption公共属性。Caption属性会被不同的实例识别。你想让Caption属性在包含address字段的表的第一个
元素中显示,你要在表格的 | 元素添加代码以显示caption属性。你该用哪句代码? A A. | <%=Caption%> | B.
| C.
| D. =Caption | 94.你正在为一家公司创建购物车的应用程序。在每个用户的会话中应用程序只装载一次种类和产品数据。你创建了两个DataTable对象,一个DataTable对象名为
Categories,另外一个是Products。Categories对象保持静态,但是Products对象在用户选择产品和购买数量时会被修改。你希望每次改变造成的重新装载页面所需时间最小化,你该采用哪一对语句? A A.Cache[“Categories”] = Categories Session[“Products”] = Products
B.Session[“Categories”] = Categories Cache[“Products”] = Products
C.Session[“Categories”] = Categories Session[“Products”] = Products
D.Cache[“Categories”] = Categories Cache[“Products”] = Products
95. 你是一家书店的web开发员。你创建一个名为BookTopics web用户控件,该控件在一个名为BookTopics.ascx的文件中定义。BookTopics显示一个基于作者简介标识编号的书名列表。这个简介标识号是存储在BookTopics的一个名为AuthorProfile公共属性中。你创建一个名为AuthorPage.aspx的ASP.NET页面,该页面包含了一个BookTopics web用户控件的实例。AuthorPage.aspx是由一个带有两个参数的HTTP-GET请求打开的。这两个参数名为publisherID 和 authorProfileID。authorProfileID的值是简介标识号。你希望输出缓存BookTopics web用户控件。你要确保只有当作者的简介标识号改变时才创建不同版本的缓存。你该怎么做? D A. 针对AuthorPage.aspx页的OutputCache指令中添加下列元素: VaryByParam=”BookTopics.AuthorProfile”
B. 针对AuthorPage.aspx页的OutputCache指令中添加下列元素: VaryByControl=”BookTopics.AuthorProfile”
C. 针对BookTopics.ascx的OutputCache指令中添加下列元素: VaryByParam=”none”
D. 针对BookTopics.ascx的OutputCache指令中添加下列元素: VaryByControl=”authorProfileID”
96.以下选项中哪一个不是完成数据绑定所必须的属性或方法(C )。
A. <%# 表达式%> B. DataSource 属性 C. DataBind 方法 D. <%= 表达式%>
97.有SQL Server数据库,其中有表link,其字段和属性有网站编号link_id(自动
编号)、网站名称sitename(文本)、网站网址URL(文本)、网站简介intro(备注)、网站评分grade(数字)、提交日期submit_date(日期/时间)。令varName = ″雅虎″, varURL = ″www.yahoo.com″,下面( D )查询语句可以正确执行。 A. ″Select * From link Where sitename = ″ + varName B. ″Select * From link Where URL = ′″+ varURL +″′″
C. ″Select sitename, intro From link Where sitename = ″ + varName D. ″Select * From link Where submit_date < #2005-1-1#″ 98.以下不存储在服务器端的对象是( C )。 A. Application B. Session C. Cache
D. ViewState
99.在DataAdapter中,不包含的属性是( A )。 A、SQLCommand C、UpdateCommand
B、InsertCommand D、DeleteCommand
100. Server对象的哪个方法用于将相对路径转化为物理路径( D )。 A. HtmlEncode B. C. UrlEncode D.
Execute MapPath
二 简答题 1. HTML,CSS,Javascript,C#分别在IIS 服务器中执行还是在浏览器中被解析?
二者有什么区别?
答:HTML,CSS,Javascript在浏览器中被解析执行,C#在IIS服务器中被执行。
区别在网页程序中,一个客户端想要访问一个服务器,如果这个程序的所有操作全在服务器上执行,那存在庞大的用户群的程序服务器就很有压力,为了缓解服务器的压力,就会客户端语言(如Javascript)来进行一些相对简单,或者安全要求不高的操作。
2. 什么是相对地址和绝对地址?各有什么优缺点?
答:相对地址:就是被链接文件相对与当前页面的地址;优点:容易移动内容,可以整个
目录移动。缺点:内容页面换了位置时,链接容易失效。
绝对地址:就是文件在网络或本地的绝对位置。优点:如果网页位置改变,里面的链接还是指向正确的URL。
缺点:内容页面必须固定,如果所有内容页面都使用绝对地址,那么要修改一个文件,其它页面上的地址无法变化,还会指向原来的地址。
3.简述Web的三层体系结构?这种结构有什么优点?
答:第一层为web服务器层,是直接面向用户的。在它上面主要运行http服务,为用户提供浏览功能,
同时可运行一些应用程序。服务器的数目完全取决于网站的大小和实际的负载量。通过某些技术,让这些服务器可以根据当时的访问流量自动达到负载均衡,均匀地将来自用户的请求分配到不同的服务器上去。
第二层为中间件层,是整个系统体系结构中最重要的一个环节。它是联系前台应用和后台数据库的唯一
纽带。中间件层提供了对不同的数据库操作的接口,后台数据库对前端的应用程序员来说是完全透明的,中间件层使得程序员可以很方便的对其进行编程以实现所需要的功能,通过中间件层,达到了将前端应用和后台数据库分开的目的。
第三层为后台数据库层,是整个网站动态数据内容存储的地方。一个网站所用到的数据库服务器的数目取决于网站的规模和应用的大小。数据库服务器的配置应该比较高,而且应尽可能的稳定,一般对于一个成熟的网站来说,至少需要两个以上的数据库服务器,这样就可以相互备份,同时降低服务器的负载,达到负载均衡的目的。
优点:①网站规模扩大不会对现有的设备和技术有太大的冲击,而是在现有状况下进行较容易的改动。②添加设备只对上层应用加以改变,低层所采用的技术和设备并不需要做大的改变,从而轻松的达到整个网站升级的目的。③可以在系统中非常重要的地方加入防护措施。例如,可以在数据库服务器和中间件层之间加入防火墙,这样可以达到有效保户数据库安全的效果。
4.什么是Web服务器软件?它有哪几种?
答:web服务器软件,就是指处理web请求和负责转发的。
(1) (2)
主流web服务器软件包括Apache、Microsoft IIS等。
Apache可以说是世界上最流行的web服务器软件,它可以运行在包括Linux,Solavis,Windows NT/2000等多种操作系统平台上,是世界排名第一的web服务器软件。
(3) Microsoft IIS,全称为 Internet Information server(Internet信息服务器)。IIS加上Windows 2000 server 可以配置较高的PC机上搭建一个性能优良的web服务器,是当今使用最广泛的web服务器之一。
5.什么是正则表达式,试写一个正则表达式表示电子邮件。 (1) 答:正则表达式是具有特殊语法的字符串,用来表示指定字符或字符串在另一个字符串中出现的
情况。
(2) /^(?:\\w+\\ .?)*\\w+@(?:w+\\ .?)*w+$/
注:john@somewhere.com,John.doe@somewhere.com都是合法电子邮件形式。 6.什么是CSS选择器,举例说明类选择器,类型选择器,id选择器和后代选择器 答:要使用CSS对HTML页面中的元素实现一对一,一对多或者多对一的控制,这就需要用到CSS选择器。HTML
页面中的元素就是通过CSS选择器进行控制的。
①类选择器 :类选择器根据类名来选择,前面以“.”来标志,如: p.right{text_align:right}
be right-aligned
②简单选择器 使用html中的标签名作为选择器,如:p、div、h2等,使用后文档中该元素将会被应用相应的样式
p {color: black; }
②ID选择器 :根据元素ID来选择元素,具有唯一性。前面以“#”来标志,如: #info {font_weight:bold;} < p id =“intro” > some text
③后代选择器 :又称为包含选择器,用来选择特定元素或元素组的后代,后代选择器用两个常用选择器,
中间加一个空格表示。其中前面的常用选择器选择父元素,后面的常用选择器选择子元素,样式最终会应用于子元素中,如:
li a{text_decoration:none;}
7.什么是主页?什么是静态网页,什么是动态网页,它们有什么区别?
答:(1)主页是一组网页之首,它是站点上查找信息资源的起点,它向用户展示该服务器提供何种信息。
对该站点的信息资源进行索引,指明各种浏览路径,并引导用户浏览本地或其他站点的页面。
(2)静态网页是网站建设初期经常采用的一种形式。网站建设者把内容设计成静态网页,编写HTML文档,存放在服务器的硬盘上,访问者只能被动地浏览网站建设者提供的网页内容。
动态网页是建立在 B/S 构上的服务器端脚本程序。在静态网页中加入程序和逻辑控制,从而实现客户端和服务器之间的动态和个性化的交流和互动的网页称为动态网页。
(3)静态网页与动态网页的区别在于Web服务器对它们的处理方式不同。当Web服务器接收到对静态网页的请求时,服务器直接将该页发送给客户浏览器,不进行任何处理。如果接收到对动态网页的请求,则从Web服务器中找到该文件,并将它传递给一个称为应用程序服务器的特殊软件扩展,由它负责解释和执行网页,将执行后的结果传递给客户浏览器。动态网页可以针对不同用户的不同需求,经过程序化处理,把最需要用户知道和用户最想知道的信息返回浏览器,而实现与用户的良好互动。
8.什么是BOM,什么是DOM,举出一些分别属于BOM和DOM的对象并简单说明它们的作用(分别不少于三个),如何获取页面DOM对象,以代码说明。
答:浏览器对象模型(Browser Object Model),简称为 BOM,浏览器对象模型提供了用户与浏览器
之间交互的对象以及操作的接口,允许访问和操控浏览器窗口。研发者通过使用BOM,可移动窗口、更改状态栏文本、执行其它不与页面内容发生直接联系的操作。BOM中的对象:
Document 对象:代表浏览器窗口中所加载的文档。 History 对象:该对象代表当前浏览器窗口的浏览历史。 Location 对象:该对象代表当前文档的 URL。
文档对象模型(Document Object Model),简称为DOM,是一个能够让程序和脚本动态访问和更新文档内容、结构和样式的语言平台,可以以一种于平台和语言的方式访问和修改一个文档的内容和结构。DOM的对象:
Anchors 数组:该数组代表了文档中的所有锚。
Applets 数组:该数组代表了嵌在网页中的所有小程序。 Forms 数组:该数组代表文档中的所有表单。
9. 如何把一个array复制到arrayList里
答:用逻辑方法就是循环把数据读出来,加到arrayList里,
直接的方法就是:
String t[]={\"1\
List list=Arrays.asList(t); foreach( object o in array )arrayList.Add(o);/*另外一个答案*/
10. datagrid.datasouse可以连接什么数据源 答:dataset,datatable,dataview,IList
11.列举ADO.NET中的五个主要对象,并简单描述。 答:connection 连接对象
command 命令对象,指示要执行的命令和存储过程 datareader是一个向前的只读的数据流
dataadapter是功能强大的适配器,支持增删改查的功能 dataset是一个数据级对象,相当于内存中的一张表或多张表
12.什么是code-behind技术
答:字面意思就是:代码在后面,也就是代码隐藏的意思。 在ASP.NET中通过ASPX页面指向CS文件的方法
实现显示逻辑和处理逻辑的分离,这样有助于web应用程序的创建。代码分离(Code Behind)形式是asp.net为了提高代码阅读性采用的新技术,使asp.net页面源程序代码更清晰和便于阅读。他的实质是将页面显示视图(页面内容)的HTML标记和控制页面交互过程的程序代码分离。这样可以分别设计、分别调试和分别保存,其两者之间的关联是通过编译器指令Page实现的。
13.什么是ASP.net中的用户控件
答:在ASP.NET中:使用与ASP.NET页相同的语法,以声明方式创作的服务器控件。该控件用.ascx
扩展名保存为文本文件,可以拖到不同的页面中调用,以节省代码。用户控件允许对页功能进行分区和重用。第一次请求时,页框架立即将用户控件分析为从 System.Web.UI.UserControl 派生的类,并将该类编译到一个程序集中;页框架在后面的请求中将重用该程序集。因为用户控件不需要预编译就可以进行页面样式创作和部署,所以开发起来很容易。在 Windows 窗体中:在应用程序内部或应用程序之间提供一致性行为和用户界面的复合控件。用户控件可以是某个应用程序的本地控件,也可以添加到库中并编译成 DLL 供多个应用程序使用。
14.什么是asp.net复合控件,说明在asp.net中的两种开发复合控件的方法? 答:复合控件由其他控件复合而成,能够利用现有的服务器端控件。
开发复合控件两个方法,一个是CreateChildControls方法,一个是EnsureChildControls方法。
先说一下CreateChildControls方法:CreateChildControls方法来对子控件进行实例化、初始化、并把这些子控件添加到控件树中.
EnsureChildControls方法。该方法为了确保子控件在代码访问它们之前创建好了,该方法来创建军子控件,控件实现中的任何需要访问子控件代码必须先调用EnsureChildControls方法。
15. 什么是web页面控件?在asp.net中如何定义?
答:WEB控件是能拖放在WEB页面上的控件。新建页面后,从工具箱中选择到要使用的控件,拖放至页面后修改属性即可。
16. ASP.NET中的Partial class有什么作用?试举例说明
答:分部类型定义允许将类、结构或接口的定义拆分到多个文件中。比如 public
partial class Program {
static void Main(string[] args)
{ } }
partial class Program {
public void Test() { } }
编译后它相当于
public class Program {
static void Main(string[] args) { }
public void Test() { } }
17.主题、母板页和皮肤分别有什么作用?
答:母版页通常情况下是用来进行页面布局。当Web应用程序中的很多页面的布局都相同,
甚至中间需要使用的用户控件、自定义控件、样式表都相同时,则可以在一个母版页中定义和编码,对一组页面进行样式控制。皮肤和主题能够将样式和布局信息分解到单独的文件中,让布局代码和页面代码相分离。主题可以应用到各个站点,当需要更改页面主题时,无需对每个页面进行更改,只需要针对主题代码页进行更改即可。皮肤是对母版页和主题在修改网站样式方面的补充。
18.举例说明ADO.NET访问数据库的基本步骤?(几乎不可能举例) 答:在ASP中通过ADO访问数据库,一般经过以下四个步骤:
一.创建一个到数据库的链路,即ADO.Connection;二。查询一个数据集合,即执行SQL,产生一个Recordset。三.对数据集合进行需要的操作。四.关闭数据链路。 四 程序设计及页面布局题
1.有一Web布局如图所示,请写出利用层进行布局的HTML和CSS代码。 注:其中第一部分高520px,第二部分高100px,页面整体宽度为800px。
答:
1.
3.在名为Student的Sql Server的数据库中,有数据库表studentTable,其中有三个字段,字段id为自动编号,studentno为学号,studentname为学生姓名,请编写一个ASP.NET程序,将这个表的数据库记录内容在网页上显示出来。
答:
<%@Language=”vbscripyt”%> <%dim conn.SQL.rs
Set conn=Open”server.CreateObject(“ADODB.Connection”) Conn.Open”fileDSN=webdb”
SQL=”insert into studentTable(studentno,studentname)values(A0231”,’张三‘) Set rs=Server.CreateObject(“ADODB.Recordest”) rs =conn.Execute(SQL)%>
using System;
using System.Collections.Generic;
using System.Linq; using System.Web; using System.Web.UI;
using System.Web.UI.WebControls; using System.Data;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
String connString = \"Data source=(local);Initial Catalog=webdb;User ID=sa;password=\"; SqlConnection conn = new SqlConnection(connString); conn.Open();
string sql = \"select * from studentTable\";
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); adapter.Fill(ds);
GridView1.DataSource = ds; GridView1.DataBind(); conn.Close(); } }
4.编写C#程序,求表达式的值:1+3+5+7+„..+n 答:
.using System;
using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication1 {
class Program {
static void Main(string[] args) {
int n, i, sum;
Console.WriteLine(\"请输入一个整数\"); n = Convert.ToInt32(Console.ReadLine()); sum = 0;
for (i = 1; 2 * i - 1 <= n; i++) sum = sum + 2 * i - 1; Console.WriteLine(sum); } } }
5.编写一段C#程序,实现asp.net页面访问总数,并在页面上显示。
protected void Application_Start(object sender, EventArgs e) {
string counter_file = \"\"; Application[\"OnLine\"] = 0;
counter_file = Server.MapPath(\"/counter.txt\");
System.IO.FileInfo fs = new System.IO.FileInfo(counter_file);
System.IO.StreamReader st = new System.IO.StreamReader(counter_file, System.Text.Encoding.Default);
Application[\"counter\"] = st.ReadLine(); st.Close(); Application.Lock();
Application[\"counter\"] = int.Parse(Application[\"counter\"].ToString()) + 1; Application.UnLock();
System.IO.StreamWriter sw = new System.IO.StreamWriter(counter_file); sw.WriteLine(Application[\"counter\"]); sw.Close();
}
protected void Session_Start(object sender, EventArgs e) {
Application.Lock();
Application[\"OnLine\"] = (int)Application[\"OnLine\"] + 1; Application.UnLock();
}
protected void Page_Load(object sender, EventArgs e) {
Label1.Text = \"您是该网站的第\" + Application[\"OnLine\"].ToString() + \"个访问者\"; }