第一篇:java WEB 學習路線 v0.1
1.J2SE 和Eclipse工具的使用
? 集合類
* List / Set / Map / Iterator
? Java反射機制
? 正則表達
2.數(shù)據(jù)庫 Mysql
? 什么是數(shù)據(jù)庫
? 基本語法: 建表刪表、Mysql 字段類型、單表增刪改查
? 條件控制語法:where / and / or / desc
? Mysql 內(nèi)置函數(shù)
3.JDBC基礎(chǔ) 即:java連接數(shù)據(jù)庫
JDBC應(yīng)用接口(API)開發(fā)數(shù)據(jù)庫應(yīng)用程序、實現(xiàn)將面向?qū)ο蟮脑O(shè)計映射到關(guān)系型數(shù)據(jù)庫中、設(shè)計多層的數(shù)據(jù)庫應(yīng)用程序、數(shù)據(jù)庫連接池技術(shù)。
4.HTML_CSS_Javascript(靜態(tài)頁面基礎(chǔ))
* HTML_CSS_Javascript基礎(chǔ)語法
5.Servlet and JSP
* Tomcat基礎(chǔ)
* Servlet基礎(chǔ) Web.xml配置基礎(chǔ)
* Cookie
* Session
* Application
* JSP語法基礎(chǔ)
6.Myeclipse 7.1的使用
7.學生信息管理系統(tǒng)
項目實戰(zhàn)
8.JSTL
Java 標準標簽庫
9.分層思想 以及MVC
10.BBS網(wǎng)站論壇
項目實戰(zhàn)
11.XML + AJAX
? XML語法規(guī)范
? DOM和SAX解析方式
? Dom4j JDOM、JAXP解析實踐
? AJAX 簡單異步請求
12.SSH
即三大主流框架spring、struts、hibernate
13.UML 統(tǒng)一建模語言 Rational Rose
14.EJB 3.0
第二篇:javaWeb學習[小編推薦]
JavaWeb學習筆記___d9.txt
2010-12-14 22:51
Session(會話)
Session對象
1、存在于服務(wù)器端
2、依賴于線程
3、Session的生命周期,跟一次瀏覽器窗口有關(guān),只要窗口不關(guān)閉,Session便存在,所以稱會話。
Session1、技術(shù)內(nèi)核使用cookie:
session參在與服務(wù)器端
服務(wù)器端為多個session創(chuàng)建不同的session id
把session id以cookie的形式送入到客戶端
request.getSession()內(nèi)涵是:在cookie中查找
session id,若cookie中存在sessionId,則根據(jù)
sessionId,將sessionID對應(yīng)的session找到,并返回;若cookie中并不存在sessionID,服務(wù)器端創(chuàng)建session,并將sessionID寫入到Cookie中。
2、當關(guān)掉對話窗口(結(jié)束一次會話)時,session并沒有被刪除,只是關(guān)掉對話窗口時,cookie被清空
無法再獲得sessionID,無法找到對應(yīng)的session,但是session還是存在于服務(wù)器端。
若想真正刪除session,需要調(diào)用HttpSession中的invalidate()方法,使得session失效。
3、服務(wù)器為了考慮效率,不會讓無用的session存在很久,Http協(xié)議是無連接協(xié)議,服務(wù)器端無法判斷客戶端是否關(guān)閉“會話”,所以服務(wù)器設(shè)置了失效時間。若用戶在了段時間內(nèi),不操作session,則系統(tǒng)刪除session。
我們可以設(shè)置此時間setMaxInactiveInterval(),但不推薦用戶自行設(shè)置。
4、session技術(shù)在很大程度上,依賴于Cookie,若Cookie被禁用,或瀏覽器不支持Cookie,則session就無法使用。
5、為了解決第四點所引申的session不可用的問題。我們使用URL重寫,將sessionID通過地址欄提交參數(shù),發(fā)給服務(wù)器端。
使用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()
獲得、設(shè)置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對象封裝了客戶端的請求和相關(guān)信息。
包括:
1、cookie2、封裝http協(xié)議的報頭(請求方式、請求服務(wù)器的端口、請求服務(wù)器ip地址、編碼方式、請求的項目用的名字、請求消息的長度、瀏覽器的信息、客戶端信息??)
3、表單數(shù)據(jù)
HttpServletResponse:接口(響應(yīng))
用它跟客戶端聯(lián)系,并且向客戶端發(fā)送數(shù)據(jù)
1、getCharacterEncoding()得到向客戶端發(fā)送數(shù)據(jù)的默認編碼方式。
2、getContentType()得到向客戶端發(fā)送數(shù)據(jù)的默認類型(html或者jpeg等等)。
3、getOutputStream()得到與客戶端建立的輸出字節(jié)流,傳輸二進制。
4、getWriter()得到與客戶建立的輸出字符流,傳輸文本文件。
5、setCharacterEncoding()設(shè)置的是要發(fā)送給客戶端的數(shù)據(jù)的編碼方式。
6、setContentType(String type)設(shè)置并告知客戶端,執(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)設(shè)置Cookie的生命服周期,當參數(shù)是負數(shù)時:窗口(會話)被關(guān)掉時,清空Cookie3、getName()獲得Cookie中的鍵
4、getValue()獲得Cookie中的健值
HttpSession:接口
1、getAttribute(String name)、setAttribute(String name)
2、getId()獲得session的唯一標識id3、getMaxInactiveInterval()、setMaxInactiveInterval()得到和設(shè)置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課程設(shè)計
課程設(shè)計:基于Java Web的討論區(qū)BBS系統(tǒng)的設(shè)計與實現(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時還是比較努力的,所有的樣式效果都測試過,并且寫了相應(yīng)的案例,只是過了不到3個月就忘了一大半,很多時候都是查文檔才能寫出來的,雖然CSS對于我們來說不必要非常精通,但是我覺得掌握的東西越多,以后的工作就越輕松,所以在中級結(jié)束后也會去看看前面的筆記和案例。
Javascript:js 我認為是最重要的,甚至于超過servlet,jsp,在上課期間,講的內(nèi)容還是比較少的,就javascript中創(chuàng)建對象來說吧,應(yīng)該只講過3中方法,雖然在一般的情況下是用不上的,但是我覺得還是有必要學習的,這樣有助于看懂別人寫的框架,在javascript這部分學習中講的最多的還是dom操作,不過我覺得用dom操作太繁瑣了,寫的代碼太多,而且效率看起來也不高,后面就是講的事件,事件也算是簡單的,只是對觸發(fā)的事件進行相應(yīng)的響應(yīng)。除了這些就是javascript流程控制,對象一些基本語法,這些和java類似,所以在上課時沒有講得太多。
Xml: Markup Language可擴展標記語言。它是由SGML(Standard Gerneralized Markup language)發(fā)展而來的,允許開發(fā)者自定標簽,可以將標簽和內(nèi)容有效的分離。在XML技術(shù)里,可以編寫一個文檔來約束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中一個重要的知識點,幾乎每個項目都會遇到這個問題。主要亂碼有g(shù)et,post亂碼,是通過設(shè)置request或者response的編碼方式來實現(xiàn)的。Servlet間的跳轉(zhuǎn)方式有重定向和轉(zhuǎn)發(fā),對于重定向和轉(zhuǎn)發(fā)的區(qū)別,現(xiàn)在理解的很透徹了,重定向是不能獲取request中參數(shù),是客戶端的兩次請求,而轉(zhuǎn)發(fā)是服務(wù)器內(nèi)部跳轉(zhuǎn),不過,兩種在設(shè)置過濾器的情況下,都要通過過濾器才能跳轉(zhuǎn)。Servlet的生命周期是筆試的必考題,其實這是很簡單的,只需要理解,沒必要死記硬背的,session算是重要的知識點,很多數(shù)據(jù)都是存儲在內(nèi)存中,如購物車,用戶信息等,還可以對session設(shè)置生存時間。說到session就必須說說四種會話跟蹤技術(shù),cookie,URL重寫,表單域隱藏和session。
JSP:JSP實際上和servlet是一樣的,只不過兩者側(cè)重點不同,JSP的內(nèi)置對象和作用域大致是一樣的,JSP中還有動作,常用的有操作JavaBean的動作,頁面跳轉(zhuǎn)的動作,以及包含的動作。這里重點提到兩種包含的區(qū)別。在JSP還講過jstl和EL表達式,都是基礎(chǔ)的應(yīng)用,不過寫自定義的標簽還是要有一定的java基礎(chǔ)的,我開始不太理解標簽的解析過程,后來看了幾個例子,發(fā)現(xiàn)自定義的已不是那么難。
jQuery:jQuery可以說是中級部分學的最好的,主要是它方便了,特別是選擇器,而且避免了一些瀏覽器的差異,所以在學習jQuery后,就再也不想用javascript來獲取元素了。不僅如此,jQuery中封裝的Ajax操作也是非常簡單,不需要自己封裝一個類,$.get和$.post 能夠省去很多麻煩,jQuery的監(jiān)聽事件也是很簡單,不需要在標簽中添加對應(yīng)事件,可以動態(tài)的綁定事件。還有就是dom操作更是方便。我在學習完Ajax,json后就發(fā)現(xiàn),即使是沒有JSP,也能做出一個動態(tài)頁面出來,只是會存在效率問題。
總結(jié):雖然說這上面的知識大部分都掌握了,但是能否靈活運用才是重點,所以在今后的學習中多思考問題是否有多種解決方法。
第五篇:Java學習路線
怎么學習Java,這是很多新手經(jīng)常會問我的問題,現(xiàn)在我簡單描述下一個Java初學者到就業(yè)要學到的一些東西:
首先要明白Java體系設(shè)計到得三個方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 Platform Standard Edition,我們經(jīng)常說到的JDK,就主要指的這個,它是三者的基礎(chǔ),屬于桌面級應(yīng)用開發(fā),這部分如果學得好很容易拓展J2EE和J2ME。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式Java,如手機,PDA等等。J2EE,Java 2 Platform,Enterprise Edition,就是所謂的企業(yè)級Java,適合企業(yè)的大型應(yīng)用開發(fā)。
J2SE:
新手最初學習的時候先要從J2SE開始學起,所包含的內(nèi)容主要分為:面向?qū)ο蟾拍畹睦斫狻ava基本語法的學習,Java桌面圖形界面應(yīng)用程序的開發(fā),掌握常用的Java API等(關(guān)鍵是要學會怎樣查閱)。
重點:Java基本語法(循環(huán)結(jié)構(gòu),數(shù)據(jù)類型,數(shù)組,運算符等)、Swing,awt,事件機制、文件輸入輸出流處理等
難點:面向?qū)ο笏枷氲睦斫猓ń涌?、類等)、線程、socket網(wǎng)絡(luò)編程等
視頻教程推薦:孫鑫的Java基礎(chǔ)視頻教程、張孝祥的Java基礎(chǔ)視頻教程,講的都很細,而且這兩位老師在教學方面都有很好的經(jīng)驗。
J2EE:
在學習了J2SE之后,你可以嘗試著慢慢過渡到J2EE,當然,學習J2EE海需要很多非JAVA技術(shù)的支撐,比如數(shù)據(jù)庫技術(shù),網(wǎng)頁編程技術(shù)等等,待會我會詳細介紹這兩方面的內(nèi)容。J2EE有三個必學的框架,如果你說你學了J2EE,但又不會這三個框架的話,那會讓人笑掉大牙,這三個框架分別是Struts、Spring和Hibernate,雖然這三個框架應(yīng)用很廣,但不代表這三個框架就代表了J2EE,J2EE還有很多其他的東西,比如EJB,作為一款重量級(此重量級不是指重量級選手那個意思,此重量級非彼重量級)框架,雖然這個應(yīng)用慢慢的再被其他框架所取代,但EJB3.0的出現(xiàn)也給它帶回一些生機,作為一個分布式應(yīng)用的框架,也是大家要去學習和了解的知識。
當然,剛才說到J2EE包含的范圍很廣,即使我把我所了解的所有技術(shù)說出來,也并不能代表J2EE,這是一個很深很廣的學問,需要大家以后再工作的時候慢慢去發(fā)現(xiàn)了。我所了解的還包括:
JDBC:Java數(shù)據(jù)庫連接對象,基礎(chǔ)中的基礎(chǔ),Hibernate也只是對它的封裝而已 JNDI: Java 命名與目錄接口,J2EE重要規(guī)范之一 EJBS: 上面已經(jīng)提到過了
RMI: 提供遠程調(diào)用方法的支持,主要用于程序分布式開發(fā) JMS: Java消息服務(wù),中間件技術(shù)
JAVA IDL: 提供J2EE平臺與CORBA交互能力和互聯(lián)能力的技術(shù) JTS: 組件事務(wù)監(jiān)視器 JTA: 事務(wù)劃分的一個技術(shù) JAVAMAIL: Java中的郵件技術(shù) JAF: Java啟動框架,沒研究過 Log4j,一款日志處理的框架應(yīng)用
Junit:單元測試的好幫手
freemarker、velocity:兩款不錯的模板引擎
與Flash的交互Flex:目前很多的SNS應(yīng)用就是使用到了這個技術(shù)
Web services:想知道我們論壇天氣預報的效果是怎么做的嗎?請關(guān)注這個技術(shù) SOA:面向服務(wù)架構(gòu),未來技術(shù)發(fā)展的趨勢之一 ……
不過前面介紹到得這些都不是J2EE的基礎(chǔ),是屬于框架應(yīng)用級別的.要真正把上面說到的知識掌握好,還是的學習J2EE最核心的東西:JDBC、JSP、servlet和JavaBean,后面三個也是學習SSH的基礎(chǔ)(StrutsSpringHibernate的簡稱).鑒于J2EE的內(nèi)容太過復雜,建議大家最初只學習: JSP, servlet和JavaBean,等這個基礎(chǔ)掌握好再把SSH學習了,再對其他J2EE技術(shù)有個大致的了解就可以出去找工作了。當然,找工作的前提除了把Java學習好,還會有一些其他的技術(shù)也是必須要掌握的。數(shù)據(jù)庫技術(shù):
數(shù)據(jù)庫幾乎是程序中不可或缺的一部分,在整個軟件開發(fā)中更是占據(jù)了重要作用.數(shù)據(jù)庫在整個軟件中扮演的是地基的角色,你要修房子,就要先打好地基,你要做軟件,就要先設(shè)計好的數(shù)據(jù)庫.目前數(shù)據(jù)庫幾乎都是關(guān)系型數(shù)據(jù)庫,代表的有: SQL Server,目前最新的好像是2008,我不是很喜歡追趕時髦,用的還是2005,不過也很不錯了,在此之前還有2000.MySQL,最知名的開源數(shù)據(jù)庫之一,我很喜歡它的小巧耐用,學過SQL SERVER數(shù)據(jù)庫再學它,無師自通,易如反掌.ORACLE.甲骨文公司的產(chǎn)品,大型數(shù)據(jù)庫,正版的一般公司買不起.只有看看了,不過現(xiàn)在Java開發(fā)60%都是會使用到這個數(shù)據(jù)庫,再加上現(xiàn)在甲骨文已經(jīng)把sun公司收購了,JAVA和ORACLE得關(guān)系更加曖昧,各位得多花些時間在這上面了.除了這些,你還應(yīng)該了解一些桌面應(yīng)用軟件開發(fā)用到的數(shù)據(jù)庫,比如說sqlite。你在制作安裝程序的時候可以把這個數(shù)據(jù)庫打包進你的安裝程序。
網(wǎng)頁編程基礎(chǔ):
網(wǎng)頁編程基礎(chǔ)要學的內(nèi)容也比較多,但主要集中在以下這三個技術(shù)之上,大家每天看的各種樣式的網(wǎng)頁都是它們呈現(xiàn)的: HTML:超文本標記語言 CSS:層疊樣式表
Javascript:瀏覽器客戶端腳本語言
現(xiàn)在更是流行各種JavaScript庫,比如:Jquery、ExtJs等,你要是會其中的某一個庫的使用,找工作so easy。
J2ME:
如果你在學習了以上技術(shù)還不過癮,可以再學習手機程序的開發(fā),就我個人看來,開發(fā)手機程序技術(shù)其實蠻簡單的,難點在于優(yōu)化,比如怎么讓你寫的程序盡量的節(jié)約手機資源,“代碼誠可貴,手機價更高“,所以不得不比PC機多考慮很多成本和實用性問題。J2ME的學習的話,切忌不要單純的再模擬器上測試,一定要找真機測試,真機和模擬器的效果之間差別是很大的。更多手機開發(fā)技術(shù),有興趣的朋友可以和我一起探討。
開發(fā)工具:
開發(fā)工具的選擇主要還是看大家的習慣,我個人比較喜歡使用eclispe,功能很強大,也很好拓展其他的功能。當讓初學你也可以選擇JCreator,或者最好就直接用記事本。等你熟悉了Java代碼之后,就可以使用JBuilder、eclispe或者netbeans這一類的工具了。
先說到這里先,以后大家一起完善這個帖子。盡量再給大家整理一些學習的資源在這里。也歡迎大家一起整理我文章中提到的一些技術(shù)資源和開發(fā)工具。最后,再和大家分享一句話:生命欣欣向榮,唯奮斗不息。也和大家分享一幅Java學習路線圖: