JavaWEB開發入門

一、Web概述

WEB,在英語中web即表示網頁的意思,它用於表示Internet主機上供外界訪問的資源。javaweb:使用java技術開發web頁面。供瀏覽器訪問的項目。

Internet上供外界訪問的Web資源分為:

靜態web資源(如html 頁面):指web頁面中供人們瀏覽的數據始終是不變的,靜態的,不同的人在不同的時間來訪問時都是相同的內容 動態web資源:指web頁面中供人們瀏覽的數據是由程序產生的,不同時間點訪問web頁面看到的內容各不相同。

靜態web資源開發技術:Html、CSS、javaScript

常用動態web資源開發技術:

JSP/Servlet、ASP、PHP等 在Java中,動態web資源開發技術統稱為Javaweb,我們課程的重點也是教大傢如何使用Java技術開發動態的web資源,即動態web頁面。

靜態網頁與動態網頁

二、WEB服務器

Web服務器的作用是接收客戶端的請求,給客戶端作出響應。學習web開發,需要先安裝一臺web服務器,然後再在web服務器中開發相應的web資源,供用戶使用瀏覽器訪問。

註意:這裡所說的服務器不是指服務器硬件資源,而是指服務器軟件。

實驗說明:

在本地計算機上隨便創建一個web頁面,大傢可以訪問到嗎? 啟動tomcat服務器,把web頁面放在tomcat服務器中,用戶就可以訪問瞭。

這說明什麼問題?

不管什麼web資源,想被遠程計算機訪問,都必須有一個與之對應的網絡通信程序,當用戶來訪問時,這個網絡通信程序讀取web資源數據,並把數據發送給來訪者。 WEB服務器就是這樣一個程序,它用於完成底層網絡通迅。使用這些服務器,用戶隻需要關註web資源怎麼編寫,而不需要關心資源如何發送到客戶端手中,從而極大的減輕瞭開發者的開發工作量。

三、常見WEB服務器

Tomcat(Apache):當前應用最廣的JavaWeb服務器 JBoss(Redhat紅帽):支持JavaEE,應用比較廣;EJB容器 GlassFish(Orcale):Oracle開發JavaWeb服務器,應用不是很廣 Resin(Caucho):支持JavaEE,應用越來越廣 Weblogic(Orcale):要錢的!支持JavaEE,適合大型項目 Websphere(IBM):要錢的!支持JavaEE,適合大型項目

1、WebLogic

WebLogic是BEA公司的產品,是目前應用最廣泛的Web服務器,支持J2EE規范,而且不斷的完善以適應新的開發要求,啟動界面如圖

這裡寫圖片描述

2、WebSphere

另一個常用的Web服務器是IBM公司的WebSphere,支持J2EE規范,啟動界面如圖

這裡寫圖片描述

3、Tomcat

在小型的應用系統或者有特殊需要的系統中,可以使用一個免費的Web服務器:Tomcat,該服務器支持全部JSP以及Servlet規范,啟動界面如圖

這裡寫圖片描述vcHLVG9tY2F0tcS/qrei1tCjrMv50tTX7tDCtcRKU1AvU2VydmxldLnmt7bX3MrHxNzU2lRvbWNhdNbQzOXP1rP2wLSho7Wxx7DX7tDCsOaxvsrHVG9tY2F0OKOsztLDx7/Os8zW0Mq508NUb21jYXQ3oaNUb21jYXQ31qez1lNlcnZsZXQzLjCjrLb4VG9tY2F0Nta71qez1lNlcnZsZXQyLjWjoTwvcD4NCjxoMiBpZD0=”四javaee概述”>四、JavaEE概述

java的大方向就是JavaEE,JavaEE不僅僅是socket編程,具體包括13中核心技術。

JAVAEE的核心API與組件

JAVAEE平臺由一整套服務(Services)、應用程序接口(APIs)和協議構成,它對開發基於Web的多層應用提供瞭功能支持,下面對JAVAEE中的13種技術規范進行簡單的描述(限於篇幅,這裡隻進行簡單的描述):

1、JDBC(Java Database Connectivity)   

JDBC API為訪問不同的數據庫提供瞭一種統一的途徑,象ODBC一樣,JDBC對開發者屏蔽瞭一些細節問題,另外,JDCB對數據庫的訪問也具有平臺無關性。

2、JNDI(Java Name and Directory Interface)   

