狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

關(guān)于ASP到JSP功能轉(zhuǎn)換的研究

admin
2011年4月10日 9:33 本文熱度 3416
簡介: JSP和ASP在技術(shù)上有許多共同之處,它們都是用來開發(fā)基于Web應(yīng)用的動(dòng)態(tài)頁面,并且兩者都可以使開發(fā)人員通過使用構(gòu)件技術(shù)將程序邏輯從頁面設(shè)計(jì)中分離出來。

 


第一章 JavaServer Pages與Microsoft Active Server Pages的技術(shù)比較


一、介紹


首先,JSP和ASP在技術(shù)上有許多共同之處,它們都是用來開發(fā)基于Web應(yīng)用的動(dòng)態(tài)頁面,并且兩者都可以使開發(fā)人員通過使用構(gòu)件技術(shù)將程序邏輯從頁面設(shè)計(jì)中分離出來。雖然,JavaServer Pages和Microsoft Active Server Pages有許多類似的地方,但依然存在很多不同之處。它們的不同之處與它們的相同點(diǎn)同樣顯著,對(duì)于使用它們的開發(fā)人員以及采用它們作為自己網(wǎng)絡(luò)體系結(jié)構(gòu)的一部分的那些組織來說,這些不同點(diǎn)有著更加深遠(yuǎn)的意義。


二、JSP技術(shù):一種開放的方式


在許多方面,對(duì)于JSP和ASP來說,它們兩者最大的區(qū)別取決于軟件開發(fā)方法的不同。JSP技術(shù)具有服務(wù)器無關(guān)性和平臺(tái)無關(guān)性,而ASP是Microsoft產(chǎn)品,故只能依賴于Microsoft技術(shù)。


1.平臺(tái)無關(guān)性和服務(wù)器無關(guān)性


JSP技術(shù)堅(jiān)持了Java體系結(jié)構(gòu)的思想,即:一次編寫,隨處運(yùn)行。JSP技術(shù)可以運(yùn)行任何Web服務(wù)器,并且被各種類型的工具支持,而不是與一種平臺(tái)或者開發(fā)商綁定在一起。因?yàn)锳SP技術(shù)使用了ActiveX控制技術(shù),所以被嚴(yán)格的限制在微軟的Windows平臺(tái)下。因?yàn)锳ctiveX對(duì)象是平臺(tái)相關(guān)的,所以作為微軟IIS一個(gè)重要特征的ASP技術(shù),很難在廣泛的Web服務(wù)器上運(yùn)行。


2.開放開發(fā)過程和資源


Sun公司使用Java Community Process開發(fā)JSP技術(shù),已經(jīng)將JSP和Java Servlet源碼的最新版本授權(quán)給了Apache公司,他們與其他一些公司和個(gè)人將開放性的開發(fā)一個(gè)健壯的Reference implementation(RI),而這個(gè)RI是可以被任何公司和個(gè)人免費(fèi)使用的。JSP的應(yīng)用程序接口(API)已經(jīng)得到了勿庸置疑的益處,并且將繼續(xù)從中受益。而ASP技術(shù)由于是微軟產(chǎn)品,所以完全在一個(gè)非開放的環(huán)境下開放。















  ASP技術(shù) JSP技術(shù)
Web服務(wù)器 Microsoft IIS or Personal Web Server 任何Web服務(wù)器,包括Apache, Netscape, 和 IIS
平臺(tái) Microsoft Windows 大多數(shù)的流行平臺(tái),包括Solaris 操作環(huán)境, Microsoft Windows, Mac OS, Linux, and 其他 UNIX 平臺(tái)實(shí)現(xiàn)

三、從開發(fā)人員角度來看


ASP和JSP技術(shù)都可以使開發(fā)人員通過使用構(gòu)件技術(shù)將程序邏輯從頁面設(shè)計(jì)中分離出來。ASP支持COM模型,而JSP支持基于JavaBean技術(shù)的構(gòu)件。


1、跨平臺(tái)的復(fù)用性


