Asp主要提供了7个内置的对象: ------------------------------- Request 接收用户输入及环境变量 Response 输出内容给用户 Server 提供一些实用的方法 Session 提供操作Session的方法 Application 提供操作Application 的方法 Error 错误处理(用的不是很多) ObjectContext 事务处理的功能,不常用
Request对象
1。访问ASP网页的方式:Get和Post方式
Get: -------------------------- 用户直接在地址栏输入URL。 点击网页中的连接 javascript的网页跳转 表单的Get方式提交
Post: --------------------------- 表单的Post方式提交
2。Get方式下,如何取得用户输入
(1)使用Request.QueryString("名称")来取得。
如:访问URL为test.asp?n=3&name=哈哈&n=5&d=2005/6/1 其中的?之后,称为QueryString。
Response.Write Request.QueryString("n") &"<br>" Response.Write Request.QueryString("name") &"<br>" Response.Write Request.QueryString("d") &"<br>" ----------------- 输出为: 3, 5 (注意,分隔符是逗号和一个空格) 哈哈 2005/6/1 ----------------- 也就是说,相同的项目的值会合并在一起,用逗号+空格分隔。
注意,Request.QueryString("名称")返回的都是字符串类型,
进行判断或运算之前应该显示的转换一下类型,也就是使用Cint,CLng,CDate等函数。
(2)实际上每个Request.QueryString("名称")都是一个集合类型,都有.Count属性.
Response.Write Request.QueryString("n").Count &"<br>" Response.Write Request.QueryString("name").Count &"<br>" Response.Write Request.QueryString("d").Count &"<br>" 输出: 2 1 1
(3)可以用(n)的方式输出每个项目的每一个值。注意,下标从1开始。 Response.Write Request.QueryString("n")(1) &"<br>" Response.Write Request.QueryString("n")(2) &"<br>" Response.Write Request.QueryString("name")(1) &"<br>" Response.Write Request.QueryString("d")(1) &"<br>" 输出: 3 5 哈哈 2005/6/1
(4)更多的情况下,每个项目中的值的个数是不定的。可以用循环来输出。
for i=1 to Request.QueryString("n").Count Response.Write Request.QueryString("n")(i) &"<br>" next --------------------- 而对于整个Request.QueryString来说,可以这样: for i=1 to Request.QueryString.Count Response.Write Request.QueryString(i) &"<br>" next ------------------------------ for each x in Request.QueryString Response.Write Request.QueryString(x) &"<br>" next 其中的x只是一个变量名字而已,可以随便改个名字。 ------------------------------------ 输出都为: 3, 5 哈哈 2005/6/1
3。Post方式下,如何取得用户输入
(1)使用Request.Form("名称")来取得。其他的特点与以上的(2)(3)(4)点相同。
如下,是一个表单。
<form action="test.asp" method="post"> 姓名:<input type="text" Name="name"><br> 性别:男<input type="Radio" Name="sex" value="男" checked> 女<input type="Radio" Name="sex" value="女"><br> 爱好:<input type="checkbox" name="fav" value="篮球">篮球 <input type="checkbox" name="fav" value="足球">足球 <input type="checkbox" name="fav" value="游泳">游泳<br> <input type="Submit" value="提交"> <input type="Reset" value="重写"> </form>
注意,每个项目的name属性,提交时,是以name=value的形式提交的
如:name=张三&sex=男&fav=篮球&fav=足球
可以看到,形式上与Get方式提交是类似的。
Response.Write Request.Form("name") &"<br>" Response.Write Request.Form("sex")&"<br>" Response.Write Request.Form("fav") &"<br>"
输出: 张三 男 篮球, 足球
(2)各种表单项目的一点区别
对于文本框,密码框,textarea等,输入什么就提交什么。
单选框和复选框,选中哪个就提交那个,不选中的不提交
下拉框也一样…………
submit按钮的value也会提交。
button和reset的value不会提交。
(3)表单状态的维持
当表单与处理页面是同一个页面时,通常要保持表单的状态与提交前一致。(如搜索界面)
(asp.net中因为用了控件,已经自动作到了这一点,而ASP中需要自己来做。)
略显繁琐,但也不难。 ---------------------------------------------- <% name=Trim(Request.Form("name")) '接收值记得一定要Trim一下,能减少不必要的麻烦 sex= Trim(Request.Form("sex")) fav= Trim(Request.Form("fav"))
%> <form action="test.asp" method="post"> 姓名:<input type="text" Name="name" value="<%=name%>"><br> 性别:男<input type="Radio" Name="sex" value="男" <% if sex="男" then %> checked <% end if%>> 女<input type="Radio" Name="sex" value="女" <% if sex="女" then %> checked <% end if%>><br> 爱好:<input type="checkbox" name="fav" value="篮球" <% if Instr(fav,"篮球")>0 then %> checked<% end if%>>篮球 <input type="checkbox" name="fav" value="足球" <% if Instr(fav,"足球")>0 then %> checked <% end if%>>足球 <input type="checkbox" name="fav" value="游泳" <% if Instr(fav,"游泳")>0 then %> checked <% end if%>>游泳<br> <input type="Submit" value="提交"> <input type="Reset" value="重写"> </form>
对于单选框、复选框等,这样混杂的写法有些费事,而且看起来不爽。
建议交给客户端javascript来做。
留给你们做练习吧…………
提示:将asp中变量值传给javascript的方法。 <script> var sex="<%=sex%>"; </script>
今天作业: (1)完成上面的javascript。
(2)设计一个添加书籍资料的表单,并写一个接收页面,输出表单中输入的内容。 表单页:addBook.asp 接收页:addBookSave.asp
表单项目: 文字 name maxlength ------------------------------------------------------- 名称 book_name 100 作者 book_author 50 译者 book_translator 50 出版社 book_publisher 50 出版时间 book_publishDate 10 页数 book_pageNumber 10 ISBN book_ISBN 20 内容介绍 book_Content textarea
<1>要求客户端进行长度Check,出版时间进行日期check,页数进行数字check。
check方法可以自己搜索……
<2>点提交按钮后,提交按钮灰掉。
===========================================================================
点评补记:
表单提交、check与接收是十分常见的功能了………… 一定要熟练掌握, 熟练之后,此练习最多几个小时就可以搞定的。 -------------------------------------------------------------------------- 再说一下注意事项: (1)所有要提交的表单项目要放到<form></form>之间。 (2)注意form的method,理解Get和Post的区别。 (3)注意设定表单项目的Name属性 (4)调用客户端JS进行Check的时机,通常是onSubmit事件时调用。 (5)最好将常用的JS Check代码独立出来,需要时引用即可,从而可以快速开发。 (6)接收变量时,注意Request.Form和Request.QueryString的区别,该用哪个就用哪个。 ………………
|