




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1主講:馬建紅郵箱:JSP應(yīng)用與開發(fā)技術(shù)2課程的地位、先修課程本課程是一門專業(yè)必修課程,它主要講授如何使用JSP程序設(shè)計(jì)的原理、方法和技術(shù)開發(fā)基于B/S架構(gòu)的動(dòng)態(tài)網(wǎng)站。先修課程:要求學(xué)習(xí)者具備一定的Java程序設(shè)計(jì)根底,因此必須先修?Java程序設(shè)計(jì)?;該課程需要操作數(shù)據(jù)庫(kù),因此必須先修?數(shù)據(jù)庫(kù)原理?;另外由于牽涉網(wǎng)頁(yè)的設(shè)計(jì)所以先修課還需要?網(wǎng)頁(yè)設(shè)計(jì)?。3課程在專業(yè)課程體系中的地位JSP工程實(shí)訓(xùn)Java程序設(shè)計(jì)數(shù)據(jù)庫(kù)原理網(wǎng)頁(yè)設(shè)計(jì)J2EE程序設(shè)計(jì)Ajax程序設(shè)計(jì)SSH框架手機(jī)開發(fā)4本章學(xué)習(xí)目標(biāo):了解軟件編程體系了解企業(yè)應(yīng)用開發(fā)架構(gòu)掌握J(rèn)SP根本概念掌握J(rèn)SP的知識(shí)體系了解JSP的學(xué)習(xí)之路5關(guān)于教材JSP(JavaServerPages)是目前動(dòng)態(tài)網(wǎng)站開發(fā)技術(shù)中最典型的一種。JSP繼承了Java語(yǔ)言的優(yōu)勢(shì),是一種與平臺(tái)無(wú)關(guān)的開發(fā)技術(shù),而Java技術(shù)也賦予了JSP為用戶提供強(qiáng)大功能的技術(shù)支持。JSP實(shí)現(xiàn)了動(dòng)態(tài)頁(yè)面與靜態(tài)頁(yè)面的別離,脫離了硬件平臺(tái)的束縛,提高了執(zhí)行效率而逐漸成為因特網(wǎng)上的主流開發(fā)技術(shù),已經(jīng)越來(lái)越受到編程者的關(guān)注和喜愛。JSP語(yǔ)言雖然綜合性地包括了Java和HTML這兩類語(yǔ)法,但不能通過(guò)簡(jiǎn)單地使用JSP,讓它集顯示、業(yè)務(wù)邏輯和流程控制于一身,因?yàn)橛眠@種方式開發(fā)出來(lái)的Web應(yīng)用程序是非常難以維護(hù)的。所以對(duì)JSP使用觀念的建立,以及JavaBean、數(shù)據(jù)庫(kù)、Servlet等技術(shù)的了解運(yùn)用是利用JSP開發(fā)復(fù)雜的商業(yè)級(jí)網(wǎng)站的重點(diǎn)。為了讓讀者在學(xué)習(xí)的過(guò)程中能夠徹底掌握相關(guān)概念,同時(shí)掌握所需的知識(shí),除了根本語(yǔ)法介紹外,本書也同時(shí)將重點(diǎn)集中在面向?qū)ο蟮挠^點(diǎn)和JSP程序架構(gòu)方面。本書結(jié)合JSP和Servlet的最新標(biāo)準(zhǔn),從根本的語(yǔ)法和標(biāo)準(zhǔn)入手,以經(jīng)驗(yàn)為后盾,以實(shí)用為目標(biāo),以實(shí)例為導(dǎo)向,以實(shí)踐為指導(dǎo),深入淺出地講解了JSP開發(fā)中的種種問(wèn)題。以精簡(jiǎn)的內(nèi)容介紹了JSP的語(yǔ)法、Servlet技術(shù)、JDBC技術(shù)、標(biāo)簽庫(kù)技術(shù)、MVC等技術(shù);本書每一章節(jié)的例子讀者都可以直接使用。實(shí)例講解過(guò)程條理清晰、循序漸進(jìn),符合程序設(shè)計(jì)的自然思路,讀者讀完一個(gè)章節(jié),也就相應(yīng)地掌握了相關(guān)的JSP技術(shù)開發(fā)的思想和技術(shù)。并且采用幾個(gè)較完整的綜合實(shí)例,讓讀者對(duì)JSP+Servlet+JavaBean+JDBC這樣的Web架構(gòu)有個(gè)整體認(rèn)識(shí)。67教材的組織結(jié)構(gòu)本書共16章,可以分成七個(gè)局部。第一局部JSP編程根底與環(huán)境配置,包括三章:第1章JSP概述;第2章JSP動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)根底;第3章JSP環(huán)境配置,介紹JSP應(yīng)用技術(shù)的前導(dǎo)知識(shí)和開發(fā)環(huán)境的搭建。第二局部JSP應(yīng)用開發(fā)根底,包括三章:第4章JSP根本語(yǔ)法;第5章JSP內(nèi)置對(duì)象;第6章使用Cookie記錄信息,詳細(xì)講解了JSP技術(shù)的根本語(yǔ)法。第三局部JSP應(yīng)用開發(fā)進(jìn)階,包括兩章:第7章JavaBean和表單處理;第8章JSP中文件的操作。這局部主要介紹了JavaBean別離表示與實(shí)現(xiàn)、使用JSP處理HTML表單、使用Java類庫(kù)里的I/O類,開發(fā)具備文件存取功能的網(wǎng)頁(yè)程序。第四局部JSP數(shù)據(jù)庫(kù)編程根底包括三章:第9章數(shù)據(jù)庫(kù)操作根底;第10章應(yīng)用JDBC進(jìn)行數(shù)據(jù)庫(kù)開發(fā);第11章JSP+JavaBean+DB的實(shí)例,以MySql數(shù)據(jù)庫(kù)為例詳細(xì)講解了JSP中使用數(shù)據(jù)庫(kù)的操作包括JDBC、連接池、分頁(yè)處理等技術(shù)。8第五局部Servlet技術(shù)包括兩章章:第12章Servlet根底;第13章使用Servlet過(guò)濾器和監(jiān)聽器;通過(guò)實(shí)例講述了Servlet的開發(fā)和部署。第六局部標(biāo)簽庫(kù)包括兩章:第14章標(biāo)準(zhǔn)標(biāo)簽庫(kù)〔JSTL〕;第15章創(chuàng)立自定義標(biāo)簽庫(kù)。這局部是使用JSP進(jìn)行程序開發(fā)的擴(kuò)展知識(shí)。第七局部第16章通過(guò)一個(gè)網(wǎng)上書店的實(shí)例講解了Web開發(fā)的應(yīng)用。910課程的任務(wù)
掌握J(rèn)SP編程技術(shù):掌握J(rèn)SP的語(yǔ)法;掌握J(rèn)SP對(duì)文件的操作;掌握J(rèn)SP對(duì)數(shù)據(jù)庫(kù)的操作;掌握J(rèn)SP中采用的JavaBean;掌握J(rèn)SP中采用的Servlet技術(shù);掌握MVC編程模式。11重點(diǎn)和難點(diǎn)課程的重點(diǎn):JSP開發(fā)Web應(yīng)用程序,如動(dòng)態(tài)網(wǎng)站的開發(fā);課程的難點(diǎn):JavaBean和Servlet技術(shù),通過(guò)系統(tǒng)的學(xué)習(xí),學(xué)生能夠利用JSP技術(shù)進(jìn)行網(wǎng)站的簡(jiǎn)單設(shè)計(jì)和開發(fā)。12第1章
JSP概述
1.1軟件編程體系簡(jiǎn)介1.2企業(yè)應(yīng)用開發(fā)架構(gòu) 1.3JSP概述1.4JSP知識(shí)體系及學(xué)習(xí)之路131.1軟件編程體系簡(jiǎn)介14客戶機(jī)/效勞器(Client/Server,C/S)模式即客戶機(jī)和效勞器結(jié)構(gòu)。這種體系結(jié)構(gòu)模式是以數(shù)據(jù)庫(kù)效勞器為中心、以客戶機(jī)為網(wǎng)絡(luò)根底、在信息系統(tǒng)軟件支持下的兩層結(jié)構(gòu)模型。這種體系結(jié)構(gòu)中,用戶操作模塊布置在客戶機(jī)上,數(shù)據(jù)存儲(chǔ)在效勞器上的數(shù)據(jù)庫(kù)中??蛻魴C(jī)依靠效勞器獲得所需要的網(wǎng)絡(luò)資源,而效勞器為客戶機(jī)提供網(wǎng)絡(luò)必須的資源。目前大多數(shù)信息系統(tǒng)是采用Client/Server結(jié)構(gòu)。效勞器通常采用高性能的PC、工作站或小型機(jī),并采用大型數(shù)據(jù)庫(kù)系統(tǒng),如Oracle、Sybase、Informix或SQLServer??蛻舳诵枰惭b專用的客戶端軟件。這種模式我們也通常成為胖客戶端模式。典型的系統(tǒng):QQ、MSNC/S結(jié)構(gòu)編程體系15瀏覽器/效勞器(Browser/Server,B/S)模式即瀏覽器效勞器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面通過(guò)瀏覽器來(lái)實(shí)現(xiàn),極少局部事務(wù)邏輯在前端〔Browser〕實(shí)現(xiàn),主要事務(wù)邏輯在效勞器端〔Server〕實(shí)現(xiàn),形成所謂三層結(jié)構(gòu)。這樣就大大簡(jiǎn)化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的本錢和工作量,降低了用戶的總體本錢??蛻魴C(jī)上只要安裝一個(gè)瀏覽器〔Browser〕,如NetscapeNavigator或InternetExplorer,效勞器安裝Oracle、Sybase、Informix或SQLServer等數(shù)據(jù)庫(kù)。瀏覽器通過(guò)WebServer同數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互。
這種模式,我們通常將其成為瘦客戶端模式。典型的系統(tǒng):網(wǎng)上銀行、網(wǎng)上書店、Blog等等B/S結(jié)構(gòu)編程體系161.2企業(yè)應(yīng)用開發(fā)架構(gòu)
在構(gòu)建企業(yè)級(jí)應(yīng)用的時(shí)候,通常需要大量的代碼,而且這些代碼一般分布在不同的計(jì)算機(jī)上,劃分代碼運(yùn)行在不同計(jì)算機(jī)上的理論就是多層設(shè)計(jì)理論。企業(yè)級(jí)應(yīng)用系統(tǒng)通常分成兩層三層N層架構(gòu)。兩層架構(gòu)傳統(tǒng)的兩層應(yīng)用包括用戶接口和后臺(tái)程序,后臺(tái)程序通常是一個(gè)數(shù)據(jù)庫(kù),用戶接口直接同數(shù)據(jù)庫(kù)進(jìn)行對(duì)話。實(shí)現(xiàn)上,通常使用JSP、ASP或者VB等技術(shù)編寫這類軟件,結(jié)構(gòu)如圖兩層應(yīng)用架構(gòu)顯示邏輯層一般由HTML、JSP、ASP實(shí)現(xiàn),通過(guò)JSP和ASP直接和數(shù)據(jù)庫(kù)相連三層架構(gòu)在兩層應(yīng)用中,應(yīng)用程序直接同數(shù)據(jù)庫(kù)進(jìn)行對(duì)話。三層結(jié)構(gòu)在用戶接口代碼和數(shù)據(jù)庫(kù)中間參加了一個(gè)附加的邏輯層,通常這個(gè)層叫做“商務(wù)邏輯層〞,如圖N層架構(gòu)如果某個(gè)應(yīng)用超過(guò)三個(gè)獨(dú)立的代碼層,那么這個(gè)應(yīng)用叫做N應(yīng)用,就不再叫四層或者五層等名稱,而是統(tǒng)稱為N層。如圖開發(fā)架構(gòu)比較兩層架構(gòu)的優(yōu)點(diǎn)是開發(fā)過(guò)程比較簡(jiǎn)單,利用效勞器端的程序直接訪問(wèn)數(shù)據(jù)庫(kù),部署起來(lái)比較方便。缺點(diǎn)是程序代碼維護(hù)起來(lái)比較困難,程序執(zhí)行的效率比較低,用戶容量比較少。三層架構(gòu)根本解決了兩層架構(gòu)的缺點(diǎn),將顯示局部和邏輯流程控制分開,利用效勞器應(yīng)用程序?qū)崿F(xiàn)顯示局部,利用商務(wù)邏輯層實(shí)現(xiàn)程序的流程控制,分層使維護(hù)變的方便一些,而且執(zhí)行效率也會(huì)有所提高,但是相對(duì)部署起來(lái)就比較困難一些。根據(jù)實(shí)際的需要,會(huì)進(jìn)一步細(xì)化每一層,或者添加一些層,就形成了N層架構(gòu),和三層架構(gòu)一樣,組件化的設(shè)計(jì)使維護(hù)相對(duì)容易,但是部署相對(duì)困難。221.3JSP概述
JSP(JavaServerPages)是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,即能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。JSP的1.0標(biāo)準(zhǔn)的最后版本是1999年9月推出的,12月又推出了1.1標(biāo)準(zhǔn)。此后JSP又經(jīng)歷了幾個(gè)版本,最新版本是2003年發(fā)布的JSP2.0。本書介紹的技術(shù)都是基于JSP2.0標(biāo)準(zhǔn)的。23什么是JSP
以下是helloWorld.jsp的源代碼<%@pagelanguage="java"contentType="text/html;charset=gbk"%><html><head> <title>HelloWorld!</title></head><bodybgcolor="#FFFFFF"><h3><% out.println("JSPHelloWorld!");%></h3>
</body></html>用“<%%>〞嵌入動(dòng)態(tài)局部HTML語(yǔ)句24JSP是一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。可以將網(wǎng)頁(yè)中的動(dòng)態(tài)局部和靜態(tài)的HTML相別離。您可以使用平常得心應(yīng)手的工具并按照平常的方式來(lái)書寫HTML語(yǔ)句。然后,將動(dòng)態(tài)局部用特殊的標(biāo)記嵌入即可,這些標(biāo)記常常以“<%〞開始并以“%>〞結(jié)束在Eclipse+tomcat環(huán)境下的運(yùn)行效果如以下圖所示:2526JSP文件的主要結(jié)構(gòu):<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.util.*"%>...<HTML><BODY>其他HTML語(yǔ)言<%
符合JAVA語(yǔ)法的JAVA語(yǔ)句%>
其他HTML語(yǔ)言
</BODY></HTML>27JSP技術(shù)使用Java編程語(yǔ)言編寫類XML的tags和scriptlets,來(lái)封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過(guò)tags和scriptlets訪問(wèn)存在于效勞端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示別離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。Web效勞器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。JSP與JavaServlet一樣,是在效勞器端執(zhí)行的,通常返回該客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。28JSP的特點(diǎn):內(nèi)嵌在HTML中:以較為簡(jiǎn)單直接的方式將程序代碼內(nèi)嵌在HTML中,降低了程序設(shè)計(jì)的難度。豐富的內(nèi)建對(duì)象:JSP的規(guī)格中包含相關(guān)的對(duì)象、卷標(biāo)與指令,提供了設(shè)計(jì)主從式網(wǎng)絡(luò)程序的功能,簡(jiǎn)化了編寫servlet程序的過(guò)程。整合Java平臺(tái):JSP程序中可運(yùn)用Java所提供的各類包,以這些包為根底,擴(kuò)充了JSP程序的本身的處理范圍與能力。29JSP技術(shù)原理從本質(zhì)上說(shuō),JSP是ServletAPI的一個(gè)擴(kuò)展。事實(shí)上,JSP在處理請(qǐng)求之前都要編譯成Servlet,所以它具有Servlet的所有優(yōu)勢(shì),包括訪問(wèn)JavaAPI。簡(jiǎn)單的說(shuō),一個(gè)JSP頁(yè)面就是包含了能夠生成動(dòng)態(tài)內(nèi)容的可執(zhí)行應(yīng)用代碼的HTML網(wǎng)頁(yè)。3031JSP運(yùn)行原理32當(dāng)效勞器第一次接收到對(duì)某個(gè)頁(yè)面的請(qǐng)求時(shí),JSP引擎就開始進(jìn)行上述的處理過(guò)程,將被請(qǐng)求的JSP文件編譯成Class文件。在后續(xù)對(duì)該頁(yè)面再次進(jìn)行請(qǐng)求時(shí),假設(shè)頁(yè)面沒(méi)有進(jìn)行任何改動(dòng),效勞器只需直接調(diào)用Class文件執(zhí)行即可。所以當(dāng)某個(gè)JSP頁(yè)面第一次被請(qǐng)求時(shí),會(huì)有一些延遲,而再次訪問(wèn)時(shí)會(huì)感覺(jué)快了很多。如果被請(qǐng)求的頁(yè)面經(jīng)過(guò)修改,效勞器將會(huì)重新編譯這個(gè)文件,然后執(zhí)行。33Servlet概念Servlet概念Servlet是運(yùn)行在效勞器上的Java程序,是一個(gè)中間層,主要用來(lái)處理客戶端請(qǐng)求,并對(duì)客戶端請(qǐng)求進(jìn)行響應(yīng),還可以連接應(yīng)用效勞。Servlet是在效勞器端實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)的一種技術(shù)requestresponseServletEJBWeb容器Web瀏覽器34JSP生成的Servlet的生命周期加載Servlet
類調(diào)用
Init方法進(jìn)行初始化設(shè)置創(chuàng)建Servlet
實(shí)例調(diào)用service
方法處理客戶端請(qǐng)求調(diào)用destroy
方法銷毀Servlet實(shí)例并釋放占用資源垃圾回收ServletConfig35Servlet的生命周期:1.客戶端向效勞器發(fā)出請(qǐng)求,效勞器根據(jù)客戶端的請(qǐng)求,找到相應(yīng)的Servlet類2.判斷該Servlet是否在內(nèi)存中加載?假設(shè)未加載,創(chuàng)立該Servlet實(shí)例,調(diào)用init()方法完成初始化操作。假設(shè)已經(jīng)加載,轉(zhuǎn)33.調(diào)用service()方法對(duì)客戶端進(jìn)行相應(yīng)。等待下一次請(qǐng)求。在Servlet生命周期中,service()方法是其中的核心。每當(dāng)客戶端向Servlet發(fā)出一個(gè)請(qǐng)求時(shí),該方法就會(huì)被調(diào)用,對(duì)用戶的請(qǐng)求進(jìn)行處理,并返回響應(yīng)。4.結(jié)束,調(diào)用destroy()方法。當(dāng)效勞器端不再需要該Servlet的時(shí)候,效勞器調(diào)用destroy()方法卸載該Servlet,釋放Servlet運(yùn)行時(shí)占用的資源。36Servlet是一種獨(dú)立于平臺(tái)和協(xié)議的效勞器端的Java應(yīng)用程序,可以生成動(dòng)態(tài)的Web頁(yè)面。它擔(dān)當(dāng)Web瀏覽器或其他HTTP客戶程序發(fā)出請(qǐng)求,與HTTP效勞器上的數(shù)據(jù)庫(kù)或應(yīng)用程序之間的中間層。Servlet是位于Web效勞器內(nèi)部的效勞器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動(dòng)的Java應(yīng)用程序不同,Servlet由Web效勞器進(jìn)行加載,該Web效勞器必須包含支持Servlet的Java虛擬機(jī)。37隨著Internet和電子商務(wù)等應(yīng)用的開展,動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)誕生了。動(dòng)態(tài)網(wǎng)頁(yè)和網(wǎng)頁(yè)上的動(dòng)畫根本不是一回事,它有以下幾個(gè)特點(diǎn):交互性:即網(wǎng)頁(yè)會(huì)根據(jù)用戶的要求和選擇而動(dòng)態(tài)改變和響應(yīng)。自動(dòng)更新:即無(wú)需手動(dòng)更新HTML文檔,自動(dòng)生成新的頁(yè)面,這可大大節(jié)省工作量。因時(shí)因人而變:即當(dāng)不同的時(shí)間、不同的用戶訪問(wèn)同一網(wǎng)址時(shí)會(huì)產(chǎn)生不同的頁(yè)面,這就是所謂的個(gè)性化技術(shù)動(dòng)態(tài)網(wǎng)頁(yè)技術(shù):CGIASPPHPJSPCGI:CommonGatewayInterfaceASP:ActiveServerPagePHP:HypertextPreprocessorJSP:JavaServerPage 在早期,動(dòng)態(tài)網(wǎng)頁(yè)只有采用CGI技術(shù),但由于編程困難、效率低下、修改復(fù)雜等缺陷,所以逐漸被ASP、PHP、JSP技術(shù)取代。JSP和其它動(dòng)態(tài)網(wǎng)站開發(fā)技術(shù)38JavaServerPages;動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn);動(dòng)態(tài)頁(yè)面與靜態(tài)頁(yè)面別離,跨平臺(tái)性;JSP(*.jsp)=HTML文件〔*.htm,*.html〕+Java程序片斷+JSP標(biāo)記;以Servlet技術(shù)為根底,提供強(qiáng)大的組件〔JavaBean〕支持功能;是一種開發(fā)Web應(yīng)用的理想構(gòu)架。JSP技術(shù)39JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。效勞器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。JavaServlet是JSP的技術(shù)根底,而且大型的Web應(yīng)用程序的開發(fā)需要JavaServlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο?,具有平臺(tái)無(wú)關(guān)性且平安可靠,主要面向因特網(wǎng)的所有特點(diǎn)。40JSP技術(shù)JSP的優(yōu)勢(shì)程序可以跨臺(tái)平執(zhí)行。JSP可以讓開發(fā)人員在任意環(huán)境中進(jìn)行開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展應(yīng)用程序。多樣化和功能強(qiáng)大的開發(fā)工具支持。Java有許多非常優(yōu)秀的開發(fā)工具,而且有許多可以免費(fèi)得到,并且其中的許多已經(jīng)可以順利地運(yùn)行于多種平臺(tái)之下。強(qiáng)大的可伸縮性。從只有一個(gè)小的jar文件就可以運(yùn)行servlet/jsp到由多臺(tái)效勞器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,一臺(tái)效勞器到無(wú)數(shù)臺(tái)效勞器,Java顯示了巨大的生命力。41JSP技術(shù)JSP的弱勢(shì)例如,跨平臺(tái)的功能和極度的伸縮能力極大地增加了產(chǎn)品的復(fù)雜性。也就是說(shuō),它在擴(kuò)展時(shí)需要分成多少塊,那么java系統(tǒng)中就有多少種產(chǎn)品,所以用戶可能會(huì)看到j(luò)re,jdk,jsdk,jswdk等,而實(shí)際上它們是密不可分的。只要將它們有效地搭配在一起,就可以產(chǎn)生強(qiáng)大的效能。當(dāng)然,這同時(shí)也使應(yīng)用程序變得非常復(fù)雜。JSP運(yùn)行是用class常駐內(nèi)存來(lái)完成的,雖然提高了響應(yīng)速度,但要占用相當(dāng)內(nèi)存。Java的運(yùn)行速度是用class常駐內(nèi)存來(lái)完成的,所以它在一些情況下所使用的內(nèi)存比起用戶數(shù)量來(lái)說(shuō)確實(shí)是“最低性能價(jià)格比〞了。從另一方面,它還需要硬盤空間來(lái)儲(chǔ)存一系列的.java文件和.class文件,以及對(duì)應(yīng)的版本文件。另外,JSP程序調(diào)試也不是很不方便的。JSP頁(yè)面首先被轉(zhuǎn)化為一個(gè).java文件(Servlet),然后再被編譯。這樣,出錯(cuò)信息實(shí)際上指向的是經(jīng)過(guò)轉(zhuǎn)化的那個(gè).java文件而不是jsp本身。42ASPASP〔全稱ActiveServerPages〕微軟系統(tǒng)的腳本語(yǔ)言,利用它可以執(zhí)行動(dòng)態(tài)的Web效勞應(yīng)用程序。執(zhí)行的時(shí)候,是由IIS調(diào)用程序引擎,解釋執(zhí)行嵌在HTML中的ASP代碼,最終將結(jié)果和原來(lái)的HTML一同送往客戶端。JSP與ASP/ASP.NET的比較43ASP的語(yǔ)法非常類似VisualBASIC,學(xué)過(guò)VB的人可以很快上手,ASP也是這幾種腳本語(yǔ)言中最簡(jiǎn)單易學(xué)的開發(fā)語(yǔ)言。因?yàn)锳SP腳本語(yǔ)言非常簡(jiǎn)單,因此其代碼也簡(jiǎn)單易懂,結(jié)合HTML代碼,可快速地完成網(wǎng)站的應(yīng)用程序。但是ASP也有很大的缺點(diǎn),由于是運(yùn)行在WINDOWS平臺(tái)上,不能跨平臺(tái)運(yùn)行,自身存在著許多缺陷,最重要的就是平安性。在大型工程開發(fā)和維護(hù)上非常困難。
但在國(guó)內(nèi)異常流行,因?yàn)閲?guó)內(nèi)大多使用的是盜版的Windows和盜版的SQLServer。44相同點(diǎn):ASP和JSP都是面向Web效勞器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。區(qū)別:ASP的編程語(yǔ)言是VBScript之類的腳本語(yǔ)言,JSP用的是Java;兩種語(yǔ)言引擎用完全不同的方式處理頁(yè)面中嵌入的程序代碼;JSP實(shí)現(xiàn)處理邏輯和頁(yè)面表示別離,而ASP處理邏輯和頁(yè)面表示混雜在一起,對(duì)于很多大型應(yīng)用難以接受。JSP的平臺(tái)無(wú)關(guān)性。45ASP.NET
ASP最新的版本ASP.NET并不完全與ASP早期的版本后向兼容,因?yàn)樵撥浖M(jìn)行了完全重寫。ASP.NET的優(yōu)勢(shì)很明顯在于它簡(jiǎn)潔的設(shè)計(jì)和實(shí)施。語(yǔ)言靈活,可以使用腳本語(yǔ)言〔如VBscript、Jscript、Perlscript和Python〕以及編譯語(yǔ)言〔如VB、C#、C、Cobol、Smalltalk和Lisp〕;并支持復(fù)雜的面向?qū)ο筇匦?。而且有良好的開發(fā)環(huán)境支持。
高效性,ASP.NET是編譯性的編程框架,運(yùn)行是效勞器上的編譯好的公共語(yǔ)言運(yùn)行時(shí)庫(kù)代碼,可以利用早期綁定,實(shí)施編譯來(lái)提高效率。
簡(jiǎn)單性,.NET可視化編程,提供基于組件、事件驅(qū)動(dòng)的可編程網(wǎng)絡(luò)表單,大大簡(jiǎn)化了編程。一些很平常的任務(wù)如表單的提交客戶端的身份驗(yàn)證、分布系統(tǒng)和網(wǎng)站配置變得非常簡(jiǎn)單。如ASP.net頁(yè)面構(gòu)架允許你建立你自己的用戶分界面。
看起來(lái)是非常有前途的,可能JSP可以一拼!46PHP一個(gè)嵌套的縮寫名稱,是英文超級(jí)文本預(yù)處理語(yǔ)言〔PHP:HypertextPreprocessor〕的縮寫。PHP是一種HTML內(nèi)嵌式的語(yǔ)言,PHP與微軟的ASP頗有幾分相似,都是一種在效勞器端執(zhí)行的嵌入HTML文檔的腳本語(yǔ)言,語(yǔ)言的風(fēng)格有類似于C語(yǔ)言,現(xiàn)在被很多的網(wǎng)站編程人員廣泛的運(yùn)用。PHP是一種能快速學(xué)習(xí)、跨平臺(tái)、有良好數(shù)據(jù)庫(kù)交互能力的開發(fā)語(yǔ)言。PHP與Apache可以以靜態(tài)編譯的方式結(jié)合起來(lái),而與其他的擴(kuò)展庫(kù)也可以用這種方式結(jié)合。這種方式的最大好處就是充分利用了CPU和內(nèi)存,同時(shí)極為有效地利用了Apache高性能的吞吐能力。由于與數(shù)據(jù)庫(kù)的接口也使用了這樣的方式,所以使用的是本地化的調(diào)用,這也讓數(shù)據(jù)庫(kù)發(fā)揮了最正確效能。JSP與PHP的比較47另外,PHP具有良好的平安性,由于PHP本身的代碼開放,所以它的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 禽類罐頭在國(guó)際市場(chǎng)的營(yíng)銷策略考核試卷
- 數(shù)據(jù)處理技巧試題及答案
- 貨物運(yùn)輸合同與責(zé)任保險(xiǎn)考核試卷
- 學(xué)習(xí)數(shù)據(jù)庫(kù)在微服務(wù)中的應(yīng)用模式試題及答案
- 三級(jí)計(jì)算機(jī)嵌入式考試科目調(diào)整分析試題及答案
- 公路橋梁設(shè)計(jì)相關(guān)試題及答案
- 全方向掌握公路工程執(zhí)照考試試題及答案
- 公路工程質(zhì)量驗(yàn)收標(biāo)準(zhǔn)考題及答案
- 建設(shè)安全網(wǎng)絡(luò)環(huán)境試題及答案
- 石材質(zhì)量鑒別技巧考核試卷
- 《父親》音樂(lè)課件
- 護(hù)理管理pdca的課件
- 客戶服務(wù)與問(wèn)題解決技巧培訓(xùn)
- 騰訊云安全運(yùn)維
- (材料)綜合物性測(cè)量系統(tǒng)
- 土壤農(nóng)化分析實(shí)驗(yàn)智慧樹知到課后章節(jié)答案2023年下甘肅農(nóng)業(yè)大學(xué)
- 人教版八年級(jí)《竹竿舞》評(píng)課稿
- 往生薦亡功德文疏教學(xué)教材
- 有機(jī)植物生產(chǎn)中允許使用的投入品
- 儲(chǔ)罐腳手架搭設(shè)方案
- 教學(xué)茶樹植物保護(hù)茶樹常見害蟲及防治
評(píng)論
0/150
提交評(píng)論