從語法和對象比較看ASP與JSP功能的可轉(zhuǎn)化性
我們將通過ASP和JSP語法和對象之間的比較來說明,從ASP到JSP之間的轉(zhuǎn)換是可以實現(xiàn)的。
ASP與JSP的隱含對象
Application Object: 在所有用戶間分享當前應(yīng)用信息。
- < % Dim ls_write
 - For Each Key in Application.Contents
 - ls_write = Key + ":"+Application(Key)
 - Next
 - %>
 
Config Object: 存儲servlet的配置信息,但是很少使用。
| 功能 | ASP | JSP | 
| 對象名稱 | ASP沒有類似對象 | config | 
| 對象類型 | N/A | javax.servlet.ServletConfig | 
| Servlet名稱 | N/A | getServletName | 
| 返回servlet初始化參數(shù)的名稱 | N/A | getInitParameterNames() | 
| 得到初始參數(shù)的值 | N/A | getInitParameter(String name) | 
Error Object: 包含在腳本中發(fā)生的任何錯誤信息
| 功能 | ASP | JSP | 
| 對象名稱 | ASPError | Exception | 
| 對象類型 | N/A | java.lang.Throwable | 
| 特別注意 | 在最新的ASP3.0/IIS5.0對象,可以使用Server.GetLastError方法來獲得ASPError對象 | 只有把頁面定義為error頁面的時候才能夠得到它??梢允褂萌缦侣暶鳎? < %@ page isErrorPage="true" %>  | 
| 錯誤消息 | Description () | getMessage() | 
| 得到全部錯誤 | ASPDescription() | toString() | 
| 錯誤跟蹤 | N/A | printStackTrace(out) | 
| 錯誤位置 | LineColumn | N/A | 
Out: 用來寫和控制從服務(wù)器到瀏覽器的輸出緩存
| 功能 | ASP | JSP | 
| 對象名稱 | Response | out | 
| 對象類型 | N/A | javax.servlet.jsp.JspWriter | 
| 將數(shù)據(jù)寫入output 緩存中 | Write variant | print(object or primitive data type) | 
| 寫二進制數(shù)據(jù) | BinaryWrite data | 必須通過java OutputStream類來使用這個方法。  ServletOutputStream Output = response.getOutputStream();Output.write(Btye[] buffer);  | 
| 清空out緩存 | Clear | clearBuffer() | 
| 發(fā)送當前的緩存到客戶端 | Flush | flush() | 
| 停止處理當前頁面 | End | close()  這與end不同,它關(guān)閉了當前的輸出流,而JSP頁面仍然將完成它的處理  | 
Request Object: 從客戶端(瀏覽器)接受信息。
| 功能 | ASP | JSP | 
| 對象名稱 | Request | request | 
| 對象類型 | N/A | 是javax.servlet.ServletRequest的子類  通常是javax.servlet.HttpServletRequest  | 
| Cookie細節(jié) | Cookies(cookie)[(key).attribute] | cookie[]=getCookies() | 
| 獲取表格數(shù)據(jù) | string = Form(element)[(index)]For example:mydata= Request.Form("date") | string = getParameter(Name)Enum = getParameterNames()string[]= getParameterValues(name)For example:ls_form = request.getParameter("date"); | 
| 獲取查詢數(shù)據(jù) | QueryString(element)[(index)|.Count] | getParameter(Name)getQueryString() (entire query string) | 
| 由客戶端發(fā)送的HTTP頭 | ServerVariables (server environment var)For example:  ServerVariables (ALL_RAW) returns to you all the headers in raw format  | 
getHeaderNames()getHeader(name)getHeaders(name)getIntHeader(name)getDateHeader(name) | 
Response Object:發(fā)送信息到瀏覽器。ASP和JSP對待response對象有一些不同。ASP只使用Response對象來控制到瀏覽器的輸出。JSP將這個功能分離到兩個對象中。在JSP中Response是被發(fā)送到客戶端的實際對象。JSP也使用out對象來實現(xiàn)向輸出緩存寫功能。
| 功能 | ASP | JSP | 
| 對象名稱 | Response | response | 
| 對象類型 | N/A | 是javax.servlet.ServletResponse的子類,通常用:javax.servlet.HttpServletResponse | 
| 緩存頁面輸出 | Buffer = True/False | JSP的頁面緩存通常為8K??梢栽O(shè)置緩存大小,下面的例子是關(guān)閉緩存 < %@ page buffer= "none" %> | 
| 啟用/不啟用代理服務(wù)器緩存 | CacheControl =Private/Public | setHeader("Pragma","no-cache")setHeader("Cache-Control","no-cache") | 
| 添加Cookie | Cookies(cookie)[(key).attribute] = value | addCookie(cookie) | 
| 添加Http頭 | AddHeader Name,Value | setHeader(Name,Value) | 
| 使客戶端連接到另外一個頁面 | Redirect URL | sendRedirect(Absolute URL) | 
| 發(fā)送錯誤信息到客戶端 | N/A | sendError(int code,String msg) | 
| 設(shè)置輸出MIME類型 | ContentType = "MIME TYPE" | setContentType("MIME TYPE") | 
Server Object: 提供到服務(wù)器端的方法和屬性的連接。
| 功能 | ASP | JSP | 
| 對象名稱 | Server | JSP沒有服務(wù)器對象,在ASP Server對象中的功能已經(jīng)被分配到了別的頁面中 | 
| 對象類型 | N/A | N/A | 
| 在服務(wù)器端創(chuàng)建一個對象 | CreateObject(Object id) | N/A | 
| 對一個String進行HTML編碼 | HTMLEncode(String) | N/A | 
| 通過絕對路徑尋找文件 | MapPath( Path ) | N/A | 
| 對URL進行編碼 | URLEncode(String) | N/A | 
| 設(shè)置超時 | ScriptTimeout = Seconds | N/A | 
Session Object:為一個用戶在多頁面間共享信息。
| 功能 | ASP | JSP | 
| 對象名稱 | Session | session | 
| 對象類型 | N/A | javax.servlet.http.HttpSession | 
| 注意 | ASP通過使用cookie使用session | JSP有兩種session管理方法:  1.使用cookie 2.使用URL重寫  | 
| 關(guān)閉session并釋放其資源 | Abandon | invalidate() | 
| 存儲一個session變量 | Session (String name) ="Your Data" | setAttribute(String name,Object object)* | 
| 存儲一個session對象 | Set Session (String name) = Server.CreateObject(String name) | 同上 | 
| 獲取一個session變量 | My_Variable = Session(String name) | getAttribute (String name)* | 
| 獲取一個session對象 | Set My_Object = Session(String name) | 同上 | 
| 刪除一個session的對象或變量 | Contents.Remove(String name) | removeAttribute(String name) | 
| 收集內(nèi)容 | Contents | getAttributeNames() | 
| Session ID | SessionID | string =getId() | 
| 設(shè)置超時 | Timeout(Minutes) | setMaxInactiveInterval(int interval in seconds) | 
| 得到超時設(shè)置 | N/A | int =getMaxInactiveInterval() | 
| 禁用session | < %@ EnableSessionState = False%> | < %@ page session="false"%> | 
ASP與JSP的腳本
腳本聲明:怎么將服務(wù)器端的腳本從客戶端的腳本中分離開。
| ASP | JSP | 
| < % Your Server Side Script %> | < % Your Server Side Script %> | 
表達式:將數(shù)據(jù)直接送到輸出緩存中。
| ASP | JSP | 
| < %= Your_Variable %> | < %= Your_Variable %> | 
申明:申明變量和方法,使他們可以在本頁面內(nèi)使用。
| ASP | JSP | 
| < % Your Function %> | < %!Your Function %> | 
標識:告訴容器怎樣處理這個頁面,
| ASP | JSP | 
| < %@ Your Directive %> | < %@ Your Directive %> | 
| 例如設(shè)置腳本語言:  < %@ LANGUAGE="VBSCRIPT" %> 再如: < %response.buffer=true%>  | 
標識發(fā)送信息給容器  標識不向輸出緩存發(fā)送信息 當JSP頁面初始化時,標識被處理 例如設(shè)置腳本語言: < %@ page language= "java"%> 再如: < %@ pagebuffer="64k"autoFlush= "true"%>  | 
腳本注釋:
| 注釋類型 | ASP | JSP | 
| 一般注釋 | < % 'Your Comment %> | Java的注釋:  < %//my comment %> 或< % /* my comment */ %>  | 
| 特定注釋 | N/A | JSP的注釋:  < %-- your comment --%> 這類注釋不在容器中處理,也不放入servlet中  | 
ASP與JSP的引入文件
引入:在頁面沒有處理前,引入文件
| ASP | JSP | 
| < !--#include file="Your File.asp" -->  < !--#include virtual ="/Your File.asp"-->  | 
< %@ include file="Your File" %>  < jsp:directive.include file="Your File" %>  | 
ASP與JSP的轉(zhuǎn)文件
| ASP | JSP | 
| response.redirect("to_File.asp") | response.sendRedirect("to_File.asp") | 
【編輯推薦】















 
 
 


 
 
 
 