JavaEE-01 JSP動態網頁基礎

學習要點

  • B/S架構的基本概念
  • Web項目的建立和運行
  • JSP頁面元素
  • MyEclipse建立和運行Web項目
  • Web程序調試

 

Web簡史

web前端技術演進三階段

  • WEB 1.0:信息廣播。 
  • WEB 2.0:信息交互。 微博、博客等。
  • WEB 5.0:移動互聯網。

 

動態網頁服務器端技術演進

 

 

主流web程序應用平臺

 

性能比較html

LAMP前端

JavaEEjava

ASP.NETweb

運行速度數據庫

較快瀏覽器

tomcat

通常安全

開發速度服務器

很是快架構

通常

運行損耗

通常

較小

較大

難易程度

簡單

簡單

運行平臺

Linux/Unix/Windows

絕大多數平臺

僅Windows平臺

 

 

軟件架構

C/S架構

優勢:響應速度快;個性化定製;事務處理能力強,減輕服務器壓力;安全性高。

缺點:C端維護工做量大;不利於企業快速部署應用。

 

B/S架構

 

優勢:分佈廣,只要有互聯網的瀏覽器便可。部署靈活;維護方便。跨平臺。

 

C/S與BS混合架構

企業內部操做數據採用C/S架構:外部用戶不直接訪問數據庫服務器,保證企業數據庫的相對安全。企業內部用戶的交互性較強,數據操做響應速度較快。

企業外部採用B/S架構:企業外部用戶修改和維護數據時,速度較慢,較煩瑣,數據的動態交互性不強。適合簡單數據查詢和確認。

 

B/S架構

定義

常見web服務器分紅三類:不帶應用程序的服務器(存放html文件等)、帶應用程序的服務器(例如能夠存放JSP文件)、帶應用程序和數據庫的服務器(例如JSP+數據庫)。

 

工做原理

B/S結構採用請求/響應模式進行交互。

 

HTTP

HTTP協議概述

HTTP規範1.0和1.1定義了HTTP消息格式。HTTP報文由從客戶機到服務器的請求和從服務器到客戶機的相應構成,因此HTTP消息分爲請求消息和響應消息兩類。

請求行

狀態行

  • 狀態行格式以下:

HTTP-Version Status-Code Reason-Phrase CRLF

其中,HTTP-Version表示服務器HTTP協議的版本;Status-Code表示服務器發回的響應狀態代碼;Reason-Phrase表示狀態代碼的文本描述。狀態代碼由三位數字組成,第一個數字定義了響應的類別,且有五種可能取值。

  • 常見狀態碼:
  1. 200 OK:客戶端請求成功。
  2. 400 Bad Request:客戶端請求有語法錯誤,不能被服務器所理解。
  3. 401 Unauthorized:請求未經受權,這個狀態代碼必須和WWW-Authenticate報頭域一塊兒使用。
  4. 403 Forbidden:服務器收到請求,可是拒絕提供服務。
  5. 404 Not Found:請求資源不存在,舉個例子:輸入了錯誤的URL。
  6. 500 Internal Server Error:服務器發生不可預期的錯誤。
  7. 503 Server Unavailable:服務器當前不能處理客戶端的請求,一段時間後可能恢復正常,舉個例子:HTTP/1.1 200 OK(CRLF)。

在瀏覽器查看請求和響應信息

 

URL

Uniform resource Locator,統一資源定位符

格式:

http://<IP地址>:[端口號]/路徑/[?<查詢信息>]

例如:

http://www.etc.com/book/index.html

http:超文本傳輸協議。FTP,telnet

www:表明一臺web服務器

etc.com:服務器域名

book:站點上的目錄

index.html:book文件夾中的一個HTML文件,即網頁。

 

Web應用程序的部署

