版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Web 應用程序J2EE下的WEB應用程序,主要是在HTTP 協(xié)議以及HTTPS(SSL+HTTP)協(xié)議的基礎上,采用J2EE相關技術在應用服務器上實現(xiàn)開發(fā)。Servlet JSP/taglib JavaBean 是j2ee下web應用程序的三種基本技術(服務器端)HTML CSS JavaScript是瀏覽器端頁面展示技術和頁面腳本程序。(客戶端IE/Mozilla)J2EE - Web 應用體系結構InteractionControlBusinessLogicPageConstructionDatabaseLegacy Systems3rd party systemsJDBCHTMLJav
2、ascriptServletsJSPs- Java classes- beans- EJBsConnectorsHTTP/HTTPSHTTP協(xié)議(RFC2616)HTTP協(xié)議,超文本傳輸協(xié)議的英文(Hypertext Transfer Protocol)簡稱由于HTTP協(xié)議是基于請求/響應范式的(相當于客戶機/服務器)。一個客戶機與服務器建立連接后,發(fā)送一個請求給服務器,請求方式的格式為:統(tǒng)一資源標識符(URL)、協(xié)議版本號,后邊是MIME信息包括請求修飾符、客戶機信息和可能的內(nèi)容。服務器接到請求后,給予相應的響應信息,其格式為一個狀態(tài)行,包括信息的協(xié)議版本號、一個成功或錯誤的代碼,后邊是MI
3、ME信息包括服務器信息、實體信息和可能的內(nèi)容。請求和相應大致內(nèi)容格式如下:請求:GET /test/test.jsp HTTP/1.0Accept: */*Accept-Language: zh-cn,en;q=0.5Accept-Encoding: gzip, deflateConnection: Close響應:HTTP/1.1 200 OKDate: Tue, 11 Dec 2019 04:15:36 GMTServer: Oracle Containers for J2EEContent-Length: 1993Set-Cookie: JSESSIONID=0a0b065b22b8d3
4、62eab855fc4ecaab5b8aebd67ea9dc; path=/testCache-Control: privateConnection: closeContent-Type: text/html; charset=gb2312測試頁面HTTP協(xié)議(RFC2616)問題1.怎么把服務器的正在處理一大批數(shù)據(jù)的進度時時顯示到客戶端? 原來我們在C/S開發(fā)的時候,這個功能很容易實現(xiàn),當程序每處理一些記錄后,就更新一些頁面,但是由于http協(xié)議是斷連接協(xié)議,以一種請求/響應模式運行,服務器上的程序不能把自己的變化情況主動反映到客戶端。由于http協(xié)議的約束,我們就只能通過JAVASCRIP
5、T定時向服務器請求,每次把服務器的進度顯示到客戶端。(AJAX的局部刷新等功能都是通過這種方法來實現(xiàn)的,微軟的XMLHTTP對象)問題2. 在做WEB開發(fā)的時候,可能需要在N個頁面間傳遞參數(shù),這些參數(shù)是一些對象,不是簡單的文本,當然這些參數(shù)可以保存在服務器上的會話中,但如果太多的話,會影響服務器的性能,而我們的頁面保存的參數(shù)又只能是文本? 我們可以通過java的序列化辦法來做,先把對象序列化,得到一個對象流,把對象流轉(zhuǎn)換byte,byte是不能直接顯示的,然后把這個byte通過base64編碼得到一個可見的字符串,然后把這個字符串保存在頁面中,頁面提交的時候,把該字符串提交到服務器,服務器通過
6、base64解碼,然后反序列化,得到對象,對對象進行操作。操作完畢,又可以重復進行上面的操作。(典型應用:JSF 的視圖對象保存在客戶端的時候),如果該串比較大的話,考慮壓縮。Servlet用戶請求,都是在Servlet中完成的。主要在系統(tǒng)中扮演一種控制器的角色繼承 javax.servlet.http.HttpServlet 即可,然后在web.xml 中配置public void destroy() super.destroy();url = null;protected void doGet(HttpServletRequest request,HttpServletResponse r
7、esponse) throws ServletException, IOException /* */protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException private String url;public void init(ServletConfig config) throws ServletException super.init(config);url = config.getInitParameter(ur
8、l);給大家一個例子Filter訪問控制器,使用于訪問控制,比如轉(zhuǎn)換請求編碼,權限控制等繼承 javax.servlet.Filter 即可,然后在web.xml 中配置public void init(FilterConfig filterConfig) throws ServletException encoding = filterConfig.getInitParameter(PARA_NAME);if (encoding = null) encoding = GBK; public void doFilter(ServletRequest request, ServletRespon
9、se response,FilterChain chain) throws IOException, ServletException chain.doFilter(request, response);public void destroy() 給大家一個例子Listener相當于一種監(jiān)控器模型javax.servlet.ServletContextListenerjavax.servlet.http.HttpSessionListener等接口只要實現(xiàn)這些接口,然后在web.xml 中注冊即可.public class TestSessionListener implementsjavax
10、.servlet.http.HttpSessionListener public void sessionCreated(HttpSessionEvent arg0) arg0.getSession().setAttribute(s,new Timestamp(System.currentTimeMillis();System.out.println(TestSessionListener 創(chuàng)建);SingleInstance.getInstance().create();public void sessionDestroyed(HttpSessionEvent arg0) Timestamp
11、 t = (Timestamp) arg0.getSession().getAttribute(s);SingleInstance.getInstance().destory();System.out.println(TestSessionListener 銷毀 ,會話時間為:+ (System.currentTimeMillis() - t.getTime() + 毫秒);給大家一個例子TagLib一種JSP頁面標簽技術,只要繼承 TagSupport 即可,然后在tld描述文件注冊即可使用,主要實現(xiàn)JSP的頁面展現(xiàn)等,典型引用JSTLpublic class RepeatSumbitTok
12、enTaglib extends TagSupport HTMLHTML是一種標記語言,平時用得最多的就是form input select textarea等標記,這些標記都是為了讓用戶輸入一個值或多個值的輸入框。表單Form 屬性主要有:Action,把內(nèi)容提交給具體的URL, Method(GET/POST),enctype 值一般會有:application/x-www-form-urlencoded(標準) ;multipart/form-data(主要用戶文件上傳時候必須把form的enctype 設置該值)表單中的元素除了disabled的輸入標記外,其他的都將會提交。HTMLI
13、NPUT標記,根據(jù)不同的類型還生成不同的標記其中type,分別有radio, checkbox,file,text,button,reset,submit,select 標記, 分為單選和多選,select標記中的 multiple 來控制單選和多選其實 select 標記的單選和radio ,select 的多選與checkbox類似type=“file”就是顯現(xiàn)文件上傳的html標記,如果是有帶有文件的輸入框,需要上傳文件的話,需要把form 的enctype=“multipart/form-data”,這樣才能實現(xiàn)上傳,如果沒有設置,是傳不了文件的,如果有帶文件上傳的提交,在服務器端,通
14、過request.getParameter(“”)是不能實現(xiàn)的得到參數(shù),必須通過流解析才能得到上傳的文件。Textarea標記,就是輸入一個文本塊的輸入框,有rows cols等屬性看看html的表單元素效果testhtml.jspJavaScriptJavaScript是一種基于對象(Object)和事件驅(qū)動(Event Driven)并具有安全性能的腳本語言。使用它的目的是與HTML超文本標記語言、Java 腳本語言(Java小程序)一起實現(xiàn)在一個Web頁面中鏈接多個對象,與Web客戶交互作用。從而可以開發(fā)客戶端的應用程序等。它是通過嵌入或調(diào)入在標準的HTML語言中實現(xiàn)的。它的出現(xiàn)彌補了H
15、TML語言的缺陷,它是Java與HTML折衷的選擇,具有以下幾個基本特點: 是一種腳本編寫語言JavaScript是一種腳本語言,它采用小程序段的方式實現(xiàn)編程。像其它腳本語言一樣,JavaScript同樣已是一種解釋性語言,它提供了一個易的開發(fā)過程。 它的基本結構形式與C、C+、VB、Delphi十分類似。但它不像這些語言一樣,需要先編譯,而是在程序運行過程中被逐行地解釋。它與HTML標識結合在一起,從而方便用戶的使用操作。 基于對象的語言。JavaScript是一種基于對象的語言,同時以可以看作一種面向?qū)ο蟮?。這意味著它能運用自己已經(jīng)創(chuàng)建的對象。因此,許多功能可以來自于腳本環(huán)境中對象的方法與
16、腳本的相互作用。 瀏覽器中有很多對象供我們調(diào)用,如windows,document等,不同的瀏覽器,有些對象是不一樣的。JavaScript僅僅運行在瀏覽器中,是在我們客戶端-瀏覽器中運行的,與服務器沒有任何關系,只是和我們?yōu)g覽器中的一些對象進行交互。JavaScript簡單性JavaScript的簡單性主要體現(xiàn)在:首先它是一種基于Java基本語句和控制流之上的簡單而緊湊的設計, 從而對于學習Java是一種非常好的過渡。其次它的變量類型是采用弱類型-變體型,并未使用嚴格的數(shù)據(jù)類型。 安全性JavaScript是一種安全性語言,它不允許訪問本地的硬盤,并不能將數(shù)據(jù)存入到服務器上,不允許對網(wǎng)絡文檔
17、進行修改和刪除,只能通過瀏覽器實現(xiàn)信息瀏覽或動態(tài)交互。從而有效地防止數(shù)據(jù)的丟失。 動態(tài)性的JavaScript是動態(tài)的,它可以直接對用戶或客戶輸入做出響應,無須經(jīng)過Web服務程序。它對用戶的反映響應,是采用以事件驅(qū)動的方式進行的。所謂事件驅(qū)動,就是指在主頁(Home Page)中執(zhí)行了某種操作所產(chǎn)生的動作,就稱為“事件”(Event)。比如按下鼠標、移動窗口、選擇菜單等都可以視為事件。當事件發(fā)生后,可能會引起相應的事件響應。 跨平臺性JavaScript是依賴于瀏覽器本身,與操作環(huán)境無關,只要能運行瀏覽器的計算機,并支持JavaScript的瀏覽器就可正確執(zhí)行。從而實現(xiàn)了“編寫一次,走遍天下”的夢想。 查看一個JavaScript例子,圖片移動,采用對象的方式編程,CSSCSS 是 Cascading Style Sheet 的縮寫。譯作層疊樣式表單。是用于(增強)控制網(wǎng)頁樣式并允許將樣式信息與網(wǎng)頁內(nèi)容分離的一種標記性語言。引用方式第一種:是在把所有的CSS樣式信息放在CSS文件中,然后在網(wǎng)頁中引用這個CSS文件。 第二種:在網(wǎng)頁中定義CSS樣式標記 第三種:在HTML標記上的style屬性上直接定義CSS信息,如比較常用的CSS定義方式一種是包一組CCS標記定義為一個Class 如:.normaltextwidth:30px;font-color:red
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 地下排水建設項目材料買賣協(xié)議典范
- 2024技術顧問服務協(xié)議系列篇
- 2024企業(yè)債務融資協(xié)議模板
- 2024屆安徽鳳臺一中高三3月教學質(zhì)量檢測試題數(shù)學試題理試題
- 2024槽棎施工質(zhì)量保障協(xié)議范本
- 2024年房產(chǎn)開發(fā)融資居間協(xié)議模板
- 2024建筑外保溫服務協(xié)議樣式
- 2024年商業(yè)交易貨樣協(xié)議模板
- 2024年度美容院加盟協(xié)議示例
- 2024全職員工派遣協(xié)議范本
- 反腐倡廉廉潔行醫(yī)
- 質(zhì)量保證體系范文(必備14篇)
- 心血管內(nèi)科醫(yī)療質(zhì)量評價體系與考核標準
- 2022-2023學年廣州市南沙區(qū)小升初全真模擬數(shù)學檢測卷含答案
- 2023年食品安全糧食類理論知識考試題庫(含答案)
- 機械裝備結構設計PPT完整全套教學課件
- 中國糖尿病患者的白內(nèi)障圍手術期防治策略專家共識(2020年)
- IATF16949審核員工作職責
- 馬達加斯加地質(zhì)礦產(chǎn)概況
- 2023年關于農(nóng)村勞動力轉(zhuǎn)移發(fā)展現(xiàn)狀及對策的調(diào)研報告
- 某文化博物館建設項目可行性研究報告
評論
0/150
提交評論