ASP伪静态方法
文章归类:技术文章 浏览次数:

最重要,也是最激动人心的时候来了。现在,我将一步一步地拨开这三种方式的神秘面纱,并且实现相应的功能代码……

1、 重写url参数

Step1: 建立前台文件index.asp,修改url参数形式。由于读取数据库中的记录不是专题的重点,故直接给出:
 

<%

var rs=Server.CreateObject("adodb.recordset");

sql="select * from Article";

rs.open(sql,conn,1,1)

while(!rs.EOF)

{

%>

<%=rs("title")%>

<%

rs.MoveNext();

}

rs.Close();

rs=null;

%>

Step2:为了达到伪静态的目的,就必须在前台页面加上伪静态的代码。接下来就要修改url的参数形式:

在<%=rs("title")%>两边插入.html">和,即.html"><%=rs("title")%>

1、Article.asp?/<%=rs("id")%>.html:这句代码实现了伪静态,当点击该链接后,地址显示的就是href的值。

2、至此前台脚本就写完了,最关键的一句就是article.asp?/<%=rs("id")%>.html。接下来写后台的处理数据。
index.asp:
 

<%

var rs=Server.CreateObject("adodb.recordset");

sql="select * from Article";

rs.open(sql,conn,1,1)

while(!rs.EOF)

{

%>

<%

rs.MoveNext();

}

rs.Close();

rs=null;

%>

Step3:新建一个后台文件Article.asp,保存核心代码。由于连接数据库不是本专题的重点,故直接给出:

/*连接数据库的代码*/
<%

ReadNews(id); ‘从数据库中读出记录

%>

标题: <%=News_title%>
/*显示记录*/

内容: <%=News_content%>

Step4:由于传递进的url包含参数,故首先截取参数:

var sParam=String(Request.ServerVariables("QUERY_STRING"));

1、ServerVariables是asp的环境变量,UERY_STRING保存了动态url的参数。例如,如果url是www.oursn.com/essay.asp?/1.html,那么sParam保存的值就是问号以后的字符串,即sParam=/1.html。

2、String()是将参数强制性转化为字符串,这里Request .ServerVariables返回的是一个对象object,而不是字符出串,故需要转化。

Article.asp:
 

/*连接数据库的代码*/

<%

var sParam=String(Request.ServerVariables("QUERY_STRING"));

ReadNews(id); ‘从数据库中读出记录

%>

标题: <%=News_title%>
/*显示记录*/

内容: <%=News_content%>

Step5:截取参数字符串后,进一步获取id的值,这里是数字1,可以通过字符串方法replace()来实现:

var id=parseInt(sParam.replace("/","").replace(".html",""));

1、sParam.replace("/","")是用空格代替了sParam中的斜杠,即1.html。

2、sParam.replace("/","").replace(".html","")是用空格代替了1.html的. Html,即1,但这时的1还是字符串,再通过parseInt()强制转化为整型,最后赋给id。则id中保存是值型的1。

Article.asp:
 

/*连接数据库的代码*/

<%

var sParam=String(Request.ServerVariables("QUERY_STRING"));

var id=parseInt(sParam.replace("/","").replace(".html",""));

ReadNews(id); ‘从数据库中读出记录

%>

标题: <%=News_title%>
/*显示记录*/

内容: <%=News_content%>

config.asp中的代码:

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>

<%

var db="data.mdb";

var conn = Server.CreateObject("ADODB.Connection")

var connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath(db);

conn.open(connstr)