開發(fā)人員都將注意力集中在復(fù)用性上,而JSP構(gòu)件(Enterprise JavaBeans,JavaBeans,以及JSP tags)是跨平臺(tái)可復(fù)用的。基于構(gòu)件的模型加速了應(yīng)用開發(fā)的進(jìn)度,因?yàn)樗梢允归_發(fā)人員:


A.使用輕量級(jí)的子構(gòu)件可以快速建立應(yīng)用原型,然后再整合一些其他的功能;


B.在不同的地方完成部分任務(wù),然后一起封裝在Java Bean或者Enterprise JavaBeans組件。


2.Java的優(yōu)點(diǎn)


JSP使用Java語言作為腳本語言,而ASP使用微軟的VBScript或者JScript。Java語言是一種成熟的、強(qiáng)大的、可擴(kuò)展的編程語言,能夠提供比基于Basic的腳本語言更多的好處。Java語言提供了比解釋型的VBScript和JScript語言更加出眾的性能。因?yàn)镴SP頁面使用了Java技術(shù),并且首先被編譯成為Java Servlet,所以它可以為已知的HTTP應(yīng)用提供全套的服務(wù)器端的JAVA類庫。


Java語言使開發(fā)人員的工作在其他方面也變得更加方便。例如:ASP應(yīng)用在Windows NT 系統(tǒng)上易于崩潰,而JSP卻可以防止這點(diǎn)。Java語言通過提供防止內(nèi)存泄漏和指針錯(cuò)誤的保護(hù)措施來幫助管理內(nèi)存。而且,JSP提供強(qiáng)壯的例外處理,這對(duì)于現(xiàn)實(shí)的應(yīng)用是必要的。


3.更易于維護(hù)


使用JSP技術(shù)的應(yīng)用比基于ASP的應(yīng)用更易于長時(shí)間的維護(hù)。


a.腳本語言對(duì)于小的應(yīng)用來說是很好的,但它很難管理巨大的、復(fù)雜應(yīng)用。因?yàn)镴ava語言是結(jié)構(gòu)化的,所以用它可以很簡單的建造和維護(hù)大型的模塊應(yīng)用。


b.JSP技術(shù)更加強(qiáng)調(diào)構(gòu)件而不是腳本,這樣便于修改內(nèi)容而不必改變邏輯,或者修改邏輯而不必?fù)?dān)心對(duì)于內(nèi)容有所影響。


c.Enterprise JavaBeans結(jié)構(gòu)封裝了企業(yè)級(jí)的邏輯,比如訪問數(shù)據(jù)庫,安全,以及事務(wù),它將企業(yè)級(jí)的邏輯和應(yīng)用本身分離開。


d.由于JSP技術(shù)是一種開放的、跨平臺(tái)的體系結(jié)構(gòu),所以Web服務(wù)器、平臺(tái)以及其他的構(gòu)件可以很容易的升級(jí)或者轉(zhuǎn)換,而不會(huì)影響基于JSP的應(yīng)用。這使得JSP更加適合現(xiàn)實(shí)中日新月異的Web應(yīng)用。























  ASP技術(shù) JSP技術(shù)
復(fù)用的跨平臺(tái)構(gòu)件 Java Beans,Enterprise JavaBeans,custom JSP tags
針對(duì)系統(tǒng)崩潰的安全性
內(nèi)存泄漏保護(hù)
腳本語言 VBScript,Jscript Java

四、在企業(yè)級(jí)的可用性


Java 2 Platform,Enterprise Edition(J2EE)是一種用來實(shí)現(xiàn)復(fù)雜的企業(yè)級(jí)應(yīng)用的Java體系結(jié)構(gòu)。作為J2EE的一部分,JSP頁面可以連接到所有的J2EE構(gòu)件,包括JavaBeans和Enterprise JavaBeans以及Java Servlets。事實(shí)上,JSP頁面首先被編譯成Java Servlets,所以它們有Java應(yīng)用的所有好處。J2EE平臺(tái)容器管理復(fù)雜的企業(yè)級(jí)應(yīng)用,包括事務(wù)處理和資源池。