JNDI API被用於執行名字和目錄服務。它提供瞭一致的模型來存取和操作企業級的資源如DNS和LDAP,本地文件系統,或應用服務器中的對象。

3、EJB(Enterprise JavaBean)   

JAVAEE技術之所以贏得媒體廣泛重視的原因之一就是EJB。它們提供瞭一個框架來開發和實施分佈式商務邏輯,由此很顯著地簡化瞭具有可伸縮性和高度復雜的企業級應用的開發。EJB規范定義瞭EJB組件在何時如何與它們的容器進行交互作用。容器負責提供公用的服務,例如目錄服務、事務管理、安全性、資源緩沖池以及容錯性。但這裡值得註意的是,EJB並不是實現JAVAEE的唯一途徑。正是由於JAVAEE的開放性,使得有的廠商能夠以一種和EJB平行的方式來達到同樣的目的。

4、RMI(Remote Method Invoke)   

正如其名字所表示的那樣,RMI協議調用遠程對象上方法。它使用瞭序列化方式在客戶端和服務器端傳遞數據。RMI是一種被EJB使用的更底層的協議。

5、Java IDL/CORBA   

在Java IDL的支持下,開發人員可以將Java和CORBA集成在一起。他們可以創建Java對象並使之可在CORBA ORB中展開, 或者他們還可以創建Java類並作為和其它ORB一起展開的CORBA對象的客戶。後一種方法提供瞭另外一種途徑,通過它Java可以被用於將你的新的應用和舊的系統相集成。

6、JSP(Java Server Pages)   

JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務器在頁面被客戶端所請求以後對這些Java代碼進行處理,然後將生成的HTML頁面返回給客戶端的瀏覽器。

7、Java Servlet   

Servlet是一種小型的Java程序,它擴展瞭Web服務器的功能。作為一種服務器端的應用,當被請求時開始執行,這和CGI Perl腳本很相似。Servlet提供的功能大多與JSP類似,不過實現的方式不同。JSP通常是大多數HTML代碼中嵌入少量的Java代碼,而servlets全部由Java寫成並且生成HTML。

8、XML(Extensible Markup Language)   

XML是一種可以用來定義其它標記語言的語言。它被用來在不同的商務過程中共享數據。 XML的發展和Java是相互獨立的,但是,它和Java具有的相同目標正是平臺獨立性。通過將Java和XML的組合,您可以得到一個完美的具有平臺獨立性的解決方案。

9、JMS(Java Message Service)   

JMS是用於和面向消息的中間件相互通信的應用程序接口(API)。它既支持點對點的域,有支持發佈/訂閱(publish/subscribe)類型的域,並且提供對下列類型的支持:經認可的消息傳遞,事務型消息的傳遞,一致性消息和具有持久性的訂閱者支持。JMS還提供瞭另 一種方式來對您的應用與舊的後臺系統相集成。

10、JTA(Java Transaction Architecture)   

JTA定義瞭一種標準的API,應用系統由此可以訪問各種事務監控。

11、JTS(Java Transaction Service)   

JTS是CORBA OTS事務監控的基本的實現。JTS規定瞭事務管理器的實現方式。該事務管理器是在高層支持Java Transaction API (JTA)規范,並且在較底層實現OMG OTS specification的Java映像。JTS事務管理器為應用服務器、資源管理器、獨立的應用以及通信資源管理器提供瞭事務服務。

12、JavaMail   

JavaMail是用於存取郵件服務器的API,它提供瞭一套郵件服務器的抽象類。不僅支持SMTP服務器,也支持IMAP服務器。

13、JAF(JavaBeans Activation Framework)   

JavaMail利用JAF來處理MIME編碼的郵件附件。MIME的字節流可以被轉換成Java對象,或者轉換自Java對象。大多數應用都可以不需要直接使用JAF

五、Tomcat服務器

1、Tomcat 的下載與安裝

下載地址:https://tomcat.apache.org/

安裝目錄不能包含中文和空格

JAVA_HOME環境變量指定Tomcat運行時所要用的jdk所在的位置,註意,配到目錄就行瞭,不用指定到bin

端口占用問題:netstat -ano命令查看端口占用信息

Catalina_Home環境變量:startup.bat啟動哪個tomcat由此環境變量指定,如果不配置則啟動當前tomcat,推薦不要配置此環境變量

2、Tomcat 的目錄層次結構

這裡寫圖片描述

