首页 > 编程语言 >配置Tomcat运行Java Web项目

配置Tomcat运行Java Web项目

时间:2023-10-13 15:04:20浏览次数:38  
标签:Web Java Tomcat 项目 部署 Server 选择 目录

创建项目

创建Java Web项目

ctrl+shift+p打开搜索Maven原型, 并选择从maven原型创建新项目 在这里插入图片描述 或者按如下方式:选择从Maven原型创建Web项目

在这里插入图片描述maven-archetype-webapp原型创建项目 在这里插入图片描述 接着选择原型版本、输入包名、项目名、选择项目存放位置 在这里插入图片描述 注意:到此需要按一下回车来继续 在这里插入图片描述 输入Y或者回车确认 在这里插入图片描述

补全项目结构

通过Maven原型创建的的项目目录结构是不完整的 在这里插入图片描述 手动补全,新工程目录如下 在这里插入图片描述 修改pom.xml

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

配置Tomcat Server

安装Tomcat for Java插件,但是其已经过时了 在这里插入图片描述 但是其推荐使用Community Server Connector插件 在这里插入图片描述

安装Community Server Connectors插件之后会在控制栏多了一个SERVERS的选项卡

点击创建新的Server 在这里插入图片描述

可能出现异常:

Unable to create the server: Extension backend error - there are no rsp providers currently running to choose from. they may still be initializing.

原因:

项目使用的JDK版本过低,让项目使用更高的JDK版本即可解决

解决:

修改当前项目的.vscode文件夹中的settings.json文件,添加JDK11配置,不使用全局settings.json中配置的JDK8

  // Java配置  
  "java.jdt.ls.java.home": "D:/Development/Java/jdk11",
  "java.dependencies.enabled": true,
 
  // 是否自动更新Java构建配置
  "java.configuration.updateBuildConfiguration": "automatic",
  
  // 自动启动Community Server Connector扩展
  "rsp-ui.enableStartServerOnActivation": [
    {
      "id": "redhat.vscode-community-server-connector",
      "name": "Community Server Connector",
      "startOnActivation": true
    }
  ],

会询问是否下载服务器,这里选择No,user server on disk,使用本地安装的Tomcat 在这里插入图片描述 选择本地的Tomcat安装路径 在这里插入图片描述 然后出现Tomcat的配置项,根据需要修改,默认即可 在这里插入图片描述 点击Finish后,Tomcat服务器就添加配置好了 在这里插入图片描述

项目部署

执行项目打包命令后,target目录将出现一个demo.war与一个demo项目名的目录 在这里插入图片描述 选择Tomcat,点击Add Deployment选项,进行项目部署 在这里插入图片描述 选择部署类型

选择File: 就是选择文件,一般用来选择war包

选择Exploded: 就是选择文件夹,如果使用热部署,选择编译后的项目文件夹,会进行实时更新

在这里插入图片描述

部署编译目录

选择打包生成的编译目录 在这里插入图片描述 会询问选择是否配置参数,这里选择No 在这里插入图片描述

于是Tomcat目录下就多了个项目 在这里插入图片描述 启动Tocmat 在这里插入图片描述

点击Publish Server(Full)进行项目发布 在这里插入图片描述

部署war包

执行选择打包生成的demo.war文件 在这里插入图片描述 于是Tomcat目录下就多了个项目 在这里插入图片描述 启动Tocmat

在这里插入图片描述 访问http://localhost:8080/demo/ 在这里插入图片描述

修改index.jsp

需要重新执行maven的package打包,再次访问即可达到热部署效果,但是这种方式效率不高,尤其是项目大时,编译打包缓慢,此时就需要使用热部署

在这里插入图片描述

热部署

Deploy:Deploy是一款热部署插件。

在这里插入图片描述

热部署配置

编辑或者创建当前项目的.vscode文件夹中的settings.json文件 在这里插入图片描述 在项目的settings.json中添加热部署配置信息

{
 //Deploy插件热部署所需配置信息
    "deploy": {
     "packages": [
         {
             "name": "web app",
             "description": "配置webapp中的文件路径",
             "files": [
              "src/main/webapp/*",
              "src/main/webapp/*/*",
              "src/main/webapp/**",
             ], 
             "exclude": [
                 "src/main/webapp/test/*"
             ],
             "deployOnSave": true,
             "useTargetList": true,
             "button": {
              "text": "热部署",
              "tooltip": "点击部署",
              "targets": [ "HOTSITE" ]
          },

         }
     ],
     "targets": [
         {
             "type": "local",
             "name": "HOTSITE",
             "description": "配置指向编译目录",
             "dir": "target/TEST/",// 指向编译后的文件路径
             "mappings": [
                 {
                     "source": "src/main/webapp",
                     "isRegEx": false,
                     "target": "/"
                 }
             ]
         }
     ]
	},
 }

编译配置

点击Maven菜单中的compile按钮,将后端文件编译成class文件,保存到target下的classes文件夹中 在这里插入图片描述

