1. 簡單粗暴,詳細得不要不要的 JavaWeb快速入門
1. 實驗環境准備
(假設你已經裝好了jdk,如果不會安裝jdk,請參考這篇文章)
1.1 安裝一個eclipse或者MyEclipse(本文以eclipse為例),其實所謂的安裝就是網上去下載一個eclipse,然後解壓一下就好了。
1.2安裝tomcat,網上下載一個,然後解壓一下。我這次使用的tomcat容器配的是8080埠。
1.3 將tomcat配置到eclipse中。具體步驟為:Window -- Preferences -- Server -- Runtime Environment -- Add 將tomcat解壓後的路徑配置上去就行了。
本文假設讀者已經對tomcat,eclipse有一定的了解。
2. 新建web項目
首先,一言不合就打開eclipse
Paste_Image.png
我們新建一個項目,File -- new -- Dynamic Web Project。
項目名稱是web,點擊Next
Paste_Image.png
Paste_Image.png
build\classes是默認的編譯目錄,還是點擊Next
Paste_Image.png
好的,最後點擊Finish,一個web項目就建立好了。
目錄結構
Paste_Image.png
2.啥叫JavaWeb項目,它能幹嘛?
JavaWeb項目就是一個應用程序,你不要以為它有多麼神秘。你每天打開的QQ就一個應用程序,你在手機上打開的微信,網路地圖等等,這些都是應用程序。
不同的是,QQ是一個本地客戶端程序,它需要你在自己的電腦上安裝一個客戶端,然後你打開QQ,可以登錄,聊天。
QQ肯定也分客戶端和服務端,我們電腦上裝的就是客戶端,你要知道的一點是,我們發送消息,發送到哪裡去了呢?
沒錯,肯定是發送到QQ的伺服器上了,那裡保存著我們的所有數據。
想想也不可能在本地,因為我們在電腦上發送的消息,在手機QQ上不是也能看到嗎?這就說明,肯定是上傳到它的伺服器然後保存下來了。
而Web項目是什麼呢?
它也是一個應用程序,只不過它的客戶端是運行在瀏覽器上的。
我們打開瀏覽器,訪問一個地址,比如 http://www.jianshu.com/
這個就是我們的訪問路徑,我們通過這個URL向簡書的伺服器提交請求,然後伺服器進行處理,給你回應。
接下來,我們就看到出來一個網頁。
我們在這個網頁上可以寫文章,點贊,收藏,等等。
我們的每一步操作,其實都和伺服器做了一個交互。
比如一個登錄功能,當我們滑鼠點擊那個登錄按鈕,瀏覽器就向伺服器提交了一個請求,伺服器進行處理,然後操作資料庫。最終,它會得出一個結果,就是說,到底能不能讓你登錄,總會有個說法。
如果你密碼寫錯了,它可能就會得出一個用戶名或密碼錯誤的結論。然後,這個信息會從伺服器返回到前台,前台就是瀏覽器。
所謂的前台就是你的瀏覽器,沒什麼神秘的。
前台接受到後台傳過來的信息後,進行一些處理,然後給你個提示,比如,告訴你用戶名或密碼錯誤。
這就是一個完整的交互過程。
現在隨著網速越來越好,瀏覽器的性能越來越強大,我想web肯定是未來的大趨勢。畢竟,誰都不希望在電腦上安裝一大堆客戶端吧。
只用一個瀏覽器多好。
有了web,我只需要有一個瀏覽器,然後就能通過互聯網獲取我想要的資源了。這樣不是很美妙嗎?
近幾年H5非常流行,尤其是移動端,因為手機瀏覽器基本上都支持css3。一樣的道理,我們肯定也不希望在手機上安裝一大堆應用,卡都卡死了,如果能直接訪問一個網頁,就能獲得我想要的服務就好了。
而且現在WIFI也普遍了,如果以後流量能沒有限制,那麼APP的熱度很可能會逐漸被web取代。
當然,現在是不太可能的,畢竟訪問網頁要流量啊,而我在手機上安裝了APP,就好像電腦的QQ一樣,大部分資源文件就在我本地,我不需要每次都去聯網下載。比如圖片,app就沒事,因為就在本地,可是如果用web,我每次訪問那個網頁,就需要把圖片重新下載一遍。這樣不是很浪費流量嗎?
3. 手工搭建web項目
現在,為了說明伺服器和web項目的概念,我們先不用eclipse,來手工搭建一個web項目。
伺服器,正常情況下就是一台配置高一點的電腦,除非是那種大型的專用伺服器。
一般來說,所謂的伺服器,就是電腦。
比如我現在有一台電腦,給他裝了一個linux系統或者windos系統,然後我說,好了,從今以後,這就是伺服器了。現在伺服器一般都是用linux系統的。
那麼tomcat又是什麼?
tomcat其實也是一個應用程序,你網上下載的tomcat往往是一個壓縮包,然後我們解壓以後就相當於安裝好了。
可以這么理解:
伺服器就是一台電腦,而tomcat是一個容器,專門存放web項目的容器。
以下我都將tomcat稱為tomcat容器。
我們看到在tomcat容器根目錄下,有一個webapps文件夾
裡面是這樣的:
Paste_Image.png
好的,現在我要發布一個項目了,我只需要把一個已經做好的web項目往裡面一丟就行了。
除了webapps,我們還發現一個bin目錄。一般來說,可執行的文件都放在bin目錄下。
Paste_Image.png
打開bin,找到一個startup.bat文件。這就是啟動tomcat的東西,雙擊它,tomcat就被啟動了。
然後,瀏覽器可以訪問tomcat裡面的項目。
現在我們來手工搭建一個web項目,首先,在webapps目錄下新建一個文件夾,是的,就是文件夾,不管你項目是什麼,肯定還是放在文件夾裡面的。
Paste_Image.png
項目名稱就叫做webapp。
打開webapp,根據web項目的規范,我們需要有一個WEB-INF文件夾。
Paste_Image.png
然後,在WEB-INF文件夾裡面,必須要有一個web.xml文件。
xml文件,就是一個描述性的文件,我現在的觀點如下:
XML = JavaBean = Json = HashMap
它無非就是描述一些東西,保存一些數據而已。
好的,我們在裡面新建一個web.xml。這個文件非常重要,正因為它的存在,tomcat容器才會知道這個文件夾裡面竟然是一個web項目。
否則,tomcat容器是不知道這個web項目的,它只會將myapp文件夾看做是一個文件夾而已。
Paste_Image.png
我們用記事本打開web.xml,將以下代碼拷貝進去。
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<display-name>web</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>表示這是一個1.0版本的XML文件,編碼為UTF-8。
<web-app></web-app>就是這個XML文件的一個根節點,就是告訴你,我這個xml文件裡面,有一個東西叫做web-app。
XML的一個作用就是配置文件,web.xml本身就是一個配置文件。在web項目中,我們應用xml最多的也就是配置一些參數。
配置參數,就是給屬性賦值嘛,沒什麼神秘的。
包括我們學習JavaSE,歸根到底,一直在做的一件事就是new對象,然後調用方法,調用方法的目的一方面是做一些事情,另一方面不還是給屬性賦值嘛。
你可以把web.xml看做是一個java類,類名叫做 webApp。它裡面有兩個屬性,分別是display-name和welcome-file-list。
display-name是發布名稱,也就是項目的名字。
welcome-file-list 是歡迎頁面,就是說,當你在瀏覽器直接訪問這個myapp項目,默認跳轉的頁面。
想像一下,應該會變得非常好理解。
2. java web開發如何學習
作者:動力節點
鏈接:https://www.hu.com/question
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
首先推薦一個專欄和文章
JavaWeb學習總結(一)--JavaWeb開發入門 - 孤傲蒼狼 - 博客園
此文詳細介紹了javaweb的總結和入門,讀之大有裨益。
Java教程視頻庫--知乎專欄
此專欄,每日會更新java相關的知識技術,以及干貨資源
下面,詳細說說,如何學習web技術
1.html,css,javascript
先學習一些前端的基本知識,如果打算做後端開發的話,這部分快速看下。
2.jquery,vue,bootstrap
再進階學習一些前端框架的知識,同樣如果是打算做後端開發的話,這部分快速看下。
3.mysql等資料庫
學習一些資料庫方面的內容,資料庫有很多種,可以先學mysql,網上教程多,把一個學會之後再學另一個會容易很多
4.學習jdbc,servlet,filter,listener,tomcat,ajax等相關知識
這部分知識相對比較重要,如果學好了,再學習後面框架的時候會容易很多。
5.框架部分,spring mvc,mybatis,spring,spring boot等
這部分知識比較重要,企業中大部分都會直接使用這些框架來開發
6.bbo,spring cloud,NGINX,redis,hbase,mq
如果是要做並發量較大的項目,還需要學習這些相關知識。
另外給你奉上學習路線圖,其實說到系統,路線圖是最系統的了。
web前端
可以開發基本的網頁,並且可以看懂別人編寫的HTML頁面。詳細講解了什麼是css ,層疊樣式表。大量前端小案例、JavaScript事件處理、JavaScript對象、繼承、JSON等知識點,學到這便開啟WEB前端之路
3. 關於java web(我是初學者)
jsp與servlet不沖突,最好的方式是兩者可以結合使用。
jsp用於頁面展示,主要包含一些html代碼和jsp的頁面腳本;
servlet用於處理一些邏輯,比如if判斷和後台方法的調用,把計算好的結果set到request或session會話中,jsp頁面就可以取到結果了。
先把java基礎打好,再學jsp和servlet,J2EE范圍很廣,先從jsp、servlet學起。
4. JAVA WEB初學者!!!
根據你的圖片看的路徑login.jsp是在web-inf下面的。而index.jsp是在webRoot下的,webRoot是根路徑,可以直接/index.jsp訪問,而login.jsp則需要寫到具體的/WEB-INF/login.jsp下面。
5. JAVA WEB開發 初學者!
先跟你說幾個事情,後期好處理你多個問題。
1.src是源文件夾,這里你可以創建N個源文件夾,都是未來要編譯的,你也可以創建一個源文件夾叫conf,把配置文件都放這里,但是前提struts1不可以(一會說為什麼),也就是源文件夾是一類,等著編譯的,那麼編譯到哪呢? 就是下面的
2.WebRoot\WEB-INF\classes有這個文件夾,編譯的東西就在這,WEB-INF下這里只對程序員可見,對請求者也就是客戶端不可見(默認就是classes和lib),所以有些項目為了不讓用戶直接訪問JSP,就將JSP放這下面,用戶只能請求控制層(以後我說C層),然後返回相應頁面,當然,有的項目還有歡迎頁,在web.xml里配置的,下面說它
3.web.xml,這個是Web項目中自帶的,為什麼自帶?因為一個web項目在被部署(就是載入到WEB容器里,比如tomcat,jboss等)後,當啟動web容器時,web.xml裡面就會有幾個標簽被web容易所載入讀取。並且這里有很多標簽,載入也是有順序的,會一個一個掃描,你剛學,什麼順序自己以後研究。
說第一個問題,首先我要說現在很少用Struts1,也就是教學用用,畢竟教學更新慢,至少現在都用struts2(以後簡稱S1,S2)。那個目錄之所以一定要在那,是因為s1源碼默認去那個路徑找配置文件,如果你以後會s2,並且集成spring,你就知道配置文件路徑可更改。
說第二個問題,這里WebRoot文件夾名字不是必須的,但是從它開始往下就是未來要發布出去的東西,就是所謂的前台展示,在代碼中只要有關路徑的地方以/開頭,都是說從它往下開始,這樣配置有一點好,就是未來其他路徑變了,請求也不用變,因為是從所謂的相對中的絕對路徑請求。
第三個問題我想不用過多解釋,web.xml是屬於web項目,並不屬於某個技術,struts1的那個配置文件就屬於s1框架的,s2的就叫struts.xml,記得框架源碼都有一個默認載入的文件名和路徑,你剛學就那麼寫就行,以後懂了就隨意更改。
最後說下為什麼有的把JSP放到不讓直接訪問,必須先走C層呢(s1和s2框架就是MVC框架),因為有好多頁面要判斷用戶是否登錄,如果沒登錄是不能直接訪問的,必須要先登錄,這樣從C走,我就可以判斷代碼,要是直接訪問頁面,還得在頁面里寫小腳本判斷。 通常先走C是對的,域名直接映射成C的請求。再有不懂追問,呵呵
6. JavaWeb學習路線
JavaWeb核心框架
持久層框架:Hibernate、iBATIS
表現層框架:Struts1、Struts2
業務層框架:Spring
java學習路線圖:
1、Hibernate:ORM
Hibernate是一個Java ORM開發框架
ORM是Object Relation Mapping的縮寫,顧名思義,即對象關系映射。
ORM是一種以面向對象的方式來進行資料庫操作的技術。Web開發中常用的語言,都會有對應的ORM框架。而Hibernate就是Java開發中一種常用ORM框架,另一個現在流行的ORM框架是Mybatis。
為什麼需要ORM框架?
簡單地理解,通過Java進行資料庫訪問的正常流程可以分為以下幾步:
准備好SQL語句
調用JDBC的API傳入SQL語句,設置參數
解析JDBC返回的結果
這個過程實際上非常麻煩,比如:
在Java代碼中拼接SQL非常麻煩,而且易於出錯
JDBC的代碼調用有很多重復性的代碼
從JDBC返回的結果轉換成領域模型的Java對象很繁瑣
而使用ORM框架,則可以讓我們用面向對象的方式來操作資料庫,比如通過一個簡單的函數調用就完成上面整個流程,直接返回映射為Java對象的結果。這個流程中很大一部分工作其實可以交給ORM自動化地幫我們執行。對,類似MVC框架,ORM框架會幫你處理好相關的繁瑣事情!
2. Struts:MVC
Struts是一個Java Web MVC開發框架。MVC早在1978年就作為Smalltalk的一種設計模式被提出來了,引用到Web應用中來時:
模型Model用於封裝與業務邏輯相關的數據和數據處理方法
視圖View是數據的HTML展現
控制器Controller負責響應請求,協調Model和View
Model,View和Controller的分開,是一種典型的關注點分離的思想,不僅使得代碼復用性和組織性更好,使得Web應用的配置性和靈活性更好。
MVC開發模式下,Java Web開發會遇到URL路由、模板渲染、表單綁定/提交/驗證、Session封裝、許可權驗證、國際化等一系列通用的問題,而MVC框架會將這些通用問題都封裝進框架中,你在應用中根據自己的場景進行簡單的配置和編碼即可,MVC框架就能幫你處理好一切,可以極大地簡化代碼。
3.Spring:DI/AOP
Spring對應的關鍵詞是DI(依賴注入)與AOP(面向切面編程),可以認為是一個以DI和AOP為核心Java Web一站式的集成(粘合)框架。
其中DI也稱為IoC(控制發轉)用於管理Java對象之間的依賴關系(一定要說DI是IoC實現方式的童鞋們見評論區),AOP用於解耦業務代碼和公共服務代碼(如日誌,安全,事務等)。DI和AOP能夠讓代碼更加簡單,具有良好的松耦合特性和可測試性,極大地簡化開發。理解這兩者是使用Spring框架的基礎。
Spring框架對Java企業應用開發中的各類通用問題都進行了良好的抽象,因此也能夠把應用各個層次所涉及的特定的功能和開發框架(如接下來要說的MVC框架、ORM框架)方便得組合到一起(這也得益於依賴注入和面向切面編程帶來的強大功能)。Spring是一個極其優秀的一站式的Full-Stack集成框架,因此基於Spring核心,對Java應用開發中的各類通用問題幾乎都提供了針對性的開發框架,比如你耳熟能詳(如果你對這個問題感興趣的話)的Spring MVC,Spring Data。
Java曾經有另外一個類似的一站式框架粘合框架Seam,這是Hibernate的作者、脾氣火爆的大神Gavin King的作品,核心是基於依賴注入來黏合JSF和EJB,不過推出時Spring已經大殺四方,Seam基本已經退出歷史舞台了。記得Seam提過一個我認為很不錯的概念:「雙向注入」,類似現在前端框架中的雙向綁定,當時來說還是很超前的。
7. javaweb適合初學者的 javaweb書
21天從入門到精通XXX系列,市面上這種書太多了,我都看過很多本,但基本都是很快看完了,路子都差不多,顯示javase,然後servlet,jsp,然後ssh框架整合一番。你想學javaweb基本也是照這個路子來,如果你se學的可以了,先從servlet,jsp看起,同時學個資料庫JDBC基本要會,然後html、css、js可以先了解下,最後學下框架整個做點demo應該差不多慢慢就可以上手了
8. java web有哪些好的入門書籍
《精通java web整合開發(jsp、ajax、struts、hibernate)》這本不錯。
建議買java web的書,主要買開發的書,比如一本書里有講上幾個項目的,不建議買純概念和講解知識點的書,這樣的書看起來很枯燥,也容易掉進技術細節里。也可到itjob網上看入門資料
9. 學習java web需要先學會什麼,只要java基礎就夠了么
java分為3種分支:JavaSE, JavaEE, JavaME
那就要學javaEE,它就是BS架構搞互聯網的,資料庫還是要掌握的
重點學好之後就要學html(最簡單的靜態頁面) css(修改頁面樣式、風格、字體、布局) js(也就是javascript,它算是一個弱類型語言,不過功能很強大,可以調用資料庫,學頁面開發就要學它的,一些頁面的功能插件之類的) 然後就是jsp php asp之類的,因為不可能總用到html靜態頁面,然後都學好之後就要學java框架了
現在主流的是3大框架,俗稱ssh:也就是strust、spring、hibernate
不過每個公司用的都不一樣,可能只用1個,或者用2個,或者一個都不用,或者有自己單獨的框架,學的話只是一個起步,一個基礎,學會一個,學另一個就很容易,很多知識是在工作實踐中才學習掌握的。然後就是你自己慢慢在工作中成長了,通過實踐,學一些東西,比如工作中網路的應用,就要用一些架包
10. 請教Java Web高人一個簡單的Java Web入門級提問。
Hibernate實體關系映射其實就是講資料庫中的表與JAVA的對象關聯起來,配置JAVA類就是這種關聯關系的體現。簡單來說就是一個VO對象(java一般叫法)就對應一個表,VO對象的屬性就是表的欄位,而如果將VO對象與表一一對應起來,就可以用XML來配置。