bin–存放tomcat啟動關閉所用的批處理文件 conf–tomcat的配置文件,最終要的是server.xml lib–tomcat運行所需jar包 logs–tomcat運行時產生的日志文件 temp–tomcat運行時使用的臨時目錄,不需要我們關註 webapps–web應用所應存放的目錄 work–tomcat工作目錄,後面學jsp用到

3、啟動和關閉Tomcat

在啟動Tomcat之前,我們必須要配置環境變量:

JAVA_HOME:必須先配置JAVA_HOME,因為Tomcat啟動需要使用JDK CATALANA_HOME:如果是安裝版,那麼還需要配置這個變量,這個變量用來指定Tomcat的安裝路徑,例如:F:\apache-tomcat-7.0.42 啟動:進入%CATALANA_HOME%\bin目錄,找到startup.bat,雙擊即可 關閉:進入%CATALANA_HOME%\bin目錄,找到shutdown.bat,雙擊即可

startup.bat會調用catalina.bat,而catalina.bat會調用setclasspath.bat,setclasspath.bat會使用JAVA_HOME環境變量,所以我們必須在啟動Tomcat之前把JAVA_HOME配置正確。

啟動問題:點擊startup.bat後窗口一閃即消失:檢查JAVA_HOME環境變量配置是否正確;

4、配置端口號

打開%CATALANA_HOME%\conf\server.xml文件

這裡寫圖片描述

http默認端口號為80,也就是說在URL中不給出端口號時就表示使用80端口。當然你也可以修改為其它端口號。

當把端口號修改為80後,在瀏覽器中隻需要輸入:https://localhost就可以訪問Tomcat主頁瞭

六、虛似主機

一個真實主機可以運行多個網站,對於瀏覽器來說訪問這些網站感覺起來就像這些網站都運行在自己的獨立主機中一樣,所以,我們可以說這裡的每一個網站都運行在一個虛擬主機上,一個網站就是一個虛擬主機

1、配置虛似主機

如需在WEB服務器中配置一個網站,需使用Host元素進行配置

在server.xml中標簽下配置,其中name屬性指定虛擬主機名,appBase指定虛擬主機所在的目錄

隻在servlet.xml中配置Hosts,還不能是其他人通過虛擬主機名訪問網站,還需要在DNS服務器上註冊一把,我們可以使用hosts文件模擬這個過程

默認虛擬主機:在配置多個虛擬主機的情況下,如果瀏覽器使用ip地址直接訪問網站時,該使用哪個虛擬主機響應呢?可以在標簽上設置defaultHost來指定


配置的主機(網站)要想被外部訪問,必須在DNS服務器或windows系統中註冊

由於瀏覽器訪問地址時,需要將地址翻譯成對應的ip才能找到服務器,這其中翻譯的過程是由dns服務器來實現的.我們在做實驗的時候沒有辦法去修改dns服務器,此時可以使用hosts文件模擬dns的功能,從而完成實驗

缺省虛擬主機:如果來訪者是通過ip來訪問,這個時候服務器無法辨別當前要訪問的是哪臺虛擬主機中的資源,此時訪問缺省虛擬主機。缺省虛擬主機可以在server.xml中engin標簽上通過defaultHost屬性進行配置

2、訪問過程

這裡寫圖片描述

七、WEB應用程序

WEB應用程序指供瀏覽器訪問的程序,通常也簡稱為web應用,是為瞭提供某一特定功能而按照一定方式組織起來的web資源的組合。

一個web應用由多個靜態web資源和動態web資源組成,如

html、css、js文件 Jsp文件、java程序、支持jar包、 配置文件 一個web應用所使用的web資源我們通常使用目錄進行組織,這個目錄我們通常稱為 web應用所在的目錄

Web應用開發好後,若想供外界訪問,需要把web應用所在目錄交給web服務器管理,這個過程稱之為虛似目錄的映射。

web資源不能直接交給虛擬主機,需要按照功能組織用目錄成一個web應用再交給虛擬主機管理

1、web應用的目錄結構

這裡寫圖片描述

靜態資源和JSP文件都可以直接放置在web應用的目錄下,直接放在web應用下的內容,瀏覽器可以直接訪問到

WEB-INF:可以沒有,但是最好有,如果有則一定要保證他的目錄結構是完整的。放置在WEB-INF目錄下的所有資源瀏覽器沒有辦法直接進行訪問

classes:動態web資源運行時的class文件要放在這個目錄下
lib:動態web資源運行時所依賴的jar包要放在這個目錄下
web.xml:整個web應用的配置文件,配置主頁/Servlet的映射/過濾器監聽器的配置都需要依賴這個文件進行

