JavaEE idea的smart tomcat插件使用

 更新时间:2024年09月05日 09:32:18   作者:_周游  
这篇文章主要介绍了JavaEE idea的smart tomcat插件使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1. Servlet程序页面的修改

如果需要将页面输出的内容修改为Hello Servlet,仅仅修改 .java 文件是不能实现的,还需要重新打包,重新部署,重新运行Tomcat,再次访问才可以实现;

现重建HelloServlet2项目,并置servlet path为HelloServlet2,

其中.java文件内容如下:

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文件内容如下:

<?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>

再重新打包,重新部署,重新运行Tomcat,再使用浏览器访问:

访问成功;

2. smart tomcat plugin

1. 在编写大型程序时,修改代码是非常频繁的,反复部署非常麻烦,于是可以使用 idea 的 smart tomcat 插件进行自动打包;

2. 打包与部署程序可以使用IDEA的Smart Tomcat插件,把Tomcat集成到IDEA中,省去手动打包与部署的过程,只需点击运行即可自动打包部署

  • 基于tomcat插件自动打包部署适用于开发阶段,频繁修改代码频繁验证;
  • 手动打包手动部署适用于上线阶段,发布程序;

3. IDEA提供了一些API,可以让程序员开发插件,对IDEA的功能进行扩展;

3. smart tomcat 安装

4. smart tomcat 配置

首次使用smart tomcat需要配置:

1. 点击页面右上角的Add Configuration新增一个配置:

注意如果使用的是idea专业版,请勿选择tomcat server;

2. 设置tomcat所在路径:

对于Context path一栏,如果不使用smart tomcat,就直接写作war包(目录)的名字;

使用smart tomcat时,需要手动进行配置,不配置默认为项目名字

确定后可看到右上角界面新增的配置:

注:

(1)IDEA社区版按照上述方式即可安装tomcat插件,IDEA专业版内置了Tomcat Server插件,和Smart Tomcat功能差不多,但不是一个插件,但Smart Tomcat使用更方便;

5. smart tomcat 运行

配置完成后,直接点击三角符号即可运行:

按照原路径打开,即可显示hello world:

注:

(1)不要通过IDEA控制台上的地址访问页面:

该链接不包含servlet path,直接点击访问是404页面

6. smart tomcat 工作原理

1. 查看tomcat的webapps目录下,并没有因为使用smart tomcat就重新生成一个war 包,原目录下的war包是先前使用tomcat打包的。

smart tomcat的工作原理不是自动拷贝war包,即webapps目录内不变,而是通过另一种方式启动tomcat。

2. smart tomcat支持启动时显式指定一个特定的webapp目录,相当于让tomcat加载单个webapp运行:

即smart tomcat直接调用tomcat,让tomcat加载当前项目中的webapp目录:

这个过程没有打war包、拷贝、解压缩的过程。

3. 此时程序是可以正常运行,但像之前一些webapps下的一些已有的内容(如欢迎页面)就不存在了:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java线程池核心线程不被摧毁的原理及分析

    java线程池核心线程不被摧毁的原理及分析

    这篇文章主要介绍了java线程池核心线程不被摧毁的原理及分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • IDEA Eval Reset 使用方法汇总

    IDEA Eval Reset 使用方法汇总

    本文给大家介绍了IDEA Eval Reset 使用方法,安装插件包括离线安装方式和在线安装方式,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • Java对接Dify API接口的完整流程

    Java对接Dify API接口的完整流程

    Dify是一款AI应用开发平台,提供多种自然语言处理能力,通过调用Dify开放API,开发者可以快速集成智能对话、文本生成等功能到自己的Java应用中,本文给大家介绍了Java对接Dify API接口的完整流程,需要的朋友可以参考下
    2025-05-05
  • 20秒教你学会java List函数排序操作示例

    20秒教你学会java List函数排序操作示例

    这篇文章主要为大家介绍了20秒教你学会List函数排序操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • java如何实现获取客户端ip地址的示例代码

    java如何实现获取客户端ip地址的示例代码

    本文主要介绍了java如何实现获取客户端ip地址,主要包括java获取客户端ip地址工具类使用实例、应用技巧,文中通过示例代码介绍的非常详细,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Spring Security LDAP实现身份验证的项目实践

    Spring Security LDAP实现身份验证的项目实践

    在本文中,我们涵盖了“使用 Spring Boot 的 Spring Security LDAP 身份验证示例”的所有理论和示例部分,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • SpringBoot在项目停止(服务停止/关闭退出)之后执行的方法

    SpringBoot在项目停止(服务停止/关闭退出)之后执行的方法

    这篇文章主要给大家介绍了SpringBoot在项目停止(服务停止/关闭退出)之后执行的两种方法,实现DisposableBean接口和使用@PreDestroy注解,文中有详细的代码讲解,具有一定的参考价值,需要的朋友可以参考下
    2023-12-12
  • SpringBoot文件上传接口并发性能调优

    SpringBoot文件上传接口并发性能调优

    在一个项目现场,文件上传接口(文件500K)QPS只有30,这个并发性能确实堪忧,此文记录出坑过程,文中通过代码示例讲解的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-06-06
  • Java StringBuffer与StringBuilder有什么区别

    Java StringBuffer与StringBuilder有什么区别

    当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder类,和String类不同的是,StringBuffer和 StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象,本篇我们来分析分析它们的区别
    2023-01-01
  • Spring配置多数据源导致事物无法回滚问题

    Spring配置多数据源导致事物无法回滚问题

    这篇文章主要介绍了Spring配置多数据源导致事物无法回滚问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01

最新评论