1. jar包和war包的區別是什麼
jar包和war包的區別:
1、war是一個web模塊,其中需要包括WEB-INF,是可以直接運行的WEB模塊;jar一般只是包括一些class文件,在聲明了Main_class之後是可以用java命令運行的。
2、war包是做好一個web應用後,通常是網站,打成包部署到容器中;jar包通常是開發時要引用通用類,打成包便於存放管理。
3、war是Sun提出的一種Web應用程序格式,也是許多文件的一個壓縮包。這個包中的文件按一定目錄結構來組織;classes目錄下則包含編譯好的Servlet類和Jsp或Servlet所依賴的其它類(如JavaBean)可以打包成jar放到WEB-INF下的lib目錄下。
2. 如何把webpack前端工程部署到tomcat上
幾種方法:
1、在myeclipse里部署
這個直接在myeclipse里配置好tomcat的根路徑。
在server里可以看到tomcat,選擇部署你的工程就行了。
2、把自己的web工程放在tomcat的webapps下
2.1 把你的工程達成war包,放進tomcat的webapps下;
2.2 把你工程的webroot下的內容用你的工程名稱(其實是你想要的在啊瀏覽器訪問的應用路徑名)作為文件夾包住webroot下的內容(要保證你的classes有東西,lib有東西)
3、把描述自己工程的context放在webapps下
context里可以描述你的工程的名稱,工程存放的路徑
4、在tomcat的conf/server.xml配置相應的context元素
這個和3的作用差不多,只是這個是在tomcat的server啟動時載入的
以上都能讓tomcat知道自己有多少應用要部署,將會進行相應的部署動作。部署完後,就可以在瀏覽器訪問了。
3. 如何在開發時部署和運行前後端分離的JavaWe
在開發中大型的JavaEE項目時,前後端分離的框架逐漸成為業界的主流,傳統的單機部署前後端在同一個項目中的工程項目越來越少。這類JavaWeb項目的後端通常都採用微服務的架構,後端會被分解為諸多個小項目,然後使用bbo+zookeeper或者springCloud來構建微服務,前端則會是一個單獨的項目,前台的請求通過微服務來調用。但是,不同與傳統的web項目,這類前後端分離的項目如何在開發中部署和運行呢?
當前後端分離時,後端項目一定會被載入到tomcat的webapp目錄下面,但是前端的資源院該如何被訪問到呢?這里以tomcat這個中間件為例,探討在開發這類項目的時候,如何讓前後端分離的項目部署並且運行起來,即後端項目部署在tomcat之後如何在運行時訪問靜態資源(非上線部署)。
主要有兩種方案:1.在本地通過Nginx來處理這些靜態資源。2、將靜態資源統一放入一個javaweb應用中,並將自動生成的war包隨後端項目一期丟入tomcat。下面詳細介紹
一、使用Nginx來訪問靜態資源。
在本地安裝nginx並且修改nginx.conf,修改相關配置,將web訪問的埠的資源進行更改,配置如下:
server { listen 80; server_name localhost; charset utf-8; #access_log logs/host.access.log main;
location / { proxy_pass http://tomcat_pool; proxy_redirect off;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
location ~ .*.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|woff|woff2|ttf|eot|map)$ {
root D:Workspacesesop-html; index index.html;
}
listen對象改為你本地的tomcat訪問埠,最下面location中的root改為你前端項目中靜態資源的位置,這樣就可以實現只部署後端的項目就能訪問前端的頁面了。
二、將前端項目轉換為動態的web項目,隨後端項目一起丟入tomcat
這個方案省去了在本地安裝和配置nginx,但是也只適用於開發階段項目的部署運行和調試,真正在生產環境通常前後端項目會部署在不同的伺服器。
如果是Intellij Idea,在導入前端項目之後,右鍵項目 add framework support --> web application,這時將會把前端項目轉換為一個javaweb項目,然後將靜態資源放在生成的web目錄下即可。
如果是eclipse,可以新建一個javaweb項目然後將靜態資源放入web或者webcontent目錄下,或者直接先導入前端項目,然後通過 project facts 將項目轉換為dynamic web項目並勾選 js等相關配置。
然後,運行項目時把後端的war包和前端的war包一同添加到 deployment中運行即可。
4. Java為什麼要打war包
war包:Java web工程,都是打成war包,進行發布,如果我們的伺服器選擇TOMCAT等輕量級伺服器,一般就打出WAR包進行發布;
打成war包的好處是不會缺少目錄搏虧,並且只管理好一個發布文件就好。另薯凱外,容器在部署的時候還有其他一些操作,例如,針對容器的優化之類的。你用了WebSphere就知道和Tomcat不一樣了。比如,自動基手神刪掉空目錄。