<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java web項目基本介紹

      1、如何新建Java web項目

      1.1、在IDEA中新建一個Java web項目

      在IDEA中創建一個Java web項目其實很簡單,只需創建project,并且勾選 web application 選項即可,由此就創建了一個Java EE項目。

      可參考:https://blog.csdn.net/qq_34107571/article/details/79774250

      1.2、在eclipse中新建一個Java web項目

      參考:https://jingyan.baidu.com/article/7f41ecec4b76fe593d095cea.html

      建議使用 Java ee 版本的 eclipse。

       

      2、在eclipse中配置tomcat服務器

      參考:http://www.rzrgm.cn/greamrod/p/10330404.html

      2.1、在eclipse中設置tomcat熱更新

      參考:https://jingyan.baidu.com/article/e75aca853188ba142edac6b5.html

      照著上面鏈接做效果可能還比較慢,更新得比較慢,此時可以將更新時間調為 0,如下:

       

      2.2、修改tomcat的默認部署路徑

      當項目在服務器上運行后,eclipse 中會生成一個與工程文件并列的一個文件夾:Servers。如下:(如果刪掉了Servers文件夾,當重新運行時,文件夾又會自動生成)

      這個文件夾是Tomcat服務器的一個基本的配置。

      上圖中可以看到,項目 javaWebTest01 已經部署到Tomcat服務器上去了,也就是看到了TomcatTest這個工程被發布出去了。我們雙擊上圖中的 tomcat 服務器可以看到我們新建的 tomcat 的一些設置信息,如下:

      上圖中紅框表示的意思是,該項目將默認會發布在 eclipse 工作空間下的 .metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps 路徑下(比如:F:\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps),而不是在 tomcat 的安裝目錄下。我們打開該路徑可以看到已經被打包好的 javaWebTest01 項目,如下:

         

      打開 javaWebTest01 文件夾可以看到該項目打包后的目錄結構:

      當然,我們也可以修改部署目錄,將該項目默認部署在我們tomcat的安裝目錄下。先將該項目從 tomcat 中移除掉(必須得先移除掉,不然無法修改配置信息),然后修改配置信息,啟動即可。如下:

      然后就可以修改部署的路徑了,比如我們將部署路徑修改為 tomcat 安裝目錄下的 webapps 目錄:

      修改保存,然后重新運行 tomcat 即可。運行結束后我們可以在 tomcat 安裝目錄下的 webapps 看到多了一個 javaWebTest01 文件夾,證明部署成功。

      參考:https://blog.csdn.net/suhang1992/article/details/82838341

       

      3、在IDEA中配置tomcat服務器

      創建完一個 java web項目后,我們就可以往這個項目當中配置 tomcat 服務器了。首先需要做的是先安裝一個 tomcat ,如何安裝 tomcat 可以參考:http://www.rzrgm.cn/wenxuehai/p/14133196.html

      安裝完之后就配置 tomcat,主要就是給這個項目添加一個配置 configuration,大致就是先選擇 tomcat server -> 然后選擇 local ,詳細可參考:http://www.rzrgm.cn/shijiaoyun/p/5882281.html#top (在Chrome中打開可能圖片顯示不出來)

       

      在配置 tomcat 之后,如果想在修改項目文件后立即生效,實現熱部署的效果,可以在配置中修改為下面的選項。修改為下面選項在修改 java 代碼時可能還沒有實時更新的效果,在啟動 tomcat 時選擇 debug 就可以。

       

      3.1、IDEA中web項目的配置文件

      在 IDEA 中,每一個 tomcat 部署的項目都會有一個單獨的配置,IDEA 會為每個 tomcat 部署的項目單獨建立一份配置文件。

      該配置文件的路徑會在啟動 tomcat 時在控制臺輸出,一般在前面會輸出,類似于:Using CATALINA_BASE:   "C:\Users\xxx\.IntelliJIdea2019.3\system\tomcat\Unnamed_new_tomcat_test_2" 這么一行代碼,配置文件就存放在該路徑當中。

      目錄結構如下:

      在 conf 文件夾下有 server.xml 文件,該文件就是該 web 項目的 tomcat 配置文件。

      在 conf/Catalina/localhost 中可以看到有 xml 配置文件,由此可以知道部署方式采用的是新增配置文件的方式來進行部署的。

       

      3.2、tomcat真正訪問的web項目路徑

      打開上述配置文件目錄 conf/Catalina/localhost 下的 xml 配置文件,docBase 屬性指的就是 tomcat 實際訪問的項目路徑:

      <Context path="/new_tomcat_test_war_exploded" docBase="F:\develop_WorkSpace\IntelliJ_IDEA_workSpace\new_tomcat_test\out\artifacts\new_tomcat_test_war_exploded" />

      我們可以把平常編寫的項目路徑和 tomcat 實際訪問的項目路徑分為:工作空間項目、tomcat 部署的項目。可以看到 docBase 指向的是 IDEA開發工具的工作空間下的 out 目錄下的路徑文件,而不是我們平常的工作空間路徑,但是這個 out 目錄在 IDEA 下是看不到的。也就是說 tomcat 訪問的部署項目路徑和我們工作空間的項目是不太一樣的。該 out/artifacts 目錄下的項目實際上就是我們需要部署的文件。

      tomcat 部署的項目實際上對應著工作空間項目下的 web 目錄下的所有資源,再加上 src 目錄下的資源。

      WEB-INF 目錄下的資源不能被瀏覽器直接訪問,所以不要在 WEB-INF 目錄下新建 html 等資源。

       

      4、Java和Java Web項目的目錄結構

      我們應該要知道,Java項目和Java web項目的目錄結構是有很大不一樣的。這是有很多因素構成的,比如Java web項目中需要跟 tomcat 進行部署等。

       

      4.1、Java項目的目錄結構

      .project:是工程構建配置文件

      .classpath:保存的是項目所用的外部引用包的路徑

      .settings:記錄項目配置變化的記錄文件夾

      src: sourcefolder項目源代碼    .java文件的存放位置

      bin:項目開發時的classes文件存放目錄。該文件夾下的 classes 文件夾(即 bin/classes )存放著項目編譯后 .class 文件

      lib:為方便編程,常常會引用別人已經實現的方法,通常會封裝成jar包,lib文件夾就是用來存放從外部引入的jar包。

       

      4.2、Java web項目的目錄結構

      在Eclipse中只要創建一個Dynamic Web Project,就可以根據創建向導創建出一個典型Java Web站點的目錄結構。除非有特殊需要,在大多數情況下都沒有必要修改這個目錄結構,這也是Web容器的缺省目錄結構,我們只要直接使用即可。一般的目錄結構如下:

      下面了解一下這些目錄或者文件夾的用途。

      (1)Java Resources

      • src:用來存放Java源文件。
      • Libraries:存放的是Tomcat及JRE中的jar包。

      (2)build:項目開發時的 classes 文件存放目錄。該文件夾下的 classes 文件夾(即 build/classes )存放著項目編譯后 .class 文件。build 文件夾和 bin 文件夾是類似的,我們可以手動設置項目開發時編譯后的 class 文件是存放在 bin 還是 build 文件夾下。

      (3)WebContent(WebRoot):是這個Web應用的頂層目錄,也稱為文檔根目錄,目錄結構如下:

      WebContent                                
           |---META-INF                          
           |       |---MANIFEST.MF            
           |---WEB-INF                             
           |       |---web.xml                    
           |       |---lib                              
           |       |    |---*.jar                     程序需要的jar包
           |       |---classes                       class文件目錄
           |            |---...*.class                class文件
           |---<userdir>                           自定義的目錄
           |       |---*.jsp,*.js,*.css            自定義的資源文件 

      • META-INF:系統自動生成,存放系統描述信息。
      • 一系列自定義的靜態文件:包括所有的HTML網頁、CSS文件、圖像文件等。一般按功能已文件夾形式分類,例如,圖像文件集中存儲在images目錄中。
      • JSP文件:利用JSP可以很方便地在頁面中生成動態的內容,使Web應用可以輸出動態頁面。
      • WEB-INF:是Java的WEB應用的安全目錄。所謂安全就是客戶端無法訪問,即無法對外發布,用戶訪問不到,只有服務端可以訪問。如果想在頁面中直接訪問其中的文件,必須通過web.xml文件對要訪問的文件進行相應映射才能訪問。
      • WEB-INF/lib:存放第三方庫的文件夾,它包含Web應用所需要的.jar或者.zip文件。java web項目需要引用的 jar 包必須得放在這個目錄下,否則將該項目部署在 tomcat 時,你如果引用了 jar 包中的類或方法,tomcat 會無法找到你所引用的 jar 包。因為Tomcat下的web項目有兩個預置的classpath(就是能找到.class文件的入口),這兩個預置的classpath是WEB-INF/classes與WEF-INF/lib。
      • WEB-INF/classes:項目在部署時,java 文件經編譯后生成的 .class 文件的存放路徑。為什么需將項目編譯后生成的字節碼文件放在這個文件夾下,理由同上述 WEB-INF/lib 文件夾。
      • WEB-INF/web.xml:Web應用的核心配置文件

       

      打包前項目目錄:

      打包后目錄:

      可以看到,打包前 web(WebContent) 目錄下的文件及文件夾都會被打包到項目的根目錄,而 src 目錄下的文件及包和類,都會被打包到項目根目錄下的 WEB-INF/classes 目錄下。

       

      4.3、Java web項目各種文件的含義(.classpath、.mymetadata 、.project、.metadata、.setting)

      .classpath保存的是項目所用的外部引用包的路徑
      .mymetadata 保存的是工程屬性文件
      .project 是工程構建配置文件
      .metadata文件夾的作用 Eclipse內所有改動都放在這個文件夾

      .setting文件夾的作用:.setting這個文件是eclipse查看js文件的時候用的,記錄了用什么編碼方式查看。發布新版本的時候,.settings\文件夾不會被打到.war包里,與發布無關。比如把.js文件的編碼方式由改成默認的ISO-8859-1改成GBK時,這個文件會有記錄。如果把這個文件刪了,在eclipse中查看js文件的中文字符就是亂碼,但發布的時候還是能正常顯示中文的。結論:這個文件是shueclipse查看js文件的時候用的,記錄了用什么編碼方式查看。與發布無關。.settings\文件夾不會被打到.war包里。

       

      4.4、項目中各種libraries的含義

      一個工程目錄下一般會有以下幾類Libraries,如圖:

      JRE System Library:Java SE 的常用庫文件集合,構建任何Java項目都會使用,為最基本的庫文件。

      Java EE 6.0 Generic Library:Java EE的常用庫文件集合,構建Web項目時會用到這個庫文件與Java SE的庫文件。

      Referenced Library:項目中所使用的第三方的庫文件集合,如果你把項目所需要的其他JAR包直接加在 項目->屬性->Java Build Path -> Libraries 中的時候,MyEclipse 會自動將這些JAR包歸類到一個集合中, 并取名為 Referenced Libraries , 顯示在項目中。

      Web App Libraries:動態管理WEB-INF/lib 和 WEB-INF/classes目錄下的jar包。

       

      Referenced Library和WEB-INF/lib 下的jar包的區別:首先 Referenced Libraries可以是引用 WebRoot /WEB-INF/ lib下的jar包,也可以是其他從別的地方復制過來的第三方jar包。Referenced Library是編譯環境下所使用的JAR包,也就是說在MyEclipse中進行源碼文件編寫的時候,使用到的類都是從這個下面拿。WebRoot/WEB-INF/lib 下的jar包是實際運行環境下所使用的jar包,也就是程序部署后實際運行時所需要的jar包都是從WebRoot/WEB-INF/lib下面拿。

      我們位于WebRoot/WEB-INF/lib中的第三方的jar包(比如SSM框架的jar包)都要經過Build Path后,就會位于Referenced Library下,即可用于項目源碼的編寫。

      也就是說,在開發時,項目所有依賴的包都要經過 build path 添加到項目依賴當中,否則開發集成工具無法找到項目依賴的包。但在生產環境時,需要將項目依賴包放在 WEB-INF/lib 目錄下,放在該目錄下的話 tomcat 服務器能自動找到該目錄下的包,項目運行就不會有問題

       

      Build Path的作用:MyEclipse中的Build Path就是用來管理項目中的Jar包的,如果缺少什么jar包,就可以通過右鍵項目/built path/Configure built path/點擊libraries標簽進行添加。

      參考:http://www.rzrgm.cn/hanszhao/p/9440294.html

       

      4.5、classpath(項目編譯后,類存放的路徑)

      classpath 指的就是在項目編譯后,各個類存放的路徑。Tomcat 下的 web 項目有兩個預置的 classpath(就是能找到.class文件的入口),這兩個預置的 classpath 是 webcontent/WEB-INF/classes 與 webcontent/WEF-INF/lib。

      • WEB-INF/lib:存放第三方庫的文件夾,它包含Web應用所需要的.jar或者.zip文件。java web項目需要引用的 jar 包必須得放在這個目錄下,否則將該項目部署在 tomcat 時,你如果引用了 jar 包中的類或方法,tomcat 會無法找到你所引用的 jar 包。
      • WEB-INF/classes:打包前在 web(或者WebContent) 目錄下的文件及文件夾在打包后都會被打包到項目的根目錄,而 src 目錄下的文件及包和類,會被打包到項目根目錄下的 WEB-INF/classes 的根目錄下。

       

      5、如何將一個Java web項目打包成war包

      eclipse參考:http://www.rzrgm.cn/yjq520/p/7323934.html

      IDEA參考:https://jingyan.baidu.com/article/c1a3101ee342ea9f646deb0d.html

      將 war 包放在 tomcat 安裝目錄下的 weapps 目錄下即代表部署成功,tomcat 會自動解壓 war 包。我們打開 tomcat 解壓 war 包過后生成的文件夾,可以看到目錄結構如下:

      WEB-INF 文件夾下的目錄結構:

      可以看到打包后的目錄結構有 META-INF、WEB-INF、靜態文件。。。

      在 WEB-INF 里面有 classes、lib、web.xml,當然,前提是我們設置該項目的編譯路徑是默認的,即 src 輸出在 classes 并且 Webcontent 輸出在根目錄。

       

      6、WEB-INF/lib和WEB-INF/classes文件夾

      Tomcat 在運行時是如何找編譯好的.class文件 的呢?其實Tomcat下的web項目有兩個預置的 classpath(就是能找到.class文件的入口),這兩個預置的 classpath 就是 WEB-INF/classes 和 WEF-INF/lib。所以說,我們編譯過后的字節碼文件必須得放在這兩個文件夾下才能被 tomcat 給找到,否則 tomcat 根本就無法找到字節碼文件,那你寫的那些類、給前端訪問的接口等等都無法生效。

      其實我們在新建一個 java web項目時,默認 src 文件夾下的 java 文件經編譯后生成的字節碼文件存放路徑就是 WEB-INF/classes,我們可以通過右鍵項目 -> properties -> Deployment Assembly 來查看:

      而在 WEF-INF/lib 目錄下的文件經編譯后仍然是會放在 WEF-INF/lib 目錄下的。所以說,java web項目需要引用的 jar 包必須得放在 WEF-INF/lib 目錄下,并且 src 目錄下的文件編譯后必須得放在 WEB-INF/classes 文件夾下,否則的話 tomcat 就無法找到它們。

      從上圖還可以看出,webcontent 內的文件內容默認編譯過后是會放在項目根目錄的。

       

      其實想理解很簡單,如果我們不啟動Tomcat,那么只需要把包添加到java環境的路徑下即可(就是我們常用的 build path - add path),這樣,java程序就可以使用這個包中的類。但是,java web是運行在Tomcat下的,我們導的包,必須讓Tomcat找到,而Tomcat默認的路徑就是WEB_INF這個目錄下的lib,如果我們不放在這里,就會找不到依賴。

       

      7、java web多用戶和多線程

      在java web服務中每個用戶的請求實際上都是可以看作是一次http請求,而 tomcat 對于每次的http請求都是重新開辟線程的。tomcat 本身就有維護著一個線程池,去應對用戶的訪問請求。多線程是tomcat實現的,你寫的代碼是tomcat線程池中一個線程調用,在單線程中執行。

      多用戶請求對于 java 開發人員來說不是多線程,對于開發 tomcat 的程序員來說是多線程。 對java 開發人員的多線程指的是編碼中用到多線程來處理耗時的任務。多用戶訪問咱們寫的代碼叫并發。

       

      posted @ 2020-12-18 17:42  wenxuehai  閱讀(7504)  評論(0)    收藏  舉報
      //右下角添加目錄
      主站蜘蛛池模板: 中文字幕国产日韩精品| 尹人香蕉久久99天天拍| 国产播放91色在线观看| 精品人妻日韩中文字幕| 99久久国产一区二区三区| 国内精品免费久久久久电影院97| 亚洲 制服 丝袜 无码| 久久人人97超碰精品| 中文字幕午夜福利片午夜福利片97| 亚洲精品无码久久毛片| 美欧日韩一区二区三区视频| 国内精品免费久久久久电影院97| 丹凤县| 潮喷失禁大喷水av无码| 日本道之久夂综合久久爱| 99久久久无码国产精品免费| 女人张开腿无遮无挡视频| 日韩一区二区三区理伦片 | 精品国产迷系列在线观看| 欧美成人免费一区二区三区视频 | 亚洲综合精品一区二区三区| 884aa四虎影成人精品| A毛片毛片看免费| 国产日韩一区二区三区在线观看| 国产精品制服丝袜无码| 精品国产午夜福利在线观看| 在线播放国产女同闺蜜| 育儿| 国产亚洲999精品aa片在线爽| 亚洲精品一区二区三区不| 亚洲一区二区三区av链接| 日韩中文字幕精品人妻| 国产高清av首播原创麻豆| 99精品国产中文字幕| 国产情侣草莓视频在线| 国产剧情视频一区二区麻豆| 精品一区二区三区不卡| 男女性杂交内射女bbwxz| 少妇人妻精品无码专区视频| 国产在线午夜不卡精品影院| 国产精品欧美亚洲韩国日本久久|