第一篇:javaWeb學習[小編推薦]
JavaWeb學習筆記___d9.txt
2010-12-14 22:51
Session(會話)
Session對象
1、存在于服務器端
2、依賴于線程
3、Session的生命周期,跟一次瀏覽器窗口有關,只要窗口不關閉,Session便存在,所以稱會話。
Session1、技術內(nèi)核使用cookie:
session參在與服務器端
服務器端為多個session創(chuàng)建不同的session id
把session id以cookie的形式送入到客戶端
request.getSession()內(nèi)涵是:在cookie中查找
session id,若cookie中存在sessionId,則根據(jù)
sessionId,將sessionID對應的session找到,并返回;若cookie中并不存在sessionID,服務器端創(chuàng)建session,并將sessionID寫入到Cookie中。
2、當關掉對話窗口(結(jié)束一次會話)時,session并沒有被刪除,只是關掉對話窗口時,cookie被清空
無法再獲得sessionID,無法找到對應的session,但是session還是存在于服務器端。
若想真正刪除session,需要調(diào)用HttpSession中的invalidate()方法,使得session失效。
3、服務器為了考慮效率,不會讓無用的session存在很久,Http協(xié)議是無連接協(xié)議,服務器端無法判斷客戶端是否關閉“會話”,所以服務器設置了失效時間。若用戶在了段時間內(nèi),不操作session,則系統(tǒng)刪除session。
我們可以設置此時間setMaxInactiveInterval(),但不推薦用戶自行設置。
4、session技術在很大程度上,依賴于Cookie,若Cookie被禁用,或瀏覽器不支持Cookie,則session就無法使用。
5、為了解決第四點所引申的session不可用的問題。我們使用URL重寫,將sessionID通過地址欄提交參數(shù),發(fā)給服務器端。
使用response.encodeURL()在地址欄中加載sessionID通過
request.getParameter(jsessionid)得到sessionID
a、String url encodeURL(String url);通過超鏈接,重新發(fā)出請求,此請求會在地址之后自動加上sessionID及其ID值,此方法又被子稱為URL重寫,或重新封裝。
b、String url encodeRedirectURL(String url);將地址封裝成sendRedirect方法所需要的地址,并在此地址后加入sessionID
Servlet API小結(jié):
HttpServletRequest:接口
1、setAttribute()、getAttribute()、getAttributeNames
getParameter()//只能獲得表單中的內(nèi)容
2、getCharacterEncoding()、setCharacterEncoding()
獲得、設置request中的數(shù)據(jù)編碼方式
3、getContentType()得到MIME,即IE文件打開的方式
4、Cookie[] getCookies()
得到當前所有的cookie5、getSession()
獲得或創(chuàng)建session6、getRequestDispatcher(String path)將目標頁面封裝,為了forward()進行頁面轉(zhuǎn)向。
7、getRequestedSessionId()得到一個session的id
總結(jié):
request對象封裝了客戶端的請求和相關信息。
包括:
1、cookie2、封裝http協(xié)議的報頭(請求方式、請求服務器的端口、請求服務器ip地址、編碼方式、請求的項目用的名字、請求消息的長度、瀏覽器的信息、客戶端信息??)
3、表單數(shù)據(jù)
HttpServletResponse:接口(響應)
用它跟客戶端聯(lián)系,并且向客戶端發(fā)送數(shù)據(jù)
1、getCharacterEncoding()得到向客戶端發(fā)送數(shù)據(jù)的默認編碼方式。
2、getContentType()得到向客戶端發(fā)送數(shù)據(jù)的默認類型(html或者jpeg等等)。
3、getOutputStream()得到與客戶端建立的輸出字節(jié)流,傳輸二進制。
4、getWriter()得到與客戶建立的輸出字符流,傳輸文本文件。
5、setCharacterEncoding()設置的是要發(fā)送給客戶端的數(shù)據(jù)的編碼方式。
6、setContentType(String type)設置并告知客戶端,執(zhí)行這些二進制時,用何種類型打開(html、jpeg等等)。
7、addCookie(Cookie cookie)將cookie的鍵和鍵值成對的送到客戶端
8、一些的set方法用來指定客戶端運行時的一些屬性。例:緩存、打開方式、消息頭的控制等等
9、encodeURL(String url)、encodeRedirectURL(String url)**在地址后追加session的id,用來實現(xiàn)cookie被禁用后,session依然可以使用。
10、sendRedirect(String location)頁面的重定向
Cookie:類
1、Cookie(String name,String value)創(chuàng)建Cookie并將鍵,鍵值,存入到Cookie中
2、getMaxAge(int)設置Cookie的生命服周期,當參數(shù)是負數(shù)時:窗口(會話)被關掉時,清空Cookie3、getName()獲得Cookie中的鍵
4、getValue()獲得Cookie中的健值
HttpSession:接口
1、getAttribute(String name)、setAttribute(String name)
2、getId()獲得session的唯一標識id3、getMaxInactiveInterval()、setMaxInactiveInterval()得到和設置session的失效時間
4、invalidate()使得session失效
5、isNew()布爾類型,判斷session是否是新創(chuàng)建的HttpServlet:類
1、doGet(HttpServletRequest req,HttpServletResponse resp)
當用戶以get方式發(fā)出請求時,servlet調(diào)用此方法
2、doPost(HttpServletRequest req,HttpServletResponse resp)當用戶以post方式發(fā)出請求時,servlet調(diào)用此方法
3、public void init()throws ServletException
用戶第一次請求servlet的時候,容器需建立servlet對象,同時調(diào)用init()方法
4、service(ServletRequest req,ServletResponse res)
開辟多線程,并根據(jù)用戶提交的方式,選擇調(diào)用doGet()還是doPost()方法
此方法不建議重寫
第二篇:javaweb學習課程總結(jié)
總結(jié)一:javaweb課程總結(jié)
剛開始學的時候,感覺這兩門課程好高大上的樣子,因為自從學軟件工程這個專業(yè)以來,一直都是學的理論性、框架性的東西,就沒有接觸到編程的實質(zhì)性的部分,終于開始學編程了,感覺蠻興奮的,也是精神飽滿,信心十足,懷著一腔熱血來聽課。
由于JAVAWEB和JSP兩門課是同時上的,而且每次都是一整上午,上課時間很長,老師一直有條不紊的講著,雖然時間很長,但是每當大家上完課,心中都是有一種充實的感覺,大家都覺得有所收獲,所以也就不曾覺得累了。
JAVAWEB這門課讓我認識了以前見所未見聞所未聞的專業(yè)術語,Web應用程序的概述。我從中了解到Web應用程序的三層體系結(jié)構:表示層、業(yè)務層、數(shù)據(jù)存取層。從而想到了學數(shù)據(jù)庫設計時的數(shù)據(jù)庫設計三大范式,它們同是敘述在編寫代碼時應做的規(guī)劃和應遵循的規(guī)則,這種規(guī)劃在以后的學習中時有出現(xiàn),說明編程并不是一味地進行循環(huán)判斷、死記硬背,而需要在技術上有所加強、在效率上有所提高。做任何事都是如此,事先必須有目標、有計劃,有統(tǒng)籌,這樣執(zhí)行時才不會盲目,才不會事倍功半。學習編程對綜合能力都是一種培養(yǎng)。
接下來是JSP知識。要學JSP,就必須會HTML,如果HTML學不通,這對以后的學習都是一個瓶頸?;A一定要打扎實,吃透,否則上層建筑的建起就不會很順利甚至沒法起步。然后是JavaBean。以下是個人對JavaBean的一點學習體會。JavaBean里有set()和get()方法,用這些方法能很容易地傳值,邏輯上更標準,代碼看起來也更規(guī)范。但set()和get()方法只是用來對屬性進行操作的,所以如果是進行復雜的邏輯或?qū)?shù)據(jù)庫進行操作等,那么就不要寫成set()和get()方法,只用一個有返回值的方法就足以。這樣直觀方便,且符合規(guī)范??傊瑂et()和get()方法不要沒有效率地濫定義。
接著是Servlet。Servlet是一個用Java編寫的應用程序,在服務器上運行,用來處理請求和響應,也可以單獨做為一個Web頁面。然后講的是標簽,包括自定義標簽和JSP標準標簽庫。用一般的Java代碼都幾乎能實現(xiàn)它們的功能。它們的好處是提高了代碼的重用性。
我們需要配置的壞境有JDK,Tomcat,還要用到Myeclips這一基礎的編程工具。在學習JSP之前,由于沒有網(wǎng)頁編程的基礎,便學習了HTML這種文本標記語言,自己試著去做簡單的靜態(tài)網(wǎng)站。后來學做JSP動態(tài)網(wǎng)站時,就涉及到了多方面的知識,JSP內(nèi)部對象及內(nèi)部對象所涉及的方法,JSP與數(shù)據(jù)庫連接,如何去引用數(shù)據(jù)庫。這門課更是鞏固了JAVA這一基礎編程語言,要求對JAVA掌握的要透徹,每門語言要學扎實,深入理解,都要花費很大的功夫,不是容易的事情。
Jsp與servlet有一定的區(qū)別,Servlet可以看作是HTML的Java代碼,而JSP可看作是包含Java代碼的HTML。共同點:JSP和Servlet實際上是一回事。JSP頁面最終要轉(zhuǎn)換成Servlet,并進行編譯,在請求期間執(zhí)行的實際上是編譯后的Servlet。因此,JSP頁面不過是編寫Servlet的另一種方式。各自應用的范圍:Servlet比較適合于做處理任務,如做業(yè)務邏輯;JSP適合于表示任務,如網(wǎng)頁制作,生成動態(tài)網(wǎng)頁。
對JAVAWEB和JSP課程的知識就簡單介紹到這里,本學期的這兩門課程讓我對軟件工程這門課有了一個全新的認識,我真切的學到了能用的東西,大學里的很多課是浪費時間,而把時間花在學習這兩門課上,不會覺得是在虛度光陰,相反,會有一種無比滿足與充實的感覺,感謝彭老師半年以來的精心教誨,感謝這兩門課給我?guī)砜鞓罚?/p>
總結(jié)二:javaweb課程總結(jié)
今天老師講的一定的程度了,發(fā)現(xiàn)有一些細節(jié),自己并沒有學好,如下是自己認為自己學的模糊的地方。
1.www是(worldwideweb)萬維網(wǎng),www的客戶端程序:ie,foxfire.2.什么叫web服務器,就是一段網(wǎng)絡程序,讓人們通過瀏覽器可以看到任何主機上的內(nèi)容(通俗的說法).3.微軟開發(fā)的搜索引擎?Bing
4.B/S結(jié)構的知名缺點是什么?
受瀏覽器功能的限制。
C/S結(jié)構的優(yōu)點,在實際中還有一部分地方需要它。如:游戲。
5.老師說再過五年就沒有操作系統(tǒng)了,搜索引擎是未來發(fā)展的趨勢。學JAVAweb就是做網(wǎng)站,保證以后20年活得比較滋潤。
6.常見的web服務器
weblogic是bea公司
WebSphere是IBM公司
Tomcat是免費的,是Apache
7.建議使用壓縮的TOMCAT的安裝版,因為現(xiàn)實
中我們是這樣用的。
8.安裝tomcat的常見問題。
在這里要學習一門語言:批處理編程。打開STARTUP.BAT.1.說catalina_home沒有配置
2.一安裝完閃就沒有了。
解決方法:
1.環(huán)境變量設置catalina。還有JAVA_HOME的配置
2.端口被占有的問題。
3.安裝多個tomcat,解決方法進入當前的安裝目錄中雙擊startup.bat進入。
總結(jié)三:javaweb課程總結(jié)
我們的JSP課程終于結(jié)束。掐指算來,用一個多月的時間。這次的課程和以往的課程有一些不同。一是,需要理解的概念、專業(yè)術語很多。比如,JavaWeb里引入了Web體系結(jié)構、MVC設計模式等的概念,出現(xiàn)了Servlet、JavaBean、Scriptlet、JSTL等無法替代的術語;二是,這次學習的內(nèi)容和Internet接軌,十分實用。比如,第四章講解了JavaMail,這是一個用來發(fā)送接收郵件的組件。學完JSP,既復習了Java的知識,又具備了做網(wǎng)站的能力。
回想一下這個階段的過程。
第一章是對Web應用程序的概述。我從中了解到Web應用程序的三層體系結(jié)構:表示層、業(yè)務層、數(shù)據(jù)存取層。從而想到了學數(shù)據(jù)庫設計時的數(shù)據(jù)庫設計三大范式,它們同是敘述在編寫代碼時應做的規(guī)劃和應遵循的規(guī)則,這種規(guī)劃在以后的學習中時有出現(xiàn),說明編程并不是一味地進行循環(huán)判斷、死記硬背,而需要在技術上有所加強、在效率上有所提高。做任何事都是如此,事先必須有目標、有計劃,有統(tǒng)籌,這樣執(zhí)行時才不會盲目,才不會事倍功半。學習編程對綜合能力都是一種培養(yǎng)。
接下來學的是JSP知識。要學JSP,就必須會HTML,如果HTML學不通,這對以后的學習都是一個瓶頸。這點我有所體會。因為我對HTML掌握得比較好,在這方面沒有遇到什么困難。但如果沒掌握好這些知識,加上要學新知識,就會在舊難題的基礎上增加新難題,兩頭招架,實有些吃不消。所以,基礎是很重要的,基礎一定要打扎實,吃透,否則上層建筑的建起就不會很順利甚至沒法起步。
然后是JavaBean。以下是個人對JavaBean的一點學習體會。JavaBean里有set()和get()方法,用這些方法能很容易地傳值,邏輯上更標準,代碼看起來也更規(guī)范。但set()和get()方法只是用來對屬性進行操作的,所以如果是進行復雜的邏輯或?qū)?shù)據(jù)庫進行操作等,那么就不要寫成set()和get()方法,只用一個有返回值的方法就足以。這樣直觀方便,且符合規(guī)范??傊?,set()和get()方法不要沒有效率地濫定義。
接著是Servlet。一上手,我第一個感覺是,很專業(yè)、很難懂。書上介紹了一大堆接口、類、和重寫的方法,一時覺得暈頭轉(zhuǎn)向。后來用得多、看得多了,Servlet的基本格式也記得差不多,其實也沒什么難的。只要記住Servlet是一個用Java編寫的應用程序,在服務器上運行,用來處理請求和響應,也可以單獨做為一個Web頁面,就足夠了。
在EL表達式這章,我遇到了一些困難。課后作業(yè)題完成得不順利。但通過后面的學習,我了解到,EL表達式最大的作用是在各種標簽里使用。標簽以外對變量的引用,用其他方法,比如JSP表達式就能夠達到目的。
然后講的是標簽,包括自定義標簽和JSP標準標簽庫。這兩章的內(nèi)容不太常用。因為用一般的Java代碼都幾乎能實現(xiàn)它們的功能。它們的好處是提高了代碼的重用性。標準標簽庫里有幾個比較有用的標簽,比如forTokens和setBundle,這兩個標簽的作用是一般代碼實現(xiàn)不了的。
最后一章是MVC設計模式。所謂MVC,就是Model(JavaBean)、View(JSP)、Controller(Servlet),和第一章講的Web應用程序三層體系結(jié)構相呼應。結(jié)合起來,可以這樣理解。Model是數(shù)據(jù)存取層,View是表示層,Controller是業(yè)務層。用這樣的規(guī)則編寫網(wǎng)站,能做到邏輯分明,代碼重用度高,便于維護等。
以上就是對這階段學習的回顧。
通過學習JSP,我了解了更多的編程概念和理念,更增強了信心,只要有克服困難的勇氣和決心,就沒有什么難關無法克服。我會抱著十足的勇氣和決心向下一個階段挑戰(zhàn)。
從一期學到現(xiàn)在,我對Java有了一個比較具體的認識。
Java的特點是:面向?qū)ο蟆⒖缙脚_、可移植。面向?qū)ο蟮暮x是,這種語言可以形象地模擬現(xiàn)實生活中的實物。在面向?qū)ο蟮恼Z言中,“類”是對一組實物的共同特征描述,“對象”是類的實例,同一個類的一些對象具有類所定義的共同特點。面向?qū)ο蟮娜筇攸c是“封裝”、“繼承”和“多態(tài)”。封裝的表現(xiàn)有三,一是它把數(shù)據(jù)成員zǔzhīzà(因為這里被屏蔽,所以用拼音)在一起,形成一個整體;二是它可以隱藏細節(jié),簡化操作,比如,聲明一個JTextField類的對象,你可以實現(xiàn)這個API中所有的功能,但看不到這個類的代碼;你可以直接調(diào)用它的setText()、getText()等方法,而不用考慮它具體是怎么實現(xiàn)的。三是它可以保護數(shù)據(jù),比如,一個類里有privateintage的屬性,產(chǎn)生一個setAge(intageTemp)的方法,在這個方法里對傳入的參數(shù)進行檢驗,如果不符合要求,就不對age賦值。
第三篇:JavaWeb學習總結(jié)
一、基本概念
1.1、WEB開發(fā)的相關知識
WEB,在英語中web即表示網(wǎng)頁的意思,它用于表示Internet主機上供外界訪問的資源。
Internet上供外界訪問的Web資源分為:
1.靜態(tài)web資源(如html 頁面):指web頁面中供人們?yōu)g覽的數(shù)據(jù)始終是不變。
2.動態(tài)web資源:指web頁面中供人們?yōu)g覽的數(shù)據(jù)是由程序產(chǎn)生的,不同時間點訪問web頁面看到的內(nèi)容各不相同。
靜態(tài)web資源開發(fā)技術:Html
常用動態(tài)web資源開發(fā)技術:JSP/Servlet、ASP、PHP等
在Java中,動態(tài)web資源開發(fā)技術統(tǒng)稱為Javaweb。1.2、WEB應用程序
WEB應用程序指供瀏覽器訪問的程序,通常也簡稱為web應用。例如有a.html、b.html?..多個web資源,這多個web資源用于對外提供服務,此時應把這多個web資源放在一個目錄中,以組成一個web應用(或web應用程序)
一個web應用由多個靜態(tài)web資源和動態(tài)web資源組成,如:html、css、js文件,Jsp文件、java程序、支持jar包、配置文件等等。
Web應用開發(fā)好后,若想供外界訪問,需要把web應用所在目錄交給web服務器管理,這個過程稱之為虛似目錄的映射 1.3、WEB發(fā)展史
WEB發(fā)展的兩個階段:靜態(tài)、動態(tài) 1.4、靜態(tài)WEB
*htm、*html,這些是網(wǎng)頁的后綴,如果現(xiàn)在在一個服務器上直接讀取這些內(nèi)容,那么意味著是把這些網(wǎng)頁的內(nèi)容通過網(wǎng)絡服務器展現(xiàn)給用戶。整個靜態(tài)WEB操作的過程圖如下:
在靜態(tài)WEB程序中,客戶端使用WEB瀏覽器(IE、FireFox等)經(jīng)過網(wǎng)絡(Network)連接到服務器上,使用HTTP協(xié)議發(fā)起一個請求(Request),告訴服務器我現(xiàn)在需要得到哪個頁面,所有的請求交給WEB服務器,之后WEB服務器根據(jù)用戶的需要,從文件系統(tǒng)(存放了所有靜態(tài)頁面的磁盤)取出內(nèi)容。之后通過WEB服務器返回給客戶端,客戶端接收到內(nèi)容之后經(jīng)過瀏覽器渲染解析,得到顯示的效果。
靜態(tài)WEB中存在以下幾個缺點:
1、Web頁面中的內(nèi)容無法動態(tài)更新,所有的用戶每時每刻看見的內(nèi)容和最終效果都是一樣的。
為了可以讓靜態(tài)的WEB的顯示更加好看,可以加入了JavaScript以完成一些頁面上的顯示特效,但是這些特效都是在客戶端上借助于瀏覽器展現(xiàn)給用戶的,所以在服務器上本身并沒有任何的變化。
實現(xiàn)靜態(tài)WEB客戶端動態(tài)效果的手段:
? ? JavaScript VBScript
在實際的開發(fā)中JavaScript使用得最多。
2、靜態(tài)WEB無法連接數(shù)據(jù)庫,無法實現(xiàn)和用戶的交互。
使用數(shù)據(jù)庫保存數(shù)據(jù)是現(xiàn)在大多數(shù)系統(tǒng)的選擇,因為數(shù)據(jù)庫中可以方便地管理數(shù)據(jù),增刪改查操作可以使用標準的SQL語句完成。1.5、動態(tài)WEB
所謂的動態(tài)不是指頁面會動,主要的特性的是:“WEB的頁面展示效果因時因人而變”,而且動態(tài)WEB具有交互性,WEB的頁面的內(nèi)容可以動態(tài)更新。整個動態(tài)WEB操作的過程圖如下:
動態(tài)WEB中,程序依然使用客戶端和服務端,客戶端依然使用瀏覽器(IE、FireFox等),通過網(wǎng)絡(Network)連接到服務器上,使用HTTP協(xié)議發(fā)起請求(Request),現(xiàn)在的所有請求都先經(jīng)過一個WEB Server Plugin(服務器插件)來處理,此插件用于區(qū)分是請求的是靜態(tài)資源(*.htm或者是*.htm)還是動態(tài)資源。
如果WEB Server Plugin發(fā)現(xiàn)客戶端請求的是靜態(tài)資源(*.htm或者是*.htm),則將請求直接轉(zhuǎn)交給WEB服務器,之后WEB服務器從文件系統(tǒng)中取出內(nèi)容,發(fā)送回客戶端瀏覽器進行解析執(zhí)行。
如果WEB Server Plugin發(fā)現(xiàn)客戶端請求的是動態(tài)資源(*.jsp、*.asp/*.aspx、*.php),則先將請求轉(zhuǎn)交給WEB Container(WEB容器),在WEB Container中連接數(shù)據(jù)庫,從數(shù)據(jù)庫中取出數(shù)據(jù)等一系列操作后動態(tài)拼湊頁面的展示內(nèi)容,拼湊頁面的展示內(nèi)容后,把所有的展示內(nèi)容交給WEB服務器,之后通過WEB服務器將內(nèi)容發(fā)送回客戶端瀏覽器進行解析執(zhí)行。1.6、動態(tài)WEB應用的實現(xiàn)手段
動態(tài)WEB現(xiàn)在的實現(xiàn)手段非常多,較為常見的有以下幾種:
? ? ? Microsoft ASP、ASP.NET PHP JAVA Servlet/JSP
1、Microsoft ASP、ASP.NET
微軟公司動態(tài)WEB開發(fā)是比較早的,而且最早在國內(nèi)最流行的是ASP。ASP就是在HTML語言之中增加了VB腳本,但是標準的開發(fā)應用應該是使用ASP+COM,但是實際情況來看,在開發(fā)ASP的時候基本上都在一個頁面中寫上成百上千的代碼,頁面代碼極其混亂。
ASP本身有開發(fā)平臺的限制:Windows+IIS+SQL Server/Access,ASP只能運行在Windows操作系統(tǒng)上,ASP現(xiàn)在基本上已經(jīng)淘汰,現(xiàn)在基本上都是使用ASP.NET進行開發(fā),ASP.NET在性能有了很大的改善,而且開發(fā)迅速,但是依然受限于平臺。ASP.NET中主要是使用C#語言。2.PHP
PHP開發(fā)速度很快,功能強大,跨平臺(平臺指的就是運行的操作系統(tǒng)),而且代碼也簡單。3.Servlet/JSP
這是SUN公司(SUN現(xiàn)在已經(jīng)被Oracle公司收購)主推的B/S架構的實現(xiàn)語言,是基于JAVA語言發(fā)展起來的,因為JAVA語言足夠簡單,而且很干凈。
Servlet/JSP技術的性能也是非常高的,不受平臺的限制,各個平臺基本上都可以使用。而且在運行中是使用多線程的處理方式,所以性能非常高。
SUN公司最早推出的WEB技術推出的是Servlet程序,Servlet程序本身使用的時候有一些問題,所有的程序是采用JAVA代碼+HTML的方式編寫的,即,要使用JAVA輸出語句,一行一行地輸出所有的HTML代碼,之后,SUN公司受到了ASP的啟發(fā),發(fā)展出了JSP(Java Server Page),JSP某些代碼的編寫效果與ASP是非常相似的。這樣可以很方便地使一些ASP程序員轉(zhuǎn)向JSP的學習,加大市場的競爭力度。
二、WEB服務器 2.1、WEB服務器簡介
1、Web服務器是指駐留于因特網(wǎng)上某種類型計算機的程序,是可以向發(fā)出請求的瀏覽器提供文檔的程序。當Web瀏覽器(客戶端)連到服務器上并請求文件時,服務器將處理該請求并將文件反饋到該瀏覽器上,附帶的信息會告訴瀏覽器如何查看該文件(即文件類型)。
2、服務器是一種被動程序:只有當Internet上運行在其他計算機中的瀏覽器發(fā)出請求時,服務器才會響應。
2.2、常見的Web服務器介紹
1、WebLogic
WebLogic是美國bea公司出品的一個application server。BEA WebLogic是用于開發(fā)、集成、部署和管理大型分布式Web應用、網(wǎng)絡應用和數(shù)據(jù)庫應用的Java應用服務器。將Java的動態(tài)功能和Java Enterprise標準的安全性引入大型網(wǎng)絡應用的開發(fā)、集成、部署和管理之中。是目前應用最廣泛的Web服務器,支持J2EE規(guī)范,而且不斷的完善以適應新的開發(fā)要求,啟動界面如圖
2、WebSphere
WebSphere Application Server 是一種功能完善、開放的Web應用程序服務器,是IBM公司電子商務計劃的核心部分,它是基于 Java 的應用環(huán)境,用于建立、部署和管理 Internet 和 Intranet Web 應用程序。這一整套產(chǎn)品進行了擴展,以適應 Web應用程序服務器的需要,范圍從簡單到高級直到企業(yè)級。啟動界面如圖:
3、Tomcat
TomcatTomcat是一個實現(xiàn)了JAVA EE標準的最小的WEB服務器,是Apache 軟件基金會的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發(fā)而成。因為Tomcat 技術先進、性能穩(wěn)定,而且開源免費,因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認可,成為目前比較流行的Web 應用服務器。學習JavaWeb開發(fā)一般都使用Tomcat服務器,該服務器支持全部JSP以及Servlet規(guī)范,啟動界面如圖:
4、IIS
Microsoft的Web服務器產(chǎn)品為Internet Information Services(IIS),IIS 是允許在公共Intranet或Internet上發(fā)布信息的Web服務器。ⅡS是目前最流行的Web服務器產(chǎn)品之一,很多著名的網(wǎng)站都是建立在ⅡS的平臺上。IIS提供了一個圖形界面的管理工具,稱為Internet信息服務管理器,可用于監(jiān)視配置和控制Internet服務。
IIS是一種Web服務組件,其中包括Web服務器、FTP服務器、NNTP服務器和SMTP服務器,分別用于網(wǎng)頁瀏覽、文件傳輸、新聞服務和郵件發(fā)送等方面,它使得在網(wǎng)絡(包括互聯(lián)網(wǎng)和局域網(wǎng))上發(fā)布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作為擴展Web服務器功能的編程接口;同時,它還提供一個Internet數(shù)據(jù)庫連接器,可以實現(xiàn)對數(shù)據(jù)庫的查詢和更新。
學習web開發(fā),需要先安裝一臺web服務器,然后再在web服務器中開發(fā)相應的web資源,供用戶使用瀏覽器訪問。
三、搭建JavaWeb應用開發(fā)環(huán)境——Tomcat服務器
3.1、疑問:學習web開發(fā),為什么必須要先裝一個WEB服務器?
在本地計算機上隨便創(chuàng)建一個web頁面,用戶是無法訪問到的,但是如果啟動tomcat服務器,把web頁面放在tomcat服務器中,用戶就可以訪問了。這說明什么問題?
1、不管什么web資源,想被遠程計算機訪問,都必須有一個與之對應的網(wǎng)絡通信程序,當用戶來訪問時,這個網(wǎng)絡通信程序讀取web資源數(shù)據(jù),并把數(shù)據(jù)發(fā)送給來訪者。
2、WEB服務器就是這樣一個程序,它用于完成底層網(wǎng)絡通迅。使用這些服務器,We應用的開發(fā)者只需要關注web資源怎么編寫,而不需要關心資源如何發(fā)送到客戶端手中,從而極大的減輕了開發(fā)者的開發(fā)工作量。3.2、下載和安裝Tomcat服務器
Tomcat官方站點:http://jakarta.apache.org
下載Tomcat安裝程序包:http://tomcat.apache.org/
點擊【Download】跳轉(zhuǎn)到如下圖所示的下載頁面
1.tar.gz文件是Linux操作系統(tǒng)下的安裝版本 2.exe文件是Windows系統(tǒng)下的安裝版本 3.zip文件是Windows系統(tǒng)下的壓縮版本
下載完成后,得到的是一個壓縮包,將壓縮包解壓就可以完成Tomcat服務器的安裝
將壓縮包解壓后,得到的就是如下圖所示的文件夾,這樣就完成了Tomcat服務器的安裝。
3.3、啟動和測試Tomcat服務器
啟動Tomcat服務器
雙擊 bin 目錄下的 startup.bat 文件啟動Tomcat服務器
測試Tomcat服務器
打開瀏覽器,輸入http://localhost:8080/,能顯示如下界面代表安裝成功。
3.4、Tomcat啟動常見問題
導致Tomcat服務器無法正常啟動的原因一般來說就是如下的兩個:
1、JAVA_HOME環(huán)境變量設置問題
要想雙擊bin目錄下的startup.bat文件啟動Tomcat服務器,首先要做的就是在windows中設置JAVA_HOME環(huán)境變量,因為Tomcat服務器的啟動需要用到這個JAVA_HOME環(huán)境變量,如果windows中不存在JAVA_HOME環(huán)境變量,則Tomcat服務器是無法啟動的。
在Window中配置JAVA_HOME變量
操作步驟(win7系統(tǒng)):計算機→右鍵“屬性”→高級系統(tǒng)設置→高級→環(huán)境變量,如下圖所示:
點擊系統(tǒng)變量下面的“【新建】”,彈出一個新建系統(tǒng)變量對話框,首先在變量名寫上JAVA_HOME,顧名思義,JAVA_HOME的含義就是JDK的安裝路徑,然后在變量值寫JDK的安裝路徑,如這里設置的變量值是“D:Program Files(x86)Javajdk1.7.0”,設置好變量值之后,點擊【確定】按鈕,JAVA_HOME環(huán)境變量就設置完成,如下圖所示:系統(tǒng)變量中多了一個“JAVA_HOME”變量。
正常來說,學習Java開發(fā)的第一步就是配置Path環(huán)境變量,比較好的配置方式是先配置JAVA_HOME環(huán)境變量,然后在Path變量中使用“%JAVA_HOME%”引用JAVA_HOME變量的值。
所以這個JAVA_HOME環(huán)境變量在Window中一般都是已經(jīng)配置好了的,如果忘記配置JAVA_HOME環(huán)境變量,那么可以使用上述的方式配置
2、端口占用問題
因為Tomcat服務器啟動時是需要默認是使用8080端口的,如果這個8080端口被別的應用程序占用了,那么Tomcat服務器就無法正常啟動,看到的現(xiàn)象就是“Tomcat服務器啟動界面會打印出異常錯誤信息,然后就自動關閉了”,如下圖所示:
由于這個窗口從啟動到關閉的時間非常短,我們很難通過這個窗口看到Tomcat啟動時的報錯異常信息,因此我們一般只能通過Tomcat服務器的記錄的log(日志)信息去查看Tomcat服務器的運行情況。
在Tomcat服務器的根目錄下有一個logs文件夾,logs文件夾存放Tomcat 的日志文件,打開logs文件夾,可以看到里面的log文件,其中有一個以“catalina.yyyy-MM-dd.log”形式命名的log文件,例如“catalina.2014-05-17.log”日志文件就是記錄Tomcat服務器2014-05-17這一天的運行情況。
打開catalina.2014-05-17.log文件,看看里面的日志記錄信息,日志信息里面清楚的記錄了Tomcat服務器的運行情況,如果因為8080端口被占用而無法正常啟動,就會記錄如上圖所示的異常信息,通過查看異常信息,我們就可知道Tomcat服務器為什么不能夠正常啟動了!
總結(jié):當Tomcat服務器無法正常啟動時,首先檢查是否配置了JAVA_HOME環(huán)境變量,然后再檢查Tomcat服務器啟動時的端口是否被別的應用程序占用了。
第四篇:javaweb課程設計
課程設計:基于Java Web的討論區(qū)BBS系統(tǒng)的設計與實現(xiàn)
本系統(tǒng)要求實現(xiàn)以下主要功能:
(1)登錄:提供用戶登錄系統(tǒng)的功能,需要輸入用戶名和密碼
(2)注冊:提供用戶注冊的功能,需要輸入用戶名、密碼、密碼確認、Email、QQ
(3)修改注冊信息:提供用戶修改注冊信息的功能,可以修改密碼、Email、QQ
(4)瀏覽討論區(qū):用戶登錄后就可以瀏覽系統(tǒng)中已存在的討論區(qū),用戶可以查看某討論
區(qū)的詳細信息,也可以進入該討論區(qū)瀏覽已發(fā)表的帖子,以及回帖
(5)創(chuàng)建討論區(qū):用戶可以創(chuàng)建討論區(qū),每個討論區(qū)包含一個名稱和順序號,每個討論
區(qū)的名稱在系統(tǒng)中是唯一的,順序號表示討論區(qū)在列表中的排序
(6)修改討論區(qū):提供討論區(qū)名稱和順序號的修改功能
(7)刪除討論區(qū):提供討論區(qū)刪除的功能,方便管理員進行討論區(qū)管理
(8)瀏覽帖子:用戶進入一個討論區(qū)后,可以看到帖子列表,包含帖子主題、作者、創(chuàng)
建時間、回復次數(shù),點擊一個帖子,可以查看該帖子的內(nèi)容和回帖
(9)創(chuàng)建帖子:用戶進入一個討論區(qū)后,可以選擇創(chuàng)建一個新帖子,需要輸入帖子標題
和內(nèi)容
(10)修改帖子:提供給管理員使用,修改帖子標題和內(nèi)容
(11)刪除帖子:提供給管理員使用,方便管理員進行帖子整理
(12)回復帖子:用戶在瀏覽帖子信息的時候,可以進行回復
第五篇:javaweb學習心得
學習心得
在寫心得之前總結(jié)下中級部分學習的內(nèi)容,我們的中級部分主要學習了html,css,javacript,xml,dtd/scheam,以及java ee 中的jsp,servlet,過濾器,監(jiān)聽器,JSTL,EL,jQuery,Ajax。
下面就各個模塊進行總結(jié):在學習html時,我是對這個沒太在意的,因為里面全部是標簽,沒有需要理解的內(nèi)容,全部是屬于識記的,所以在學習時相對輕松,對于html常用的標簽都是非常清楚的form中的十一種類型,常用的有text,password,hidden,submit,button,radio,checkbox,等其他的標簽如div,table,span,select都是重要的標簽.Css的學習:雖然說在標簽中也可以定義樣式,但是這么做看起來不是那么明智,我在學CSS時還是比較努力的,所有的樣式效果都測試過,并且寫了相應的案例,只是過了不到3個月就忘了一大半,很多時候都是查文檔才能寫出來的,雖然CSS對于我們來說不必要非常精通,但是我覺得掌握的東西越多,以后的工作就越輕松,所以在中級結(jié)束后也會去看看前面的筆記和案例。
Javascript:js 我認為是最重要的,甚至于超過servlet,jsp,在上課期間,講的內(nèi)容還是比較少的,就javascript中創(chuàng)建對象來說吧,應該只講過3中方法,雖然在一般的情況下是用不上的,但是我覺得還是有必要學習的,這樣有助于看懂別人寫的框架,在javascript這部分學習中講的最多的還是dom操作,不過我覺得用dom操作太繁瑣了,寫的代碼太多,而且效率看起來也不高,后面就是講的事件,事件也算是簡單的,只是對觸發(fā)的事件進行相應的響應。除了這些就是javascript流程控制,對象一些基本語法,這些和java類似,所以在上課時沒有講得太多。
Xml: Markup Language可擴展標記語言。它是由SGML(Standard Gerneralized Markup language)發(fā)展而來的,允許開發(fā)者自定標簽,可以將標簽和內(nèi)容有效的分離。在XML技術里,可以編寫一個文檔來約束XML文檔的書寫規(guī)范,稱之為XML約束。本文主要介紹DTD與Schema兩種約束,在這里學習了dtd,scheama,定義XML約束,這部分的學習是我感覺最累的一部分,DTD還算好,SCheama里面的內(nèi)容,現(xiàn)在都忘了,沒有任何記憶,只知道在XML約束中有著兩中方式,還好這些在剛開始工作時是用不上的,因此我也沒有用很多時間來學習。
Servlet:我覺得是比較簡單的,可能是因為它是java代碼,容易理解。首先講的是開發(fā)環(huán)境的配置,安裝tomcat,了解tomcat下的目錄,以及web工程下的目錄。后來是講了servlet的訪問方式,post和get的區(qū)別,處理中文亂碼是servlet中一個重要的知識點,幾乎每個項目都會遇到這個問題。主要亂碼有get,post亂碼,是通過設置request或者response的編碼方式來實現(xiàn)的。Servlet間的跳轉(zhuǎn)方式有重定向和轉(zhuǎn)發(fā),對于重定向和轉(zhuǎn)發(fā)的區(qū)別,現(xiàn)在理解的很透徹了,重定向是不能獲取request中參數(shù),是客戶端的兩次請求,而轉(zhuǎn)發(fā)是服務器內(nèi)部跳轉(zhuǎn),不過,兩種在設置過濾器的情況下,都要通過過濾器才能跳轉(zhuǎn)。Servlet的生命周期是筆試的必考題,其實這是很簡單的,只需要理解,沒必要死記硬背的,session算是重要的知識點,很多數(shù)據(jù)都是存儲在內(nèi)存中,如購物車,用戶信息等,還可以對session設置生存時間。說到session就必須說說四種會話跟蹤技術,cookie,URL重寫,表單域隱藏和session。
JSP:JSP實際上和servlet是一樣的,只不過兩者側(cè)重點不同,JSP的內(nèi)置對象和作用域大致是一樣的,JSP中還有動作,常用的有操作JavaBean的動作,頁面跳轉(zhuǎn)的動作,以及包含的動作。這里重點提到兩種包含的區(qū)別。在JSP還講過jstl和EL表達式,都是基礎的應用,不過寫自定義的標簽還是要有一定的java基礎的,我開始不太理解標簽的解析過程,后來看了幾個例子,發(fā)現(xiàn)自定義的已不是那么難。
jQuery:jQuery可以說是中級部分學的最好的,主要是它方便了,特別是選擇器,而且避免了一些瀏覽器的差異,所以在學習jQuery后,就再也不想用javascript來獲取元素了。不僅如此,jQuery中封裝的Ajax操作也是非常簡單,不需要自己封裝一個類,$.get和$.post 能夠省去很多麻煩,jQuery的監(jiān)聽事件也是很簡單,不需要在標簽中添加對應事件,可以動態(tài)的綁定事件。還有就是dom操作更是方便。我在學習完Ajax,json后就發(fā)現(xiàn),即使是沒有JSP,也能做出一個動態(tài)頁面出來,只是會存在效率問題。
總結(jié):雖然說這上面的知識大部分都掌握了,但是能否靈活運用才是重點,所以在今后的學習中多思考問題是否有多種解決方法。