JSP頁面可以連接所有標(biāo)準(zhǔn)的J2EE服務(wù),包括:


1.Java Naming and Directory InterfaceTM API


2.JDBCTM API


3.JavaMailTM


4.JavaTM Message Service (JMS)


最后,因?yàn)镴SP技術(shù)是通過Java Community Process開發(fā)的,所以它獲得了從工具、web服務(wù)器以及應(yīng)用服務(wù)商方面的廣泛支持。所以,用戶和合作伙伴可以采取最佳方法,選擇對(duì)于他們的特定應(yīng)用最為適合的工具,來保證他們?cè)诰幋a和人員培訓(xùn)上的投資。























  ASP技術(shù) JSP技術(shù)
與數(shù)據(jù)庫匹配 有(COM) 有(JDBC API)
與數(shù)據(jù)源的整合 ODBC JDBC
構(gòu)件 COM構(gòu)件 Java Beans,Enterprise JavaBeans,extensible JSP tags
可擴(kuò)展的工具支持






第二章 如何將ASP轉(zhuǎn)換成為JSP


下面我們將通過ASP和JSP語法和對(duì)象之間的比較來說明,從ASP到JSP之間的轉(zhuǎn)換是可以實(shí)現(xiàn)的。


隱含對(duì)象


Application Object: 在所有用戶間分享當(dāng)前應(yīng)用信息。





<% Dim ls_write
For Each Key in Application.Contents
ls_write = Key + ":"+Application(Key)
Next
%>


Config Object: 存儲(chǔ)servlet的配置信息,但是很少使用。



























功能 ASP JSP
對(duì)象名稱 ASP沒有類似對(duì)象 config
對(duì)象類型 N/A javax.servlet.ServletConfig
Servlet名稱 N/A getServletName
返回servlet初始化參數(shù)的名稱 N/A getInitParameterNames()
得到初始參數(shù)的值 N/A getInitParameter(String name)

Error Object: 包含在腳本中發(fā)生的任何錯(cuò)誤信息



































功能 ASP JSP
對(duì)象名稱 ASPError Exception
對(duì)象類型 N/A java.lang.Throwable
特別注意 在最新的ASP3.0/IIS5.0對(duì)象,可以使用Server.GetLastError方法來獲得ASPError對(duì)象 只有把頁面定義為error頁面的時(shí)候才能夠得到它。可以使用如下聲明:
<%@ page isErrorPage="true" %>
錯(cuò)誤消息 Description () getMessage()
得到全部錯(cuò)誤 ASPDescription() toString()
錯(cuò)誤跟蹤 N/A printStackTrace(out)
錯(cuò)誤位置 LineColumn N/A

Out: 用來寫和控制從服務(wù)器到瀏覽器的輸出緩存



































功能 ASP JSP
對(duì)象名稱 Response out
對(duì)象類型 N/A javax.servlet.jsp.JspWriter
將數(shù)據(jù)寫入output 緩存中 Write variant print(object or primitive data type)
寫二進(jìn)制數(shù)據(jù) BinaryWrite data 必須通過java OutputStream類來使用這個(gè)方法。
ServletOutputStream Output = response.getOutputStream();Output.write(Btye[] buffer);
清空out緩存 Clear clearBuffer()
發(fā)送當(dāng)前的緩存到客戶端 Flush flush()
停止處理當(dāng)前頁面 End close()
這與end不同,它關(guān)閉了當(dāng)前的輸出流,而JSP頁面仍然將完成它的處理

Request Object: 從客戶端(瀏覽器)接受信息。































