jsp mysql優點_asp、php、asp.net、jsp的介紹和各自的優缺點

現在主流的網站開發語言無外乎asp、php、asp.net、jsp等。

主流網站開發語言之ASP:ASP是微軟(Microsoft)所開發的一種后臺,它的語法和Visual BASIC類似,可以像SSI(Server Side Include)那樣把后臺腳本代碼內嵌到HTML頁面中。雖然ASP簡單易用,但是它自身存在著許多缺陷,最重要的就是安全性問題。目前在微軟的 .net戰略中新推出的ASP.net 借鑒了Java技術的優點,使用C Sharp (C#) 語言作為ASP.net的推薦語言,同時改進了以前ASP的安全性差等缺點。但是,使用ASP/ASP.net仍有一定的局限性,因為從某種角度來說它們只能在微軟的 Windows NT/2000/XP + IIS的服務器平臺上良好運行(雖然像ChilliSoft提供了在UNIX/Linux上運行ASP的解決方案,但是目前ASP在UNIX/Linux上的應用可以說幾乎為0)。所以平臺的局限性和ASP自身的安全性限制了ASP的廣泛應用。

ASP在執行的時候,是由IIS調用程序引擎,解釋執行嵌在HTML中的,最終將結果和原來的HTML一同送往客戶端。

主流網站開發語言之PHP:PHP的全名非常有趣,它是一個巢狀的縮寫名稱——“PHP: Hypertext Preprocessor”,打開縮寫還是縮寫。PHP是一種HTML 內嵌式的語言 (就像上面講的ASP那樣)。而 PHP 獨特的語法混合了C,Java,Perl以及 PHP 式的新語法。它可以比 CGI 或者 Perl 更快速地執行動態網頁。

PHP的源代碼完全公開,在 Open Source 意識抬頭的今天,它更是這方面的中流砥柱。不斷地有新的函數庫加入,以及不停地更新,使得 PHP 無論在 UNIX 或是Win32 的平臺上都可以有更多新的功能。它提供豐富的函數,使得在程式設計方面有著更好的資源。PHP在4.0版后使用了全新的,其在最佳化之后的效率,比較傳統 CGI 或者 ASP 等技術有了更好的表現。

平臺無關性是PHP的最大優點,但是在優點的背后,還是有一些小小的缺點的。如果在PHP中不使用ODBC,而用其自帶的(這樣的效率要比使用ODBC高)來連接數據庫的話, 使用不同的數據庫,PHP的函數名不能統一。這樣,使得程序的移植變得有些麻煩。不過,作為目前應用最為廣泛的一種后臺語言,PHP的優點還是異常明顯的。

ASP.NET:ASP.net是的一部分,作為戰略產品,不僅僅是 Active Server Page (ASP) 的下一個版本;它還提供了一個統一的Web 開發模型,其中包括開發人員生成企業級 Web 應用程序所需的各種服務。ASP.NET 的語法在很大程度上與 ASP 兼容,同時它還提供一種新的編程模型和結構,可生成伸縮性和穩定性更好的應用程序,并提供更好的安全保護。可以通過在現有 ASP 應用程序中逐漸添加 ASP.NET 功能,隨時增強 ASP 應用程序的功能。ASP.NET 是一個已編譯的、基于 .NET 的環境,可以用任何與 .NET 兼容的語言(包括 Visual Basic .NET、C# 和 JScript .NET.)創作應用程序。另外,任何 ASP.NET 應用程序都可以使用整個 .NET Framework。開發人員可以方便地獲得這些技術的優點,其中包括托管的環境、類型安全、繼承等等。ASP.NET 可以無縫地與 WYSIWYG HTML 編輯器和其他編程工具(包括 Microsoft Visual Studio .NET)一起工作。這不僅使得 Web開發更加方便,而且還能提供這些工具必須提供的所有優點,包括開發人員可以用來將服務器控件拖放到 Web 頁的 GUI 和完全集成的調試支持。微軟為ASP.net設計了這樣一些策略:易于寫出結構清晰的代碼、代碼易于重用和共享、可用編譯類語言編寫等等,目的是讓程序員更容易開發出Web應用,滿足計算向Web轉移的戰略需要。

主流網站開發語言之JSP:JSP和Servlet要放在一起講,是因為它們都是的(Java 2 platform Enterprise Edition)應用體系中的一部分。

Servlet的形式和前面講的CGI差不多,它是和后臺程序分開的。它們的啟動原理也差不多,都是服務器接到客戶端的請求后,進行應答。不同的是,CGI對每個客戶請求都打開一個進程(Process),而Servlet卻在響應第一個請求的時候被載入,一旦Servlet被載入,便處于已執行狀態。對于以后其他用戶的請求,它并不打開進程,而是打開一個線程(Thread),將結果發送給客戶。由于線程與線程之間可以通過生成自己的父線程(ParentThread)來實現資源共享,這樣就減輕了服務器的負擔,所以,Java Servlet可以用來做大規模的應用服務。

雖然在形式上JSP和ASP或PHP看上去很相似——都可以被內嵌在中。但是,它的執行方式和ASP或PHP完全不同。在JSP被執行的時候,JSP文件被JSP解釋器(JSPParser)轉換成Servlet代碼,然后Servlet代碼被編譯成 .class 字節文件,這樣就由生成的Servlet來對客戶端應答。所以,JSP可以看做是Servlet的(Script Language)版。

由于JSP/Servlet都是基于Java的,所以它們也有Java語言的最大優點——平臺無關性,也就是所謂的“一次編寫,隨處運行(WORA – Write Once, Run Anywhere)”。除了這個優點,JSP/Servlet的效率以及安全性也是相當驚人的。因此,JSP/Servlet雖然在國內目前的應用并不廣泛,但是其前途不可限量。

在調試JSP代碼時,如果程序出錯,JSP服務器會返回出錯信息,并在瀏覽器中顯示。這時,由于JSP是先被轉換成Servlet后再運行的,所以,瀏覽器中所顯示的代碼出錯的行數并不是JSP源代碼的行數,而是指轉換后的Servlet程序代碼的行數。這給調試代碼帶來一定困難。所以,在排除錯誤時,可以采取分段排除的方法(在可能出錯的代碼前后輸出一些字符串,用字符串是否被輸出來確定代碼段從哪里開始出錯),逐步縮小出錯代碼段的范圍,最終確定錯誤代碼的位置。

主流網站開發語言之CGI:CGI就是公共網關接口 (Common Gateway Interface) 的縮寫。它是最早被用來建立動態網站的后臺技術。這種技術可以使用各種語言來編寫后臺程序,例如C,C++,Java,Pascal等,但是目前在CGI中使用的最為廣泛的是Perl語言。所以,狹義上所指的CGI程序一般都是指Perl程序,一般CGI程序的后綴都是.pl或者.cgi 。

CGI程序在運行的時候,首先是客戶向服務器上的CGI程序發送一個請求,服務器接收到客戶的請求后,就會打開一個新的Process(進程)來執行CGI程序,處理客戶的請求。CGI程序最后將執行的結果(HTML頁面代碼)傳回給客戶。

由于CGI程序每響應一個客戶就會打開一個新的進程,所以,當有多個用戶同時進行CGI請求的時候,服務器就會打開多個進程,這樣就加重了服務器的負擔,使服務器的執行效率變得越來越低下。這也就是最近幾年來隨著各種新的后臺技術的誕生,CGI應用在Internet上越來越少的原因。CGI方式不適合大訪問量的應用。

如今主流的Web服務器軟件主要由IIS或Apache組成。IIS支持ASP且只能運行在Windows平臺下,Apache支持PHP,CGI,JSP且可運行于多種平臺,雖然Apache是世界使用排名第一的Web服務器平臺,但是眾所周知,Windows以易用而出名,也因此占據不少的服務器市場。

我們常用的開發組合:

IIS環境下

1.ASP+ACCESS

2.ASP+SQL SERVER

3.ASP.NET+ACCESS

4.ASP.NET+SQL SERVER

APACHE環境下

5.jsp+Oracale

6.JSP+MYSQL

7.PHP+MYSQL

可以說,asp確實快過時了,在未來jsp和asp.net將會有巨大的潛力,但php憑借其開源的特性也會占有一定份額。

vb一般指vb6.0,是傳統的win32編程。vb.net和asp.net是基于微軟.net平臺的語言。說java好主要是因為java的j2ee部分做企業級開發很強大,而且跨平臺。c#是.net平臺上最好用的語言,現在只能運行在windows系統。 web開發方面.net和j2ee的競爭很激烈,難說以后鹿死誰手。 現在做網站大部分都是asp.net或jsp的,asp.net容易上手,比較普及,但是平臺單一,jsp雖然上手難,但是跨平臺,安全性高。

下面比較一下ASP、ASP.net、JSP和PHP的優點和缺點:

ASP優點:

1. 無需編譯

2. 易于生成

3. 獨立于瀏覽器

4. 面向對象

5. 與任何ActiveX scripting 語言兼容

6. 源程序碼不會外漏

缺點:

1、Windows本身的所有問題都會一成不變的也累加到了它的身上。安全性、穩定性、跨平臺性都會因為與NT的捆綁而顯現出來。

2、ASP由于使用了COM組件所以它會變的十分強大,但是這樣的強大由于Windows NT系統最初的設計問題而會引發大量的安全問題。只要在這樣的組件或是操作中一不注意,哪么外部***就可以取得相當高的權限而導致網站癱瘓或者數據丟失。

3、由于ASP還是一種Script語言所沒除了大量使用組件外,沒有辦法提高其工作效率。它必須面對即時編繹的時間考驗,同時我們還不知其背后的組件會是一個什么樣的狀況。

4、無法實現跨操作系統的應用。當然這也是微軟的理由之一,只有這樣才能發揮ASP最佳的能力。可是我卻認為正是Windows限制了ASP,ASP的概念本就是為一個能讓系統運行于一個大的多樣化環境而設計的。

5、還無法完全實現一些企業級的功能:完全的集群、負載均橫。

ASP.NET優點:

1. 簡潔的設計和實施。

2. 語言靈活,并支持復雜的面向對象特性。

3. 開發環境。

缺點:

1.數據庫的連接復雜。

JSP優點:

1、???? 一處編寫隨處運行。

2、???? 系統的多臺平支持。

3、???? 強大的的可伸縮性。

4、???? 多樣化和功能強大的開發工具支持。

缺點:

1、???? 與ASP一樣,Java的一些優勢正是它致命的問題所在。

2、???? 缺少系統性的資料。

3、???? 速度超慢

PHP優點:

1、???? 一種能快速學習、跨平臺、有良好數據庫交互能力的開發語言。

2、???? 簡單輕便,易學易用。

3、???? 與Apache及其它擴展庫結合緊密。

4、???? 良好的安全性。

缺點:

1、???? 數據庫支持的極大變化。

2、???? 不適合應用于大型電子商務站點

3、???? 安裝復雜。

4、???? 缺少正規的商業支持。

5、???? 無法實現商品化應用的開發。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533378.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533378.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533378.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

測試網絡的帶寬指令_單機千萬級MQTT服務器測試報告

目標:測試創建1000萬客戶端連接到Coolpy7 MQTT服務器端,服務器操作系統 Linux(任意一款發行版服務器版本)。分別在兩臺硬件一樣的服務器,其中一臺用于服務器端運行,另一臺用于創建千萬客戶端連接客戶端機器。在硬件一致的情況下請…

python郵箱爆破_Python在線爆破郵箱賬號密碼測試代碼(親測可用)

dic 字典格式如下(mail.txt) :usernamegmail.com:passwordusernamegmail.com:passwordusernamegmail.com:password以此類推,切記保存成utf-8編碼格式。放置在當前腳本目錄,也可自己定義修改。支持ssl https /imap協議。# version 3.4.0# codingUTF-8# ti…

查看redis aof內存_Redis持久化問題定位與優化技巧

今天主要分享繼Redis持久化方式RDB、AOF之后的一些常用的Redis問題定位于優化方式。這里主要CPU、內存、磁盤在三個維度去分析問題!Fork操作當Redis做RDB或AOF重寫時,一個必不可少的操作就是執行fork操作創建子進程,對于大多數操作系統來說fo…

mysql新增陣列df_DF學Mysql(三)——索引操作

概要:數據庫對象索引其實與書的目錄非常相似,主要是為了提高從表中檢索數據的速度。由于數據存儲在數據庫表中,所以索引是創建在數據庫表對象上的,由表中的一個字段或多個字段生成的鍵組成,這些鍵存儲在數據結構(B-樹或…

python本地瀏覽器注入js_PyQt5內嵌瀏覽器注入JavaScript腳本實現自動化操作的代碼實例...

概要應同學邀請,演示如何使用 PyQt5 內嵌瀏覽器瀏覽網頁,并注入 Javascript 腳本實現自動化操作。下面測試的是一個廉價機票預訂網站(http://www.flyscoot.com/),關鍵點如下使用 QWebEngineView 加載網頁,并顯示進度。在默認配置(…

python裝好了怎么啟動車_【填空題】Python安裝好后,可以直接在CMD命令行下輸入( )命令, 可啟動交互式編程,提示窗口如下:...

傾斜巖層的產狀要素是用巖層層面的()。A.傾角B.走向C.范圍D.傾向E.表面積采用深層攪拌法進行地基加固處理,其適用條件為()。A.砂礫石松軟地基B.松散砂地基C.黏土軟弱地基根據《建筑工程建筑面積計算規則》,下列關于建筑物雨篷結構的建筑面積計算&#xf…

windows設置mysql使用率_Windows下配置Mysql

這里說的配置Mysql,是在安裝時進行的,請先查看:Windows平臺下安裝Mysql緊接上文,安裝完成后將配置選項打上對勾,按下“Finish”,出現下面的界面,這里有一個很好的功能,mysql配置向導…

mysql 云無憂ps教程_華為云數據庫MySQL一鍵開通讀寫分離,無憂應對企業業務高峰情景...

業務大促,訂單暴增,網站流量暴漲幾倍,數據庫服務器容量又要扛不住了,眼睜睜看著生意白白溜走,再苦逼也無法解決,“腫”么辦?別擔心,一鍵開通讀寫分離,而且只需一個連接地…

mysql實體監聽器_GitHub - langjiangit/spring-boot-starter-mysql-binlog: mysql的binlog監聽器

mysql binlog監聽器前置操作1.查看mysql是否開啟binlogshow variables like log_bin;2.查看是否使用row格式的binlogshow variables like binlog_format;3.如果以上都不是請修改mysql的配置文件添加或者修改如下內容#配置binlog存放路徑log-binE://mysql//binlog//mysql-bin#bi…

python 基因序列提取_科學網—簡單的Python腳本提取對應位置基因序列(fasta文件) - 王彬忠的博文...

最近,用Python腳本提取,在基因號已知,位置已知條件下,相對應位置的基因序列時發現,這樣很簡單但是很實用的腳本,在網上卻比較難找。而且,能被找到的腳本,相對于具有初級編程能力的人…

python不能安裝在中文_無法在Python上安裝表

我一直收到錯誤Command "python setup.py egg_info" failed with error code 1 in C:\Users\HP\AppData\Local\Temp\pip-install-sv33cp8y\tables\當嘗試使用^{pr2}$我試過了pip install --upgrade setuptools還有很多其他的東西,但還是不能讓它發揮作用。…

python是強定義語言嗎_python是強類型語言嗎

強弱是對類型而言的。強類型,你有一個值之后這個值是什么類型是確定,比如n1,n的類型是確定的(字符串),因此你不能在Python做n3 mn1運算。而弱類型就不是這樣的,值的類型可以在需要的時候再去確定,比如PHP里…

mysql給字段添加描述_用sql 語句給字段添加描述

用sql 語句給字段添加描述IF not exists(SELECT * FROM ::fn_listextendedproperty (NULL, user, dbo, table, strTableName, column, strColumnName))BEGINexec sp_addextendedpropertyMS_Description, strColumnDesc , user, dbo, table,strTableName, column, strColumnName…

深入java核心_Java核心(五)深入理解BIO、NIO、AIO

導讀:本文你將獲取到:同/異步 阻/非阻塞的性能區別;BIO、NIO、AIO 的區別;理解和實現 NIO 操作 Socket 時的多路復用;同時掌握 IO 最底層最核心的操作技巧。BIO、NIO、AIO 的區別是什么?同/異步、阻/非阻塞…

java反射 獲取參數類型_Java反射帶參構造創建對象時如何自動轉換參數類型

需求是這樣的:有一個類,類的路徑知道,例如是com.xx.xx.xx其中有不同類型的成員變量(個數未知),有對應的setter和getter方法,有一個無參構造和一個全參構造。現在需要用反射機制...需求是這樣的:有一個類&am…

java的樂趣_分享java帶來的快樂

2013年9月17日#2011年7月18日#function reportError(sMessage, sUrl, sLine) {var str "";str " 錯誤信息:" sMessage "\n";str " 錯誤地址:" sUrl "\n";str " 錯誤行數:" sLine "\n";str &…

java arraylist底層實現原理_ArrayList和LinkedList底層原理

ArrayList和LinkedList都是List的實現類,是在日常開發中經常被使用到的兩個集合,我們來結合源碼看下兩個集合的不同之處。先來看下ArrayList的源碼:// 默認的初始化大小private static final int DEFAULT_CAPACITY 10;ArrayList的底層數數組…

java ee jaas_java-ee – Tomcat-Jaas – 如何檢索主題?

i knew that and it works, but I need to retrieve subject to get also roleprincipal不幸的是,它在Java EE中的工作方式不同. JAAS主題只是一個“主要包”,其中哪些代表用戶/調用者主體和/或角色主體根本不是標準化的.每個其他容器在這里做不同的事情. Javadoc for Tomcat’…

java jive歌詞_Java Jive_Manhattan Transfer with Phil Collins_高音質在線試聽_Java Jive歌詞|歌曲下載_酷狗音樂...

Manhattan Transfer with Phil Collins - Java Jive[id:$00000000][ar:曼哈頓行者爵士][ti:Java Jive (LP Version)][by:][hash:99bf26cac4ad13e15925a56eb724027f][al:][sign:][qq:][total:0][offset:0][00:00.05]The Manhattan Transfer - Java Jive[00:10.57]I …

java 3_Java 3 (Java的數據類型)

Java的數據類型主要內容:1Java數據類型的分類2.8種基本數據類型3.理解引用類型的特點一、什么是數據類型?計算機語言將數據按性質進行分類,每一類稱為一種數據類型;數據類型定義了數據的性質、取值范圍、存儲方式、對數據所能進行…