中山大学网站开发与网页设计实用教程下半年作业2Word下载.docx
- 文档编号:16515585
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:19
- 大小:84.52KB
中山大学网站开发与网页设计实用教程下半年作业2Word下载.docx
《中山大学网站开发与网页设计实用教程下半年作业2Word下载.docx》由会员分享,可在线阅读,更多相关《中山大学网站开发与网页设计实用教程下半年作业2Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
,listTest);
//把List设置到Request对象中
%>
c:
forEachitems="
${testList}"
var="
list"
varStatus="
s"
>
通过c:
forEach就可以遍历listTest了。
这是jsp中最普遍用到的循环遍历集合的方法。
开发中一般会有很明确的分层,最常用的MVC模式就是提倡把架构分成Model\View\Controller三层,这样有利于项目的开发与维护,如果页面上嵌入过多的java代码会使得调试及后期维护花费的代价与日俱增,所以不提倡这样做。
4,ASP对象Request主要属性和方法
Request对象是ASP中最为常用的对象之一。
它用来连接客户端的Web页(.HTML文件)和服务器端的Web页(.ASP文件),使它们之间可以进行数据交换。
Request对象允许ASP查询有关与之交互的客户程序信息,它代表由客户程序发出的HTTP请求报文。
Requset的属性方法如下:
1.TotalBytes属性
Request对象只提供了一种TotalBytes属性。
该属性用来获取客户端接收的所有数据的字节大小,而Counter是指定一个变量来接收客户端在请求中发送的总字节数。
实际编程中该属性很少使用。
TotalBytes引用的一般格式如下。
Counter=Request.TotalBytes
下面的ASP脚本用变量Counter获取Request数据集合中的字节数。
Dimbytecount
bytecount=Request.TotalBytes
2.BinaryRead方法
Request对象只提供了一种方法,即BinaryRead方法。
这种方法并不常用,它以二进制的方法来获取客户端传送的数据。
Variant参数包含由该方法返回的无符号数的数组。
Count参数在执行前,指定要从客户端读取的字节数。
此方法返回后,将包含从客户机成功获取的字节数。
其返回值为一个数组,该方法需要一个参数,即每次读取字节的大小。
BinaryRead引用的一般格式如下。
variant=Request.BinaryRead(count)
下面的ASP脚本是用binread数组来存储,用BinaryRead方法读取的数据。
Dimbinread
bytecount=Request.TotalBytes
binread=Request.BinaryRead(bytecount)
.1.2
读取HTTP查询字符串中的数据
在网页中数据传递一个很重要的方式就是通过链接地址。
如“showlog.asp?
cat_id=5&
log_id=657”。
当用户将这样的字符串作为链接地址发送到服务器时,服务器就会通过QueryString集合获取相关的值。
1.QueryString集合
QueryString集合检索HTTP查询字符串中变量的值。
HTTP查询字符串由问号后的值指定,几个不同的进程都可以生成查询字符串。
variable在HTTP查询字符串中指定要检索的变量名。
要在多个数据集合的一个中引用QueryString变量,请指定index的值。
index参数可以是1到Request.QueryString(variable).Count中任意值。
如果没有指定index的值,引用多个QueryString变量中的某个变量时,返回的数据是逗号分隔的字符串。
在Request.QueryString中使用参数时,服务器分析发送给请求的参数,并返回指定的数据。
如果应用程序需要未分析的QueryString数据,可以通过调用不带参数的Request.QueryString检索到这个数据。
QueryString集合所对应的提交方式只能是Get方式,而不能使用Post方式来提交,所以用户在编写程序时一定要注意前后的对应关系。
QueryString集合是在ServerVariables集合中QueryString变量的分析版本。
它可以以名称检索QueryString变量。
Request.QueryString(参数)的值是出现在QueryString中所有参数的值的数组。
通过调用Request.QueryString(parameter).Count可以确定参数有多少个值。
如果变量未关联多个数据集,则计数为1;
如果找不到变量,计数为0。
QueryString集合引用的一般格如下。
Request.QueryString(variable)[(index)|.Count]
2.QueryString示例
下面这个示例是QueryString最基本的使用方法,用来获取.HTML文件中以POST方式发送的数据。
Dimxingming
Dimmima
xingming=Request.QueryString("
xm"
)
mima=Request.QueryString("
mm"
Ifxingming="
yonghu"
then'
判断用户名是否为“yonghu”
Ifmima="
xxx"
then'
判断密码是否为“xxx”
Response.Write"
登录成功!
"
'
密码正确则“登录成功”
Else
登录失败!
密码错误则“登录失败”
Endif
Else
用户名不存在!
用户名不正确则“用户名不存在”
Endif
3.使用QueryString获取表单元素
在上网的时候经常会遇到会员登录的界面,下面就来制作一个用户在客户端浏览器输入用户名及密码登录后,并提交到服务器端的Log.asp文件。
浏览器页面的Log.htm详细代码如下:
html
head
metaname="
GENERATOR"
content="
MicrosoftFrontPage5.0"
metaname="
ProgId"
content="
FrontPage.Editor.Document"
metahttp-equiv="
Content-Type"
text/html;
charset=gb2312"
title新建网页/title
/head
body
formACTION="
log.asp"
METHOD="
GET"
NAME="
login"
用户名:
inputtype=textname=nmsize="
20"
br
密
码:
nputtype=passwordname=pwdsize="
inputtype=submitname=btvalue=提交
inputtype=resetname=btvalue=重写
/form
/body
/html
图4-1登录界面
Log.htm文件显示界面如图4-1所示。
当数据被提交到服务器端的log.asp文件时,在log.asp文件中使用Request对象获取到用户提交的数据,判断该用户是否合法,服务器端的Log.asp文件具体内容如下:
DimUserNM
DimPassWD
UNM=Request.QueryString("
nm"
PWD=Request.QueryString("
pwd"
IfUNM="
user"
判断用户名是否为“user”
IfPWD="
123"
判断密码是否为“123”
在图4-1所示中,若在用户名中输入“user”,密码中输入“123”,就会调用log.asp文件,其显示结果如图4-2所示。
图4-2登录成功
在log.htm文件中使用了Get方法,此时输入到表单的数据就要发送到URL字符串指定的HTTP服务器上,可以看到它是加在URL后面的,是通过一个“?
”来隔开。
ASP并不是在HTTP的Get中分析附加在URL后面的字符串,而是允许ASP开发人员把这种数据作为QueryString对象的集合来处理。
4.使用QueryString获取同名表单元素数值
在hometown.htm文件中获取多个同名表单的返回值,文件内容如下:
hometown.asp"
hometown"
请输入你所居住的城市:
br
城市1:
inputtype=textname=citysize="
城市2:
城市3:
inputtype=submitname=btvalue=提交查询
hometown.htm文件的显示界面如图4-3所示。
在图4-3所示中,若单击【提交查询】按钮,就可以把3个城市的名称提交到服务器。
要想输出其中的每一个值,可以采用以下代码来解决。
在hometown.asp文件中输出每一个城市的值,文件内容如下:
ForeachitemInResquestQuerystring("
city"
Response.Writeitem&
输出每个城市名并且换行
next
注意:
ForeachitemIn…的用法,在ASP中它是最常见的显示集合所有内容的一种方法。
在执行hometown.asp文件后的结果,如图4-4所示。
图4-3显示界面
图4-4输出城市名
5、session属性和方法
Session一般在服务器上设置了一个30分钟的过期时间,当客户停止活动后自动失效。
Session中保存和检索的信息不能是基本数据类型如int,double等,而必须是java的相应的对象,如Integer,Double.
Httpsession具有如下API:
getId 此方法返回唯一的标识,这些标识为每个session而产生。
当只有一个单一的值与一个session联合时,或当日志信息与先前的sessions有关时,它被当作键名用。
GetCreationTime 返回session被创建的时间。
最小单位为千分之一秒。
为得到一个对打印输出很有用的值,可将此值传给Dateconstructor或者GregorianCalendar的方法setTimeInMillis.
GetLastAccessedTime 返回session最后被客户发送的时间。
GetMaxInactiveInterval 返回总时间(秒),负值表示session永远不会超时。
getAttribute 取一个session相联系的信息。
(在jsp1.0中为getValue)
Integeritem=(Integer)session.getAttrobute("
item"
) //检索出session的值并转化为整型
setAttribute 提供一个关键词和一个值。
会替换掉任何以前的值。
(在jsp1.0中为putValue)
session.setAttribute("
ItemValue"
,itemName);
//ItemValue必须不是must简单类型
在应用中使用最多的是getAttribute和setAttribute.现以一个简单的例子来说明session的应用, test1.jsp(信息写入session),test2.jsp(从session读出信息)。
test1.jsp
<HTML>
<HEAD>
<TITLE>Document</TITLE>
</HEAD>
<BODYBGCOLOR="
#FFFFFF"
>
session.setAttribute("
str"
newString(“thisistest”));
</BODY>
</HTML>
test2.jsp
<TITLE>NewDocument</TITLE>
<%
Stringls_str=null;
ls_str=(String)session.getAttribute("
);
out.println(“从session里取出的值为:
”+ls_str);
%>
7,列举4个以上数据库
(1)Javascript数据库
(2)ASP数据库
(3)Response数据库
(4)session属性和方法
8,SQLSERVER中,数据类型Char与varchar区别
sql
server数据类型char和nchar,varchar和nvarchar,text和ntext的区别
varchar和nvarchar的区别:
varchar(n)
长度为n个字节的可变长度且非Unicode的字符数据。
n必须是一个介于1和8,000
之间的数值。
存储大小为输入数据的字节的实际长度,而不是n
个字节(如varchar(6),当字段为qqq时,数据库实际占用空间为3个字节,而不是6个字节,但只允许存储6个字节,一般中文占两个字节)。
nvarchar(n)
包含n个字符的可变长度Unicode字符数据。
n的值必须介于1与4,000
之间。
字节的存储大小是所输入字符个数的两倍。
两字段分别有字段值:
我和coffee
那么varchar字段占2×
2+6=10个字节的存储空间,而nvarchar字段占8×
2=16个字节的存储空间。
如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar
SQL
Server中,varchar和nvarchar如何选择?
varchar在SQLServer中是采用单字节来存储数据的,nvarchar是使用Unico来存储数据的.中文字符存储到SQL
Server中会保存为两个字节(一般采用Unico编码),英文字符保存到数据库中,如果字段的类型为varchar,则只会占用一个字节,而如果字段的类型为nvarchar,则会占用两个字节.
正常情况下,我们使用varchar也可以存储中文字符,但是如果遇到操作系统是英文操作系统并且对中文字体的支持不全面时,在SQL
Server存储中文字符为varchar就会出现乱码(显示为?
?
).而且正常情况下,主机都会支持中文的环境,所以如果使用varchar来存储数据,在开发阶段是发现不了的.多数情况下,在布署的时候也不会有问题.
但是!
如果布署的主机是英文操作系统,并且不支持中文环境,那问题就出来了.所有的varchar字段在存储中文的时候都会变成乱码(显示为?
).而且一般情况下你不会知道这是因为你采用了错误的数据类型来存储所造成的,你会试着去装中文字体,试着去设置操作系统的语言环境...这些都不能解决问题,唯一能解决问题的是把数据库字段的类型个性为nvarchar(或者nchar).对项目管理比较熟悉的朋友应该都知道,到布署阶段再来修改数据库是一个很恐怖的事情.
使用nvarchar的另一个非常好处就是在判断字符串的时候可以不需要考虑中英文两种字符的差别.
当然,使用nvarchar存储英文字符会增大一倍的存储空间.但是在存储代价已经很低廉的情况下,优先考虑兼容性会给你带来更多好处的.
所以在Design的时候应该尽量使用nvarchar来存储数据.只有在你确保该字段不会保存中文的时候,才采用varchar来存储.
1、CHAR。
CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。
2、VARCHAR。
存储变长数据,但存储效率没有CHAR高。
如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为
VARCHAR(10)是最合算的。
VARCHAR类型的实际长度是它的值的实际长度+1。
为什么“+1”呢?
这一个字节用于保存实际使用了多大的长度。
从空间上考虑,用varchar合适;
从效率上考虑,用char合适,关键是根据实际情况找到权衡点。
3、TEXT。
text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。
4、NCHAR、NVARCHAR、NTEXT。
这三种从名字上看比前面三种多了个“N”。
它表示存储的是Unicode数据类型的字符。
我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。
nchar、nvarchar的长度是在1到4000之间。
和
char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;
而char、varchar最多能存储
8000个英文,4000个汉字。
可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。
所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar
9,存储过程定义和优点
储过程是使用SQL语句和流程控制的语句编写的模块,存储过程经编译和优化后存储在数据库服务器端的数据库中,使用时调用即可。
优点:
1.提高运行速度。
在运行存储过程前,数据库服务器对其进行语法和语义的分析,并给出优化执行方案。
而调用存储过程时,其执行的SQL语句大部分准备工作都已经完成,所以存储过程就能以很快的速度执行,相比之下,交互执行的SQL语句是解释执行的,所以速度较慢。
2.增强了SQL功能和灵活性。
存储过程可以用流程控制语句编写,具有很强的灵活性,能完成复杂是逻辑判断和逻辑运算。
3.可以降低网络的通讯量。
存储过程存储在服务器端,执行全部的逻辑流程仅需要向服务器发送一次过程请求即可。
4.间接实现安全控制功能。
例如,不允许某些用户直接在表和视图上进行查询,可以授权它们执行某个存储过程来完成允许范围内的信息查询。
分类:
用户定义的存储过程、扩展存储过程以及系统存储过程。
(
其中,用户定义的存储过程又分为Transaction-SQL和CLR两种类型。
Transaction-SQL存储过程是指保存的Transaction-SQL语句集合,可以接受和返回用户提供的参数。
CLR存储过程是指对.NetFramework公共语言运行时(CLR)方法的引用,可以接受和返回用户提供的参数。
他们在.NetFramework程序集中是作为类的公共静态方法实现的。
编写:
(以例子说明)
例1传入一个参数@username,判断用户是否存在
-----------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中山大学 网站 开发 网页 设计 实用教程 下半年 作业