版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Java Web開發(fā),西北工業(yè)大學(xué)軟件與微電子學(xué)院 -Java 興趣小組Java EE系列講座,RJ010703 許潤華 QQ : 447202019 Email : ,Contents,Java Web簡介,Server,Java Web 編程,B/S(Browser/Server )結(jié)構(gòu):基于瀏覽器的應(yīng)用系統(tǒng),沒有客戶端程序,C/S(Client/Server )結(jié)構(gòu):客戶端和服務(wù)器結(jié)構(gòu)應(yīng)用,基于瀏覽器的B/S結(jié)構(gòu)應(yīng)用系統(tǒng)開發(fā),Java Web簡介,Servlet容器,Servlet容器也叫Servlet引擎,Web服務(wù)器或應(yīng)用服務(wù)器的一部分,用于在發(fā)送的請求和響應(yīng)之上提供網(wǎng)絡(luò)服務(wù),解碼基
2、于MIME的請求,格式化基于MIME的響應(yīng),Java Web簡介,Tomcat簡介,免費開源的Web應(yīng)用服務(wù)器技術(shù)先進 性能穩(wěn)定 支持最新的Servlet和JSP規(guī)范,Java Web簡介,Tomcat安裝配置,bin文件夾:存放關(guān)閉和啟動的腳本文件,common/lib文件夾:Tomcat服務(wù)器和所有應(yīng)用程序均可訪問的公共庫文件,webapps文件夾:Web應(yīng)用程序發(fā)布時放置的文件夾目錄;該目錄下的應(yīng)用程序在Tomcat啟動時將被自動加載,logs文件夾:Tomcat的日志文件,work文件夾:存放由JSP生成的Servlet源文件和字節(jié)碼,應(yīng)用程序啟動時加載;如果JSP文件有更新,則重新編
3、譯,server/lib文件夾:存放服務(wù)器運行所需的庫文件,shared/lib文件夾:存放Web應(yīng)用程序運行所需的公共庫文件,Tomcat的安裝,Tomcat的配置,JDK路徑配置(JAVA_HOME),端口異常問題(修改端口),Java Web簡介,Java Web 工程結(jié)構(gòu),WEB-INF文件夾:Web應(yīng)用程序核心類代碼和配置文件所在的文件夾。該文件夾下的內(nèi)容受訪問保護,用戶不能直接訪問該文件夾下的內(nèi)容;服務(wù)器將搜索其中的配置文件相關(guān)信息實現(xiàn)Web應(yīng)用的初始化,web.xml:存在于WEB-INF下。作為Web應(yīng)用程序初始化定義文件,對運行環(huán)境和Servlet進行配置,classes文件
4、夾:Web應(yīng)用程序中的核心類所在文件夾,也用于存放框架所需的配置文件,位于WEB-INF下,lib文件夾:Web應(yīng)用程序運行所需要的類庫所在文件夾,META-INF文件夾:存放證書,和校驗數(shù)據(jù), 部署信息,也用于存放源代碼,Web應(yīng)用中的模型、視圖、控制和XML配置文件均要符合一定的組織規(guī)范,通常,也將頁面(JSP文件、HTML文件)和引用的圖片等信息分別存放在不同目錄,清晰結(jié)構(gòu),將需要保護的數(shù)據(jù)放在WEB-INF下,數(shù)據(jù)庫訪問,數(shù)據(jù)庫的存儲結(jié)構(gòu),存儲結(jié)構(gòu)是指數(shù)據(jù)的存放方式 和封裝模式,物理層:實際數(shù)據(jù),物理存儲設(shè)備上的實際數(shù)據(jù)集合,概念層:由數(shù)據(jù)庫封裝的數(shù)據(jù)組織形式,指明了數(shù)據(jù)間的邏輯關(guān)系,
5、邏輯層:面向用戶的邏輯數(shù)據(jù),通過DAO映射至POJO,數(shù)據(jù)庫訪問,數(shù)據(jù)庫特點和發(fā)展,數(shù)據(jù)共享,優(yōu)化數(shù)據(jù)結(jié)構(gòu),結(jié)構(gòu)完整、數(shù)據(jù)獨立,數(shù)據(jù)控制和集中管理,提供一致性訪問接口,特點簡介,常用數(shù)據(jù)庫: DB2,Oracle、SQLServer、MySQL,Hibernate使關(guān)系型數(shù)據(jù)庫表現(xiàn)為面向?qū)ο竽J?當文件系統(tǒng)逐漸不能滿足大批量數(shù)據(jù)管理的需求時,能夠統(tǒng)一管理和共享數(shù)據(jù)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)產(chǎn)生,層次型數(shù)據(jù)結(jié)構(gòu)和網(wǎng)狀數(shù)據(jù)結(jié)構(gòu)由于數(shù)據(jù)量膨脹導(dǎo)致的復(fù)雜性使其難以維護,關(guān)系型數(shù)據(jù)庫產(chǎn)生并發(fā)展,SQL:結(jié)構(gòu)化查詢語言規(guī)范被定義并且用于封裝數(shù)據(jù)庫操作,OOD的發(fā)展使數(shù)據(jù)復(fù)雜度進一步提高,以面向?qū)ο蠓绞讲?/p>
6、縱的數(shù)據(jù)庫被提出;該需求立即被響應(yīng)并發(fā)展,數(shù)據(jù)庫訪問,使用建立 小型數(shù)據(jù)庫,MySQL的安裝配置和簡單使用步驟,選擇安裝路徑,詳細配置MySQL,服務(wù)器模式:Developer machine,用于快速開發(fā)的小型服務(wù)器,將占用最小內(nèi)存,服務(wù)器數(shù)據(jù)庫用例:MultiFunctional Database,用于一般目的的小型數(shù)據(jù)庫,將會具有快速訪問數(shù)據(jù)和優(yōu)化數(shù)據(jù)庫引擎的能力。,服務(wù)器規(guī)模:Design Support(DSS)/OLAP,一個最大連接數(shù)為20的小型數(shù)據(jù)庫,服務(wù)器網(wǎng)絡(luò)選項: 啟用TCP/IP網(wǎng)絡(luò)協(xié)議:允許建立外部網(wǎng)絡(luò)連接。如果禁用,只能允許本地訪問; 端口地址:3306; 添加防火墻
7、異常; 啟用嚴格模式:標準化數(shù)據(jù)庫服務(wù)器運行模式,默認字符集:GBK,超大中文字符集。,MySQL在Windows下的設(shè)置: 添加系統(tǒng)服務(wù):在系統(tǒng)中添加名為“MySQL”的系統(tǒng)服務(wù)項,并自動匹配MySQL服務(wù)器; 將Bin目錄添加至系統(tǒng)的PATH路徑中:允許通過命令行訪問數(shù)據(jù)庫服務(wù)器,權(quán)限設(shè)置:用戶名、密碼、遠程訪問允許,數(shù)據(jù)庫訪問,MySQL中數(shù)據(jù)庫建立過程 和基本操作,create database dataBaseName; 創(chuàng)建數(shù)據(jù)庫,use dataBaseName; 使用數(shù)據(jù)庫,create table user( rowName1 type(size) null other, r
8、owName2 type(size) null other, ); 為數(shù)據(jù)庫創(chuàng)建表格,創(chuàng)建數(shù)據(jù)庫,數(shù)據(jù)庫中的的數(shù)據(jù)查詢, 插入,更新,show databases; 顯示數(shù)據(jù)庫系統(tǒng)中所有數(shù)據(jù)庫,show tables; 顯示某數(shù)據(jù)庫中所有表格,select * from tableName; 顯示表格中信息,insert into tableName ( p1, p2) values(v1, v2); 向tableName表格插入一行數(shù)據(jù),update tableName set p1=v2 where id=3; 更新數(shù)據(jù)庫表格中id為3這行的p1屬性值為v2,數(shù)據(jù)庫系統(tǒng)GUI控制界面,數(shù)據(jù)
9、庫訪問,Web應(yīng)用中訪問數(shù)據(jù)庫,加載驅(qū)動: Driver driver = (Driver)Class.forName( driverName).newInstance();,建立連接: Connection connection = DriverManager.getConnection(url, userNameForDataBase, userPasswordForDataBase);,發(fā)送SQL語句并且執(zhí)行訪問: PreparedStatement statement = connection.prepareStatement(SQLString); /根據(jù)不同語句執(zhí)行不同任務(wù) sta
10、tement.execute();,處理訪問結(jié)果: ResultSet result = statement.executeQuery();,創(chuàng)建了一個MySQL數(shù)據(jù)庫,安裝MySQL-JDBC驅(qū)動,創(chuàng)建數(shù)據(jù)庫JDBC連接,示例,Servlet技術(shù),Servlet,服務(wù)器端的Java應(yīng)用程序,由服務(wù)器 端Servlet容器管理,init():初始化Servlet,通過ServletConfig參數(shù)傳入的配置信息準備該Servlet運行時所需的數(shù)據(jù),如數(shù)據(jù)庫連接等。對于一個Servlet實例,該方法只被調(diào)用一次,service():Web容器將調(diào)用該方法響應(yīng)客戶請求。在init()執(zhí)行結(jié)束之后,
11、容器會生成一個ServletRequest對象和ServletResponse對象作為參數(shù)傳入,該方法將實現(xiàn)業(yè)務(wù)邏輯的處理,distory():當Servlet需要被從Web容器中移除時,該方法將被調(diào)用并釋放由該Servlet占用的資源,getServletConfig():獲取該Servlet創(chuàng)建時的配置信息,返回ServletConfig的實例,getServletInfo():返回該Servlet的聲明信息,如作者、版權(quán)等,Servlet是Servlet接口的實現(xiàn)類,通常情況下,我們編寫Servlet繼承自HttpServlet即可,重寫service方法,或是doGet,doPost
12、etc.,Servlet技術(shù),Servlet 接口,大多數(shù)網(wǎng)絡(luò)應(yīng)用中,客戶端(瀏覽器) 都是通過HTTP協(xié)議訪問服務(wù)器端的 資源,為了應(yīng)用快速開發(fā)應(yīng)用于HTTP協(xié)議的 Servlet類,Sun公司提供了HttpServlet 抽象類,Servlet技術(shù),HttpServlet,請求,參數(shù)轉(zhuǎn)換,請求方式獲取,HttPServlet,公共service,保護service,GenericServlet類中service的實現(xiàn),參數(shù)轉(zhuǎn)換,將ServletRequest和ServletRequest參數(shù)轉(zhuǎn)化為HttpServletRequest和HttpServletRequest 然后調(diào)用保護ser
13、vice方法,根據(jù)請求類型調(diào)用不同的處理方法 GET請求,doGet方法 POST請求,doPost方法 ,Servlet技術(shù),Servlet 生命周期,加載和實例化,初始化,請求處理,服務(wù)終止,Servlet容器負責(zé)加載和實例化Servlet,調(diào)用的是Servlet默認構(gòu)造參數(shù)(編寫Servlet類時不應(yīng)提供帶參數(shù)的構(gòu)造函數(shù)),獲取相關(guān)信息(數(shù)據(jù)庫連接信息,配置信息等) 每個Servlet,init()只調(diào)用一次,調(diào)用service()方法提供服務(wù),調(diào)用destroy()方法銷毀Servlet實例,Servlet技術(shù),Servlet 配置運行,第一步:在Tomcat中創(chuàng)建Web應(yīng)用并且建立文
14、件結(jié)構(gòu),第二步:編寫Servlet類并且編譯,第三步:編寫HTML頁面,并指定action為Servlet,第四步:編寫web.xml配置文件,在webapp目錄下新建工程文件夾,創(chuàng)建WEB-INF、classes、lib等必要的文件夾,良好的編程風(fēng)格是將源程序單獨列開并且使用包。目錄結(jié)構(gòu)越深的類安全性越高。編譯通過的文件存放于classes目錄下,最好將HTML頁面單獨存放,便于管理,結(jié)構(gòu)清晰。(JSP頁面),web.xml文件存在于WEB-INF文件夾下,將用于構(gòu)造ServletConfig對象并且控制Servlet的初始化過程,JSP技術(shù), headOfPage ,JSP 簡介,Java
15、 Server Page,JSP頁面基本組成部分:HTML代碼、JSP指令元素、JSP腳本元素、JSP動作元素、注釋,JSP頁面的實質(zhì)是Servlet,用戶訪問時被編譯執(zhí)行,JSP可以實現(xiàn)對Java Bean的管理和對數(shù)據(jù)庫的操作,JSP技術(shù),請求,Web容器,JSP頁面,Servlet,class文件,實例,JSP 運行機制,從JSP到Servlet的轉(zhuǎn)換發(fā)生在用戶請求JSP頁面時,由JSP轉(zhuǎn)換得到的Servlet實現(xiàn)JspPage接口;JspPage繼承至Servlet接口,service方法將被執(zhí)行,并實現(xiàn)業(yè)務(wù)邏輯或通過內(nèi)置對象產(chǎn)生輸出,JSP技術(shù),JSP 指令元素,page指令:定義與
16、頁面相關(guān)的屬性,用于與Web容器通信。該指令有13個屬性,include指令:靜態(tài)導(dǎo)入外部頁面,只有一個屬性指定外部文件位置,taglib指令:使用自定義標簽。自定義標簽可簡化開發(fā)過程;許多框架提供標簽庫,為轉(zhuǎn)換階段提供整個JSP頁面的相關(guān) 信息,不 產(chǎn)生任何輸出到頁面,JSP技術(shù),JSP 腳本元素,將要執(zhí)行的Java代碼,:聲明腳本,用于聲明靜態(tài)變量和方法,:腳本段,編寫要執(zhí)行的Java代碼,:表達式,將被計算并且將返回結(jié)果輸出,JSP技術(shù),JSP 動作元素,由Web容器解析的具有XML語法的JSP標簽,動作元素將在編譯的過程中被替換成相應(yīng)預(yù)定義的Java代碼,JSP2.0中定義了20個標準
17、的動作元素,使用Java Bean、定義輸出頁面轉(zhuǎn)發(fā)等功能均通過動作元素完成,JSP技術(shù),JSP 注釋,兩種注釋類型:,HTML注釋:,JSP注釋:,JSP技術(shù),JSP 隱含對象,在腳本段和表達式中可以直接使用 的Java對象,不需要顯式實例化,Web容器在編譯JSP頁面時將完成實例化操作,9個內(nèi)置對象,可用于數(shù)據(jù)輸入輸出、請求處理、屬性值存儲、錯誤記錄等,不同的對象有不同的作用范圍, headOfPage ,request, response, pageContext, session application, out, config, page, exception,JSP技術(shù),JSP技術(shù)
18、,對象和范圍,page范圍,JSP的各內(nèi)置對象都有自己的有效范圍,并可以用于管理綁定到自身的類的生命周期,request范圍,session范圍,通過setAttribute()方法將對象綁定到內(nèi)置對象中,application范圍,僅當前頁面內(nèi)有效;具有該范圍的對象被綁定至pageContext對象中,并且只能在當前的JSP頁面被訪問。該類型對象在每次客戶請求頁面時創(chuàng)建,并在響應(yīng)結(jié)束或進行頁面轉(zhuǎn)發(fā)時銷毀,被綁定至request對象中的數(shù)據(jù)具有request范圍。在當前頁面中的include或forward操作轉(zhuǎn)向或?qū)氲捻撁嬷幸部梢栽L問。該類型對象在客戶發(fā)送新請求時被創(chuàng)建。,在用戶的整個會話過程中,具有session范圍的對象都能在內(nèi)置對象session中被保存。,由于內(nèi)置對象application是在服務(wù)器啟動的整個周期中有效的,因此被綁定至其中的數(shù)據(jù)會在服務(wù)器關(guān)閉之前一直有效。,JSP 開發(fā)的兩種模型,模式1的MVC,JSP結(jié)合Java Bean 開發(fā)Web應(yīng)用,使用JSP作為視圖和控制,使用Java Bean作為模型,可用于
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年成都市龍泉驛區(qū)東山國際小學(xué)招聘備考題庫及完整答案詳解一套
- 2026年德陽市羅江區(qū)醫(yī)療保障局關(guān)于公開招聘臨聘人員的備考題庫參考答案詳解
- 2026年南通市勞動勞務(wù)有限公司面向社會公開招聘工作人員10人備考題庫南通通明集團有限公司及完整答案詳解一套
- 2026年成都市雙流區(qū)黃龍溪幼兒園招聘教師和保育員各1名備考題庫及一套參考答案詳解
- 2026年國藥控股陜西有限公司招聘備考題庫及答案詳解1套
- 2026年中核金辰(江蘇)核技術(shù)發(fā)展有限公司海南分公司招聘備考題庫及參考答案詳解一套
- 2026年廣州市登峰街公開招聘輔助人員備考題庫及答案詳解1套
- 2026年北京第三實驗學(xué)校校園招聘11人北京第三實驗學(xué)校備考題庫參考答案詳解
- 2026年巧家縣貝貝教育集團幼兒園備考題庫帶答案詳解
- 2026年北京市第九十九中學(xué)招聘備考題庫及1套完整答案詳解
- 售后服務(wù)流程管理手冊
- 2020-2021學(xué)年新概念英語第二冊-Lesson14-同步習(xí)題(含答案)
- 混凝土構(gòu)件的配筋計算
- 國家開放大學(xué)《政治學(xué)原理》章節(jié)自檢自測題參考答案
- GB/T 5758-2023離子交換樹脂粒度、有效粒徑和均一系數(shù)的測定方法
- 防雷裝置維護保養(yǎng)制度
- 中醫(yī)治療“膏淋”醫(yī)案67例
- 黃金冶煉行業(yè)三廢處理綜述
- 統(tǒng)編版高中語文選擇性必修上冊 在民族復(fù)興的歷史豐碑上-2020中國抗疫記 教學(xué)課件
- GB/T 2792-2014膠粘帶剝離強度的試驗方法
- 小波分析及其應(yīng)用教材課件
評論
0/150
提交評論