標籤:樣本 實現 oca 目的 pwd forbidden 編寫 java se 成員
學習要點
- B/S架構的基本概念
- Web項目的建立和運行
- JSP頁面元素
- MyEclipse建立和運行Web項目
- Web程式調試
Web簡史web前端技術演化三階段
- WEB 1.0:資訊廣播。
- WEB 2.0:資訊互動。 微博、部落格等。
- WEB 5.0:移動互連網。
動態網頁伺服器端技術演化
主流web程式應用平台
效能比較 |
LAMP |
JavaEE |
ASP.NET |
運行速度 |
較快 |
快 |
一般 |
開發速度 |
非常快 |
慢 |
一般 |
運行損耗 |
一般 |
較小 |
較大 |
難易程度 |
簡單 |
難 |
簡單 |
運行平台 |
Linux/Unix/Windows |
絕大多數平台 |
僅Windows平台 |
軟體架構C/S架構
優點:響應速度快;個人化定製;交易處理能力強,減輕伺服器壓力;安全性高。
缺點:C端維護工作量大;不利於企業快速部署應用。
B/S架構
優點:分布廣,只要有互連網的瀏覽器即可。部署靈活;維護方便。跨平台。
C/S與BS混合架構
企業內部操作資料採用C/S架構:外部使用者不直接存取資料庫伺服器,保證企業資料庫的相對安全。企業內部使用者的互動性較強,資料操作響應速度較快。
企業外部採用B/S架構:企業外部使用者修改和維護資料時,速度較慢,較煩瑣,資料的動態互動性不強。適合簡單資料查詢和確認。
B/S架構定義
常見web伺服器分成三類:不帶應用程式的伺服器(存放html檔案等)、帶應用程式的伺服器(例如可以存放JSP檔案)、帶應用程式和資料庫的伺服器(例如JSP+資料庫)。
工作原理
B/S結構採用請求/響應模式進行互動。
HTTPHTTP協議概述
HTTP規範1.0和1.1定義了HTTP訊息格式。HTTP報文由從客戶機到伺服器的請求和從伺服器到客戶機的相應構成,所以HTTP訊息分為請求訊息和響應訊息兩類。
請求行
狀態行
HTTP-Version Status-Code Reason-Phrase CRLF
其中,HTTP-Version表示伺服器HTTP協議的版本;Status-Code表示伺服器發回的響應狀態碼;Reason-Phrase表示狀態碼的文本描述。狀態碼由三位元字組成,第一個數字定義了響應的類別,且有五種可能取值。
- 200 OK:用戶端請求成功。
- 400 Bad Request:用戶端請求有語法錯誤,不能被伺服器所理解。
- 401 Unauthorized:請求未經授權,這個狀態碼必須和WWW-Authenticate前序域一起使用。
- 403 Forbidden:伺服器收到請求,但是拒絕提供服務。
- 404 Not Found:請求資源不存在,舉個例子:輸入了錯誤的URL。
- 500 Internal Server Error:伺服器發生不可預期的錯誤。
- 503 Server Unavailable:伺服器當前不能處理用戶端的請求,一段時間後可能恢複正常,舉個例子:HTTP/1.1 200 OK(CRLF)。
在瀏覽器查看請求和響應資訊
URL
Uniform resource Locator,統一資源定位器
格式:
http://<IP地址>:[連接埠號碼]/路徑/[?<查詢資訊>]
例如:
http://www.etc.com/book/index.html
http:超文字傳輸通訊協定 (HTTP)。FTP,telnet
www:代表一台web伺服器
etc.com:伺服器網域名稱
book:網站上的目錄
index.html:book檔案夾中的一個HTML檔案,即網頁。
Web應用程式的部署tomcat伺服器的安裝
添加系統變數,名稱為CATALINA_HOME,設定值為Tomcat的安裝目錄。
在IE地址欄中輸入http://localhost:連接埠號碼。
tomcat伺服器目錄
目錄 |
說明 |
/bin |
存放各種平台下用於啟動和停止Tomcat的指令檔 |
/conf |
存放Tomcat伺服器的各種設定檔 |
/lib |
存放Tomcat伺服器所需的各種JAR檔案 |
/logs |
存放Tomcat的記錄檔 |
/temp |
Tomcat運行時用於存放臨時檔案 |
/webapps |
當發布Web應用時,預設情況下會將Web應用的檔案存放於此目錄中 |
/work |
Tomcat把由JSP產生的Servlet放於此目錄下 |
tomcat連接埠配置
通過配置tomcat目錄下conf中的server.xml檔案修改Tomcat連接埠號碼
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
上機練習
安裝tomcat,啟動和停止tomcat,修改tomcat連接埠號碼。並測試。
Web應用程式
手動建立和部署web項目
1、在開發環境中建立web項目
在web-inf/web.xml中配置預設訪問啟始頁面。
2、發布為war檔案,拷貝到Tomcat 7.0\webapps目錄下,啟動tomcat。觀察webapps目錄,可以看到war自動產生web應用程式。在ie中訪問項目。
3、在伺服器端web項目的目錄結構:
目錄 |
說明 |
/ |
Web應用的根目錄,該目錄下所有檔案在用戶端都可以訪問(JSP、HTML等) |
/WEB-INF |
存放應用使用的各種資源,該目錄及其子目錄對用戶端都是不可以訪問 |
/WEB-INF/classes |
存放Web項目的所有的class檔案 |
/Web-INF/lib |
存放Web應用使用的JAR檔案 |
上機練習
1、手動建立一個Web項目,實現項目發布,並能通過瀏覽器輸入網址訪問。
2、在myeclipse中建立一個項目匯出為war檔案,部署到伺服器中並訪問。
開發環境myeclipse和tomcat的整合myeclipse和tomcat的整合
進入:windwos->prefereces->myeclipse->servers->tomcat7.x
啟用tomcat7伺服器,關聯JDK。
關閉內建tomcat伺服器。
注意:設定只針對工作空間有效
建立項目和部署項目
在myeclipse中啟動tomcat伺服器
上機練習
在myeclipse中建立項目,在myeclipse中部署項目,在myeclipse中啟動伺服器,在ie瀏覽器中訪問項目。
JSP概念
JSP:Java Server Pages。在HTML中嵌入Java指令碼代碼。
例如:
在ie地址欄輸入http://localhost:8080/chapter01/index.jsp
運行原理
JSP頁面元素page指令
通過設定內部的多個屬性定義整個頁面的屬性。
<%@ page 屬性1="屬性值" 屬性2="屬性值1,屬性值2"… 屬性n="屬性值n"%>
屬性 |
描述 |
預設值 |
language |
指定JSP頁面使用的指令碼語言 |
java |
import |
通過該屬性來引用指令碼語言中使用到的類檔案 |
無 |
contentType |
用來指定JSP頁面所採用的編碼方式 |
text/html,ISO-8859-1 |
小指令碼與運算式
運算式:顯示資料,系統將其作為一個值來進行計算和顯示。(不能以;結尾)
上機練習
需求描述:編寫JSP頁面,計算1—100之間的所有素數之和
提示:1、素數——在一個大於1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數。2、使用out內建對象輸出資訊。
聲明
在編寫JSP頁面程式時候,有時需要為Java指令碼定義成員變數和方法,這時就需要使用JSP聲明來實現。
聲明文法格式:
<%! Declaration;[ Declaration;]…%>
樣本:假如以下代碼需要在頁面中多次使用,如何處理?
<%SimpleDateFormat formater = new SimpleDateFormat("yyyy年 MM月dd日");String strCurrentTime = formater.format(new Date());%>
使用聲明
JSP中的注釋
注意:HTML注釋在JSP檔案被編譯後保留,JSP注釋則被丟棄。重要訊息的注釋不要使用HTML注釋。
總結
上機練習
需求描述:
編寫JSP頁面,計算2000—3000年中存在幾個閏年。
實現思路:
1. 聲明方法boolean leapYear(int year),用於判斷是否是閏年
2. 聲明一個變數count ,用於統計閏年的個數
3. 設定迴圈,條件是從2000至3000年
4. 在迴圈內調用boolean leapYear(int year),根據返回結果,改變count的變數值
提示資訊:
閏年的判斷條件:能夠被4整除而不能被100整除,或者能夠被400整除。
JSP執行過程Web容器處理JSP檔案請求需要經過3個階段
- 翻譯階段
- 編譯階段
- 執行階段
第一次請求之後,Web容器可以重用已經編譯好的位元組碼檔案
如果對JSP檔案進行了修改,Web容器會重新對JSP檔案進行翻譯和編譯。
Web程式的調試與排錯運行Web程式時常犯的錯誤
- 未啟動tomcat
- 未部署web應用
- URL輸入錯誤
- 目錄不能被引用
- JSP指令碼錯誤
錯誤調試
如果伺服器無法啟動,需要修改連接埠號碼。
確認項目已經部署到tomcat伺服器上。
404錯誤,訪問了不可訪問的url資源。
例如把檔案建立到web-inf中,導致404錯誤。
500錯誤。
按照java程式調試方式排錯:閱讀代碼邏輯、輸出資料、debug。
上機練習需求描述:
- 將新聞發布系統的靜態頁面轉換成JSP頁面後部署到Web項目中,並且可以通過瀏覽器訪問各JSP頁面。
- 建立新聞發布系統資料庫。
- 通過MyEclipse統一設定字元集編碼格式為“UTF-8
- 在HTML頁面中加入page指令
- 將HTML的尾碼名改為.jsp
提示:
- 通過MyEclipse統一設定字元集編碼格式為“UTF-8
- 在HTML頁面中加入page指令
- 將HTML的尾碼名改為.jsp
資料庫模型圖
新聞主題表:topics |
欄位 |
資料類型 |
是否為空白 |
備忘 |
tid |
int |
否 |
新聞主題編號,主鍵,自增 |
tname |
char(50) |
否 |
新聞主題,非空,唯一約束 |
新聞表:news |
欄位 |
資料類型 |
是否為空白 |
備忘 |
nid |
int |
否 |
新聞編號,主鍵,自增 |
ntid |
int |
否 |
新聞主題編號,外鍵 |
ntitle |
char(100) |
否 |
新聞標題 |
nauthor |
char(50) |
否 |
作者 |
ncreatedate |
datetime |
是 |
發布日期,預設目前時間 |
npicpath |
char(200) |
是 |
圖片路徑 |
ncontent |
text |
否 |
新聞內容 |
nmodifydate |
datetime |
是 |
編輯日期 |
nsummary |
char(255) |
否 |
新聞概要 |
新聞評論表:comments |
欄位 |
資料類型 |
是否為空白 |
備忘 |
cid |
int |
否 |
評論編號,主鍵,自增 |
cnid |
int |
否 |
新聞編號,外鍵 |
ccontent |
text |
否 |
評論內容 |
cdate |
datetime |
否 |
評論日期,預設目前時間 |
cip |
char(100) |
是 |
評論人IP地址 |
cauthor |
char(100) |
是 |
評論作者 |
系統使用者表:users |
欄位 |
資料類型 |
是否為空白 |
備忘 |
uid |
int |
否 |
使用者編號,主鍵,自增 |
uname |
char(20) |
否 |
使用者名稱,非空,唯一約束 |
upwd |
char(20) |
否 |
使用者密碼,非空 |
JavaEE-01 JSP動態網頁基礎