js|區別|js 今天上論壇看了看,有一個網友
bluesky提出問題說“ASP與JSP哪個好,他們有什麼區別?”論壇文章請單擊這裡看:http://www.webjx.com/bbs/topic.php?tid=4766
動態網頁技術開發ASP和JSP的比較請看這裡:http://www.webjx.com/htmldata/2005-05-29/1117327873.html
ASP好像不存線上程安全問題,而JSP是存線上程安全問題。這不是說ASP好,恰恰相反說明ASP不如JSP好。
對於ASP:每次請求都要解釋執行伺服器端代碼,執行完除了Session和Application在,其他的都沒了,這樣的話ASP就無法實現靜態變數,不知道是不是真的沒有辦法實現,請高手指點。
而在JSP中,Servlet(JSP也會變成Servlet)是多線程的,執行完後不但Session和Application還在,而且Servlet執行個體還在記憶體,以後請求的話就可以直接用它了,正是這個提高了效率。
我總感覺Servlet模型比ASP先進,而且Java語言使它很專業!這點真的是ASP遠遠無法比的。
JSP和ASP的幾點區別
Session管理
為了跟蹤使用者的操作狀態,ASP應用SESSION對象。JSP使用一個叫HttpSession的對象實現同樣的功能。Session的資訊儲存在伺服器端,Session的id儲存在客戶機的cookie中。如果客戶機禁止cookie,Session Id就必須帶在url後面。Session一般在伺服器上設定了一個30分鐘的到期時間,當客戶停止活動後自動失效。Session 中儲存和檢索的資訊不能是基礎資料型別 (Elementary Data Type)(primitivedatatypes)如(int, double)等,而必須是java的相應的object(對象)如(Integer,Double)。
HttpSessionsession=request.getSession();//得到一個session對象或建立一個
session.getId()//得到sessionID數
Integerid=(Integer)session.getValue("id")//檢索出session的值並轉化為整型 session.putValue("ItemValue",itemName);//ItemValue必須不是must簡單類型
Application管理
有時伺服器需要管理面向整個應用的參數,使得每個客戶都能獲得同樣的參數值。和Session一樣,ASP使用Application對象而JSP使用ServletContext對象,操作的方法和Session一樣。
getServletContext().setAttribute("Item",ItemValue);//設定一個應用變數
Integeri=(Integer)getServletContext().getAttribute("ItemName");//得到//item
ServerSideIncludes
在伺服器端引用上ASP和JSP有著相同之處。ASP和JSP都可以支援此功能的伺服器(IIS,APACHE)上實現伺服器端包含虛檔案。但JSP是將動態網頁面的結果包含進來,而不是包含檔案的代碼本身。當你包含的檔案在另一個伺服器上時,不包含任何代碼和對象是一個非常有效功能。
ASP:<!--#includefile="subfile.asp"-->
JSP:<%@includefile="subfile.jsp"-->