JavaEE

  • Java EE,Java 平臺企業版(Java Platform Enterprise Edition),以前稱爲Java 2 Platform, Enterprise Edition (J2EE),2005年6月改名爲JavaEE,2018年3月改名爲 Jakarta EE。是 Sun 公司(2009年被Oracle公司收購)爲企業級應用推出的標準平臺,用來開發B/S架構軟件。
  • Java EE 是一種規範,包括:JDBC(Java Database)數據庫鏈接、JNDI(Java Naming and Directory Interfaces)Java的命名和目錄接口、EJB(Enterprise JavaBean)、RMI(Remote Method Invoke)遠程方法調用、Java IDL(Interface Dexcription Language)/CORBA(Common Object Broker Architecture)Java接口定義語言/公用對象請求代理程序體系結構、JSP(Java Server Pages)、Servlet、XML(Extensible Markup Language)可擴展標記語言、JMS(Java Message Service)Java消息服務、JTA(Java Transaction API)Java事務API、JTS(Java Transaction Service)Java事務服務、JavaMail。
  • JavaEE 是 Java 應用最普遍的部分。
  • JavaEE運行的基礎是JavaSE。
  • JavaEE常見容器:Tomcat 容器(JSP/Servlet),JBoss容器(Servlet和EJB容器),Resin容器(Servlet,輕量級web容器;同級別商用容器:Weblogic、Websphere),Glassfish(Sun公司推出的JavaEE容器)。

 

Tomcat和JDK的版本配套關係

 

 

Tomcat、JDK、JavaEE、Servlet版本間的配套關係

 

eclipse和jdk的配套關係

參考eclipse安裝文檔 

https://wiki.eclipse.org/Eclipse/Installation#Install_a_JVM

配套參考表

Eclipse 4.8 (Photon)    Java8
Eclipse 4.7 (Oxygen)   Java8
Eclipse 4.6 (Neon)       Java8
Eclipse 4.5 (Mars)       Java7
Eclipse 4.4 (Luna)       Java7
Eclipse 4.3 (Kepler)     Java6

 

一般,在軟件項目中,須要調整集成開發環境程序編譯的JDK版本、JRE版本、以及tomcat使用的JRE版本。保持三個版本一致。

tomcat服務器的安裝(以7爲例)

  • 解壓縮版本tomcat注意事項

添加系統變量,名稱爲CATALINA_HOME,設置值爲Tomcat的安裝目錄。

  • 啓動和中止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項目

一、在開發環境中建立web項目

在web-inf/web.xml中配置默認訪問啓始頁面。

二、發佈爲war文件,拷貝到Tomcat 7.0\webapps目錄下,啓動tomcat。觀察webapps目錄,能夠看到war自動生成web應用程序。在ie中訪問項目。

三、在服務器端web項目的目錄結構: 

目錄

說明

/

Web應用的根目錄,該目錄下全部文件在客戶端均可以訪問(JSP、HTML等)

/WEB-INF

存放應用使用的各類資源,該目錄及其子目錄對客戶端都是不能夠訪問

/WEB-INF/classes

存放Web項目的全部的class文件

/Web-INF/lib

存放Web應用使用的JAR文件

 

上機練習

一、手動建立一個Web項目,實現項目發佈,並能經過瀏覽器輸入網址訪問。

二、在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和此整數自身外,不能被其餘天然數整除的數。二、使用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個階段

  1. 翻譯階段
  2. 編譯階段
  3. 執行階段

第一次請求以後,Web容器能夠重用已經編譯好的字節碼文件

若是對JSP文件進行了修改,Web容器會從新對JSP文件進行翻譯和編譯。

 

 

Web程序的調試與排錯

運行Web程序時常犯的錯誤

  • 未啓動tomcat
  • 未部署web應用
  • URL輸入錯誤
  • 目錄不能被引用
  • JSP腳本錯誤

錯誤調試

  • 未啓動tomcat

若是服務器沒法啓動,須要修改端口號。

  • 未部署web應用

確認項目已經部署到tomcat服務器上。

  • URL輸入錯誤

404錯誤,訪問了不可訪問的url資源。

  • 目錄不能被引用

例如把文件建立到web-inf中,致使404錯誤。

  • JSP腳本錯誤

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)

用戶密碼,非空

相關文章
相關標籤/搜索