ASP编程:使用http组件来完成页面打印
楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。打印|页面HTTP组件,我所晓得的有ASPHTTP,ASPTEAR等等,这里我们要用的是比尔的XMLHTTP,假如你呆板上没有,能够到这里下载http://www.microsoft.com/data下载mdac2.6
http://msdn.microsoft.com/workshop/xml/index.asp下载msxml
象年夜多半我们看到的页面一样,好比一个旧事详细内容页面,该页面有个毗连叫打印本页,点出来今后,并非当即打印(固然也能够做到,我指的是选择性打印),而是呈现一个往失落一些头尾等有关信息的文件,这里大概有个打印毗连,大概要你本人下手了。
我们的思绪是如许的,用HTTP组件取得该页面的信息,然后用一些办法好比我们能够接纳正则表达式来分别我们想要的和不想要的器材。我们用HTML的标签来剔除我们不想要的内容,好比:
<!--STARTPPOMIT-->
<table>
<tr>
<td><ahref="/home">homepage</a></td>
</tr>
<tr>
<td><ahref="/support">support</a></td>
</tr>
<tr>
<td><ahref="/contact">contactus</a></td>
</tr>
<tr>
<td><ahref="/products">Products</a></td>
</tr>
</table>
<!--ENDPPOMIT-->
固然,还必要供应一个打印毗连,我们用JSCRIPT来做。
<scriptLanguage="JavaScript">
<!--hidefromoldbrowsers
//ppbandppearethestartandendofthedynamiclink
//window.location.hrefwillrefertothecurrentURLofthepage
//itsnicetomakeitopeninanewwindowtoo!i.e.target=_blank
varppb="<ahref=/print/printpage.asp?ref=";
varppe="target=_blank>PrintThisPage</a><br>";
document.write(ppb+window.location.href+ppe);
//end-->
</script>
这里我们传送了一个以后路径给打印页面,请看呆会的代码
先举个xmlhttp的复杂例子
<%
FunctionGetHTML(strURL)
DimobjXMLHTTP,strReturn
SetobjXMLHTTP=SErver.CreateObject("Microsoft.XMLHTTP")
objXMLHTTP.Open"GET",strURL,False
objXMLHTTP.Send
strReturn=objXMLHTTP.responseText
SetobjXMLHTTP=Nothing
GetHTML=strReturn
EndFunction
Writeit:
Response.WriteGetHTML("http://www.topcoolsite.com/")
Downloadit:
Response.ContentType="application/x-msdownload"
Response.AddHeader"Content-Disposition","filename=Something.asp"
Response.BinaryWriteGetHTML("http://www.topcoolsite.com/")
%>
运转下面这段代码就可以看到我的团体网站了,:)
接上去我们步进正题,我们创立一个printpage.asp
一旦你在符合的地位拔出了正文标志,剩上去的只是代码的事了
<%
optionexplicit
Response.Buffer=True
界说变量,正则表达式,XMLHTTP,路径
DimRefPage,objXMLHTTP,RegEx
RefPage=Request.QueryString("ref")
ifRefPage=""then
response.write"<h3>不法路径</h3>"
response.end
endif
SetobjXMLHTTP=Server.CreateObject("Microsoft.XMLHTTP")
objXMLHTTP.Open"GET",RefPage,False
objXMLHTTP.Send
RefPage=objXMLHTTP.responseText
SetRegEx=NewRegExp
RegEx.Global=True
使用正则表达式来干活
RegEx.Pattern="<!--STARTPPOMIT-->"
RefPage=RegEx.Replace(refpage,(chr(253)))
RegEx.Pattern="<!--ENDPPOMIT-->"
RefPage=RegEx.Replace(refpage,(chr(254)))
RegEx.Pattern=chr(253)&"[^"&chr(254)&"]*"&chr(254)
RefPage=RegEx.Replace(refpage,"")
SetRegEx=Nothing
SetobjXMLHTTP=Nothing
Response.WriteRefPage
%>
假如你的剧本引擎版本在5.5或以上
正则表达式的pattern能够如许写
<!--STARTPPOMIT-->(.*?)<!--ENDPPOMIT-->
对了,还要标准你的html代码,记得封闭对应,如<table></table>,否则会闹笑话的……:),你能够把头尾、导航栏等等放在独自的文件里,那样拔出正文标志就很复杂了。
</p>使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。 我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标. 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) 还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。 Session:这个存储跟客户端会话过程的数据,默认20分钟失效 ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。 完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。 兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的 封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
页:
[1]