为了配合热部署,打卡项目pom.xml文件,修改maven的默认编译位置,让后端代码编译到某一个目录,如:target/TEST/

 <build>
    <sourceDirectory>src/main/java</sourceDirectory>
        <resources>
          <resource>
            <directory>src/main/resources</directory>
          </resource>
        </resources>
    <outputDirectory>${basedir}/target/TEST/WEB-INF/classes</outputDirectory>
  </build>

部署

选择需要热部署的目录,会实时更新该目录数据,也就是选择编译后的项目文件夹,即工程下的target/TEST目录 在这里插入图片描述 Tomcat目录下就多出一个个项目 在这里插入图片描述 启动Tomcat,点击Publish Server(Full)进行项目发布 在这里插入图片描述 访问浏览器: 在这里插入图片描述

启动热部署

点击热部署按钮启动热部署,修改index.jsp文件测试是否生效 在这里插入图片描述 修改index.jsp文件后访问浏览器: 在这里插入图片描述

标签:Web,Java,Tomcat,项目,部署,Server,选择,目录
From: https://blog.51cto.com/chencoding/7845693

相关文章

  • Java流(Stream)、文件(File)和IO
    Java流(Stream)、文件(File)和IOJava流(Stream)、文件(File)和IOjava.io包几乎包含了所有操作输入、输出需要的类所有这些流类流类代表了输入源和输出目标Java.io包中的流支持很多种格式比如:基本类型、对象、本地化字符集等等一个流可以理解为一个数据的序列输入流表示从一......
  • [JavaScript]扩展运算符
    顺便补充一点Array.reduce((prev,curv)=>{}, ori)的运用letarr1=[1,3,5,7,9]letarr2=[2,4,6,8,10]console.log(...arr1);//展开一个数组----->13579letarr3=[...arr1,...arr2]//连接数组//......
  • Java设计模式-策略模式-基于Spring实现
    1、策略模式1.1、概述策略模式是一种行为设计模式,它允许在运行时选择算法的行为。它将算法封装在独立的策略类中,使得它们可以相互替换,而不影响客户端代码。这种模式通过将算法的选择从客户端代码中分离出来,提供了更大的灵活性和可维护性。在Java中,策略模式的设计理念可以通过以......
  • 第八章、web前端架构师
    目录十六、编辑器服务端基础API开发1、技术方案设计和基本功能开发2、技术方案设计3、接口设计4、RestfulAPIvsGraphQL5、数据库设计6、server架构设计7、技术方案设计8、基本功能开发9、登录功能10、用户信息接口11、作品管理接口12、模板接口十七、编辑器服务端调用第三方服......
  • 如何基于three.js(webgl)引擎架构,研发一套通过配置就能自动生成的3D机房系统
    序:这几年观察下来,大部分做物联网三维可视化解决方案的企业或个人,基本都绕不开3D机房。包括前面也讲过这样的案例《使用webgl(three.js)创建自动化抽象化3D机房,3D机房模块详细介绍(抽象版一)》 《 使用webgl(three.js)创建科技版3D机房,3D机房微模块详细介绍(升级版三)——......
  • Java多态及类初始化顺序
    多态多态是Java面向对象的三大特性之一,多态建立于封装和继承之上,指对于父类中定义的属性和方法被子类继承后,可以具有不同的数据类型或表现出不同的行为。可分为编译时多态和运行时多态,编译时多态是静态的,通过方法的重载体现,通过编译之后会产生不同的方法;运行时多态通过动态绑定......
  • 文件包含漏洞在phpinfo条件竞争下获取WebShell
    PHP文件包含漏洞(利用phpinfo与条件竞争)在PHP环境下,如果网站存在本地文件包含漏洞,但找不到可以包含的文件时,我们可以通过条件竞争来包含缓存文件的方法来获取webshell。又因为临时文件名是随机的,如果目标网站上存在phpinfo,则可以通过phpinfo来获取临时文件名,进而进行包含。前提......
  • Java SWT Image 图像 —— 透明度 alpha数组
    对于图像深度是2、4、8的图像,可以指定transparentPixel。对于直接图像,要使用alpha或者alpha数组,alpha值0到255,0表示完全透明的,数值越大表示越是不透明,255表示完全不透明,可以只是设置一个alpha值,作用于所有的像素点,也可以给所有的像素点设置自己的透明的值。 如: 的alpha的数组值为......
  • Java SWT Image 图像 —— mask
    原文链接:http://www.eclipse.org/articles/Article-SWT-images/graphics-resources.htmlPaletteDatapaletteData=newPaletteData(newRGB[]{newRGB(0,0,0),newRGB(255,255,255)});ImageDatasourceData=newImageData(32,32,1,paletteData);ImageDatamaskData=......
  • Java SWT Image 图像 —— 变灰、变亮变黑、旋转、反色、拉伸、透明叠加
    图像变灰图像变灰在桌面应用程序中有着广泛的应用。例如,一个图标被作为一个按钮的背景,我们需要一个灰色效果的图标作为按钮的背景来表示这个按钮处于禁用状态。在SWT中,基于已经存在的图像来创建一个具有灰色效果的图像,我们可以使用构造函数Image(Displaydisplay,Imageimage,in......