2、web.xml文件的作用

某個web資源配置為web應用首頁 將servlet程序映射到某個url地址上 為web應用配置監聽器 為web應用配置過濾器 但凡涉及到對web資源進行配置,都需要通過web.xml文件

3、web應用的虛擬目錄映射

在server.xml的標簽下配置如果path=”“則這個web應用就被配置為瞭這個虛擬主機的默認web應用

這裡寫圖片描述

在tomcat/conf/引擎名/虛擬主機名 之下建立一個.xml文件,其中文件名用來指定虛擬路徑,如果是多級的用#代替/表示,文件中配置,如果文件名起為ROOT.xml則此web應用為默認web應用

直接將web應用放置到虛擬主機對應的目錄下,如果目錄名起為ROOT則此web應用為默認web應用

如果三處都配置默認,web應用則server.xml > config/…/xx.xml > webapps

4、其它問題

打war包,方式一:jar -cvf news.war * 方式二:直接用壓縮工具壓縮為zip包,該後綴為.war 通用context和通用web.xml,所有的都繼承子conf/context.xml,所有的web.xml都繼承自conf/web.xml reloadable讓tomcat自動加載更新後的web應用,當java程序修改後不用重啟,服務器自動從新加載,開發時設為true方便開發,發佈時設為false,提高性能 Tomcat管理平臺,可以在conf/tomcat-users.xml下配置用戶名密碼及權限

八、Tomcat體系架構

這裡寫圖片描述

WEB開發的前景

軟件開發的兩種架構:C/S和B/S

這裡寫圖片描述

這裡寫圖片描述

C/S B/S之爭

這裡寫圖片描述

這裡寫圖片描述

講到這個地方,很多同學就沒勁瞭,為什麼呢?搞半天就是做網站喲,沒點意思。所以這裡特意講下web開發的前景,免得有些同學像菜鳥一樣,以為自己很懂,其實啥都不懂,說些傻話。要講web開發前景,首先要強調一點,你學javaweb,開發的是程序,別人通過瀏覽器,訪問的是你寫的程序,程序為用戶完成服務後,再把結果通過寫到瀏覽器中顯示,思想不要停留在90年代,以為通過瀏覽器看到的都是網頁。要註意,將來網站都是用來提供服務的,像你們思想中的網頁,隻有網站提供的一種服務而已。

再者,要講web開發前景,就不得不提軟件開發的兩種架構之爭瞭,一種是c/s架構,一種是b/s架構。

何為b/s架構呢?(瀏覽器/服務器架構)就是指數據和程序都在服務器端,客戶端通過瀏覽器訪問程序並獲取數據。這種架構的最大好處就是服務器端程序一旦修改,所有客戶端訪問的都最新的程序,開發人員隻管維護服務器就行瞭,不用管客戶端維護的事。這種架構的最大缺點就是,由於客戶端都是使用瀏覽器來訪問服務器程序的,數據最終顯示在瀏覽器中,瀏覽器有多強,數據就能顯示成什麼樣式,數據的顯示樣式最終由瀏覽器決定。由於這種特性,所以b/s架構很少用來開發一些對顯示有特殊要求的程序,例如遊戲,現在的瀏覽器很難做到把數據顯示成一個人,拿著一把刀,到處找人PK,並且還不卡。

何為c/s架構呢?就是指程序運行在客戶機上,數據在服務器上。這種架構有一個很大的毛病,就是程序一旦修改,需要更新所有的客戶機程序,客戶機多,維護的工作量相當恐怖。這種架構的優點是:由於數據的計算在客戶機上,服務器的壓力小,並且由於數據的顯示也由程序員自己編寫gui程序完成,顯示不受限制。所以c/s架構適合用於開發像遊戲這樣的程序。

但是,隨著網絡帶寬的不斷提升,雲計算概念的提出,瀏覽器隻要足夠強大,c/s架構立馬就會被淘汰,不僅c/s架構會被淘汰,軟件最終都會消失、操作系統都可以沒有,最終將會是b/s架構的天下,也就是瀏覽器+搜索引擎的天下。所有現在桌面軟件提供的功能,最後都由網站提供,也就是說,將來打開電腦就是一個瀏覽器,想要什麼服務,通過搜索引擎一找,就可以在網上找到相應的服務,用就是瞭。所以web開發人員是現在最流行的崗位。

發佈留言