JavaEE idea的smart tomcat插件使用
1. Servlet程序頁(yè)面的修改
如果需要將頁(yè)面輸出的內(nèi)容修改為Hello Servlet,僅僅修改 .java 文件是不能實(shí)現(xiàn)的,還需要重新打包,重新部署,重新運(yùn)行Tomcat,再次訪問(wèn)才可以實(shí)現(xiàn);
現(xiàn)重建HelloServlet2項(xiàng)目,并置servlet path為HelloServlet2,
其中.java文件內(nèi)容如下:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/hello2")
public class HelloServlet2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Hello Servlet");
resp.getWriter().write("Hello Servlet");
}
}pom.xml文件內(nèi)容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Servlet2</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<packaging>war</packaging>
<build>
<finalName>HelloServlet2</finalName>
</build>
</project>再重新打包,重新部署,重新運(yùn)行Tomcat,再使用瀏覽器訪問(wèn):

訪問(wèn)成功;
2. smart tomcat plugin
1. 在編寫大型程序時(shí),修改代碼是非常頻繁的,反復(fù)部署非常麻煩,于是可以使用 idea 的 smart tomcat 插件進(jìn)行自動(dòng)打包;
2. 打包與部署程序可以使用IDEA的Smart Tomcat插件,把Tomcat集成到IDEA中,省去手動(dòng)打包與部署的過(guò)程,只需點(diǎn)擊運(yùn)行即可自動(dòng)打包部署;
- 基于tomcat插件自動(dòng)打包部署適用于開(kāi)發(fā)階段,頻繁修改代碼頻繁驗(yàn)證;
- 手動(dòng)打包手動(dòng)部署適用于上線階段,發(fā)布程序;
3. IDEA提供了一些API,可以讓程序員開(kāi)發(fā)插件,對(duì)IDEA的功能進(jìn)行擴(kuò)展;
3. smart tomcat 安裝

4. smart tomcat 配置
首次使用smart tomcat需要配置:
1. 點(diǎn)擊頁(yè)面右上角的Add Configuration新增一個(gè)配置:

注意如果使用的是idea專業(yè)版,請(qǐng)勿選擇tomcat server;
2. 設(shè)置tomcat所在路徑:

對(duì)于Context path一欄,如果不使用smart tomcat,就直接寫作war包(目錄)的名字;
使用smart tomcat時(shí),需要手動(dòng)進(jìn)行配置,不配置默認(rèn)為項(xiàng)目名字;
確定后可看到右上角界面新增的配置:

注:
(1)IDEA社區(qū)版按照上述方式即可安裝tomcat插件,IDEA專業(yè)版內(nèi)置了Tomcat Server插件,和Smart Tomcat功能差不多,但不是一個(gè)插件,但Smart Tomcat使用更方便;
5. smart tomcat 運(yùn)行
配置完成后,直接點(diǎn)擊三角符號(hào)即可運(yùn)行:

按照原路徑打開(kāi),即可顯示hello world:

注:
(1)不要通過(guò)IDEA控制臺(tái)上的地址訪問(wèn)頁(yè)面:

該鏈接不包含servlet path,直接點(diǎn)擊訪問(wèn)是404頁(yè)面;
6. smart tomcat 工作原理
1. 查看tomcat的webapps目錄下,并沒(méi)有因?yàn)槭褂胹mart tomcat就重新生成一個(gè)war 包,原目錄下的war包是先前使用tomcat打包的。
smart tomcat的工作原理不是自動(dòng)拷貝war包,即webapps目錄內(nèi)不變,而是通過(guò)另一種方式啟動(dòng)tomcat。
2. smart tomcat支持啟動(dòng)時(shí)顯式指定一個(gè)特定的webapp目錄,相當(dāng)于讓tomcat加載單個(gè)webapp運(yùn)行:
即smart tomcat直接調(diào)用tomcat,讓tomcat加載當(dāng)前項(xiàng)目中的webapp目錄:

這個(gè)過(guò)程沒(méi)有打war包、拷貝、解壓縮的過(guò)程。
3. 此時(shí)程序是可以正常運(yùn)行,但像之前一些webapps下的一些已有的內(nèi)容(如歡迎頁(yè)面)就不存在了:

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
20秒教你學(xué)會(huì)java?List函數(shù)排序操作示例
這篇文章主要為大家介紹了20秒教你學(xué)會(huì)List函數(shù)排序操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
java如何實(shí)現(xiàn)獲取客戶端ip地址的示例代碼
本文主要介紹了java如何實(shí)現(xiàn)獲取客戶端ip地址,主要包括java獲取客戶端ip地址工具類使用實(shí)例、應(yīng)用技巧,文中通過(guò)示例代碼介紹的非常詳細(xì),感興趣的小伙伴們可以參考一下2022-04-04
Spring Security LDAP實(shí)現(xiàn)身份驗(yàn)證的項(xiàng)目實(shí)踐
在本文中,我們涵蓋了“使用 Spring Boot 的 Spring Security LDAP 身份驗(yàn)證示例”的所有理論和示例部分,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
SpringBoot在項(xiàng)目停止(服務(wù)停止/關(guān)閉退出)之后執(zhí)行的方法
這篇文章主要給大家介紹了SpringBoot在項(xiàng)目停止(服務(wù)停止/關(guān)閉退出)之后執(zhí)行的兩種方法,實(shí)現(xiàn)DisposableBean接口和使用@PreDestroy注解,文中有詳細(xì)的代碼講解,具有一定的參考價(jià)值,需要的朋友可以參考下2023-12-12
SpringBoot文件上傳接口并發(fā)性能調(diào)優(yōu)
在一個(gè)項(xiàng)目現(xiàn)場(chǎng),文件上傳接口(文件500K)QPS只有30,這個(gè)并發(fā)性能確實(shí)堪憂,此文記錄出坑過(guò)程,文中通過(guò)代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-06-06
Java StringBuffer與StringBuilder有什么區(qū)別
當(dāng)對(duì)字符串進(jìn)行修改的時(shí)候,需要使用 StringBuffer 和 StringBuilder類,和String類不同的是,StringBuffer和 StringBuilder類的對(duì)象能夠被多次的修改,并且不產(chǎn)生新的未使用對(duì)象,本篇我們來(lái)分析分析它們的區(qū)別2023-01-01
Spring配置多數(shù)據(jù)源導(dǎo)致事物無(wú)法回滾問(wèn)題
這篇文章主要介紹了Spring配置多數(shù)據(jù)源導(dǎo)致事物無(wú)法回滾問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01