功能 ASP JSP
對(duì)象名稱 Request request
對(duì)象類型 N/A 是javax.servlet.ServletRequest的子類
通常是javax.servlet.HttpServletRequest
Cookie細(xì)節(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對(duì)待response對(duì)象有一些不同。ASP只使用Response對(duì)象來控制到瀏覽器的輸出。JSP將這個(gè)功能分離到兩個(gè)對(duì)象中。在JSP中Response是被發(fā)送到客戶端的實(shí)際對(duì)象。JSP也使用out對(duì)象來實(shí)現(xiàn)向輸出緩存寫功能。











































功能 ASP JSP
對(duì)象名稱 Response response
對(duì)象類型 N/A 是javax.servlet.ServletResponse的子類,通常用:javax.servlet.HttpServletResponse
緩存頁面輸出 Buffer = True/False JSP的頁面緩存通常為8K。可以設(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)
使客戶端連接到另外一個(gè)頁面 Redirect URL sendRedirect(Absolute URL)
發(fā)送錯(cuò)誤信息到客戶端 N/A sendError(int code,String msg)
設(shè)置輸出MIME類型 ContentType = "MIME TYPE" setContentType("MIME TYPE")

Server Object: 提供到服務(wù)器端的方法和屬性的連接。



































功能 ASP JSP
對(duì)象名稱 Server JSP沒有服務(wù)器對(duì)象,在ASP Server對(duì)象中的功能已經(jīng)被分配到了別的頁面中
對(duì)象類型 N/A N/A
在服務(wù)器端創(chuàng)建一個(gè)對(duì)象 CreateObject(Object id) N/A
對(duì)一個(gè)String進(jìn)行HTML編碼 HTMLEncode(String) N/A
通過絕對(duì)路徑尋找文件 MapPath( Path ) N/A
對(duì)URL進(jìn)行編碼 URLEncode(String) N/A
設(shè)置超時(shí) ScriptTimeout = Seconds N/A

Session Object:為一個(gè)用戶在多頁面間共享信息。

































































功能 ASP JSP
對(duì)象名稱 Session session
對(duì)象類型 N/A javax.servlet.http.HttpSession
注意 ASP通過使用cookie使用session JSP有兩種session管理方法:
1.使用cookie
2.使用URL重寫
關(guān)閉session并釋放其資源 Abandon invalidate()
存儲(chǔ)一個(gè)session變量 Session (String name) ="Your Data" setAttribute(String name,Object object)*
存儲(chǔ)一個(gè)session對(duì)象 Set Session (String name) = Server.CreateObject(String name) 同上
獲取一個(gè)session變量 My_Variable = Session(String name) getAttribute (String name)*


獲取一個(gè)session對(duì)象 Set My_Object = Session(String name) 同上
刪除一個(gè)session的對(duì)象或變量 Contents.Remove(String name) removeAttribute(String name)
收集內(nèi)容 Contents getAttributeNames()
Session ID SessionID string =getId()
設(shè)置超時(shí) Timeout(Minutes) setMaxInactiveInterval(int interval in seconds)
得到超時(shí)設(shè)置 N/A int =getMaxInactiveInterval()
禁用session <%@ EnableSessionState = False%> <%@ page session="false"%>

腳本


腳本聲明:怎么將服務(wù)器端的腳本從客戶端的腳本中分離開。









ASP JSP
<% Your Server Side Script %> <% Your Server Side Script %>

表達(dá)式:將數(shù)據(jù)直接送到輸出緩存中。









ASP JSP
<%= Your_Variable %> <%= Your_Variable %>

申明:申明變量和方法,使他們可以在本頁面內(nèi)使用。









ASP JSP
<% Your Function %> <%!Your Function %>

標(biāo)識(shí):告訴容器怎樣處理這個(gè)頁面,












ASP JSP
<%@ Your Directive %> <%@ Your Directive %>
例如設(shè)置腳本語言:
<%@ LANGUAGE="VBSCRIPT" %>
再如:
<%response.buffer=true%>
標(biāo)識(shí)發(fā)送信息給容器
標(biāo)識(shí)不向輸出緩存發(fā)送信息
當(dāng)JSP頁面初始化時(shí),標(biāo)識(shí)被處理
例如設(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
<!--#include file="Your File.asp" -->
<!--#include virtual ="/Your File.asp"-->
<%@ include file="Your File" %>
<jsp:directive.include file="Your File" %>

轉(zhuǎn)文件









ASP JSP
response.redirect("to_File.asp") response.sendRedirect("to_File.asp")







一、目的:


通過Asp以及JSP對(duì)于相同功能處理的比較,研究和實(shí)現(xiàn)從ASP到JSP的轉(zhuǎn)換。從實(shí)際應(yīng)用考慮,我們選取了與數(shù)據(jù)庫相關(guān)的一些有代表性的功能,包括三個(gè)具體功能:查詢、添加以及刪除。


二、頁面功能介紹:


1. 數(shù)據(jù)庫名稱以及表名稱(共用)





database name:pdtdb
table name:pdtinfotable


所用表結(jié)構(gòu)(共用)





create table pdtinfotable
(
ID char(20) not null,
ProductName char(20) ,
primary key(ID)
)


2.各頁面功能說明


第一個(gè)index,addaction用2個(gè)頁面:





 index:  select * from table 
submit insert value(ID, ProductName) go to "addaction"
addaction: get parameter: "ID" and "ProductName";
Do the "insert function " go back "index"



第二個(gè)search用1個(gè)頁面 :





select * from table where  ID= parameter "ID" or ProductName= paramenter "ProductName"   
submit "ID" and "ProductName"


第三個(gè)delete,deleteaction用2個(gè)頁面:





delete: select * from table


每個(gè)行后面又一個(gè)超鏈接(鏈到deleteaction).





deleteaction: delete from pdtinfo where ID= parameter "ID" ,go back "delete"


3.JavaBean


使用 tax.mydb.class


三、代碼詳細(xì)比較:


index:





strConnection = "DSN=pdtdb;Database=pdtdb;"
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.Open strConnection
Set objRS=Server.CreateObject("ADODB.Recordset")
Set objRS.ActiveConnection=objConn


addaction





strConnection = "DSN=pdtdb;Database=pdtdb;"
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.Open strConnection
Set objRS=Server.CreateObject("ADODB.Recordset")
Set objRS.ActiveConnection=objConn


search:





strConnection = "DSN=pdtdb;Database=pdtdb;"
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.Open strConnection
Set objRS=Server.CreateObject("ADODB.Recordset")
Set objRS.ActiveConnection=objConn

delete





strConnection = "DSN=pdtdb;Database=pdtdb;"
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.Open strConnection
Set objRS=Server.CreateObject("ADODB.Recordset")
Set objRS.ActiveConnection=objConn


deleteaction





strConnection = "DSN=pdtdb;Database=pdtdb;"
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.Open strConnection
Set objRS=Server.CreateObject("ADODB.Recordset")
Set objRS.ActiveConnection=objConn

(注釋:JavaBean請(qǐng)參加tax.mdb.java文檔)



作者簡介


張陽,清華大學(xué)電機(jī)工程與應(yīng)用電子技術(shù)系98級(jí)學(xué)生,2001年參加Ogilvy公司在亞太地區(qū)的Pond's網(wǎng)站建設(shè),2003年初加入IBM作為實(shí)習(xí)生至今,主要負(fù)責(zé)WASE的技術(shù)支持工作。可以通過 sunning_chang@hotmail.com與張陽聯(lián)系。


趙礴是北京大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系99級(jí)學(xué)生,于2002年作為實(shí)習(xí)生加入北大與貝爾聯(lián)合實(shí)驗(yàn)室,參與了“PKU-AS”(863項(xiàng)目) 項(xiàng)目,它是一個(gè)J2EE的應(yīng)用服務(wù)器,實(shí)現(xiàn)了微內(nèi)核體系結(jié)構(gòu) ,支持平臺(tái)的動(dòng)態(tài)體系機(jī)構(gòu)和在線演化功能。他是部署工具和CMP(container managed persistence)的主要研發(fā)人員。曾任計(jì)算機(jī)系學(xué)生會(huì)主席。現(xiàn)在IBM中國有限公司作實(shí)習(xí)生。可以通過 zhaobopku@yahoo.com.cn與 趙礴 聯(lián)系


該文章在 2011/4/10 9:33:30 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved