JavaWeb Tomcat启动、部署、配置、集成IDEA

web服务器软件

服务器是安装了服务器软件的计算机,在web服务器软件中,可以部署web项目,让用户通过浏览器来访问这些项目。

Web服务器是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是"提供网上信息浏览服务"。

web服务器软件:接收用户的请求,处理请求,做出响应。

常见的java相关的web服务器软件:

  • webLogic: oracle公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
  • webSphere: IBM公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
  • JBOSS: JBOSS公司的,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
  • Tomcat: Apache基金组织,中小型的JavaEE服务器,仅仅支持少量的JavaEE规范servlet/jsp。开源的,免费的。

Tomcat

Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范。

因为Tomcat支持Servlet/JSP规范,所以Tomcat也被称为Web容器、Servlet容器。Servlet需要依赖Tomcat才能运行。

Tomcat的官网:https://tomcat.apache.org/

Tomcat在解压缩的时候,解压所在的目录可以任意,但最好解压到一个不包含中文和空格的目录,因为后期在部署项目的时候,如果路径有中文或者空格可能会导致程序部署失败。

在这里插入图片描述

  • bin:目录下有两类文件,一种是以.bat结尾的,是Windows系统的可执行文件,一种是以.sh结尾的,是Linux系统的可执行文件。
  • webapps:就是以后项目部署的目录。

启动/关闭

启动:双击bin\startup.bat 即可

关闭:

  • 强制关闭:直接x掉运行窗口,不建议
  • 正常关闭:bin\shutdown.bat
  • 正常关闭:ctrl+c

可能遇到的问题

启动窗口一闪而过

没有正确配置JAVA_HOME环境变量,或已经开启了Tomcat

控制台中文乱码

tomcat的日志配置文件的编码需要修改,找到tomcat安装目录,找到conf/logging.properties文件,将其中的java.util.logging.ConsoleHandler.encoding = UTF-8的修改为GBK 即可。

端口号冲突

在这里插入图片描述

  • 暴力解决:找到占用的端口号,并且找到对应的进程,杀死该进程 netstat -ano
  • 温柔解决:修改自身的端口号,在conf/server.xml文件中修改,一般会将tomcat的默认端口号修改为80。80端口号是http协议的默认端口号,在访问时,就不用输入端口号。
<Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8445" />

部署

  1. 直接将项目放到webapps目录下即可。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 将项目打成一个war包,再将war包放置到webapps目录下。

在这里插入图片描述

配置

可以在conf/server.xml文件中进行映射配置。

比如:项目存放的路径为D:\hello ,不放在webapps目录中,可以在标签体中配置:

<Context docBase="D:\hello" path="/hehe" />
  • docBase:项目存放的路径
  • path:虚拟目录

在这里插入图片描述

也可以在conf\Catalina\localhost创建任意名称的xml文件。url映射的路径就是xml文件的名称。

在文件中编写:

<Context docBase="D:\hello" />

在这里插入图片描述
在这里插入图片描述

Maven创建Web项目

Web项目的结构分为:开发中的项目开发完可以部署的Web项目,这两种项目的结构是不一样的。

开发中的项目:

在这里插入图片描述

需要在pom.xml文件中配置打包方式为war(默认为jar),这样使用Maven的package 命令即可生成war包。

在这里插入图片描述

使用骨架创建web项目:

在这里插入图片描述

不使用骨架创建web项目:

在这里插入图片描述

开发完成部署的Web项目:

在这里插入图片描述

  • 开发项目通过执行Maven打包命令package,可以获取到部署的Web项目目录
  • 编译后的Java字节码文件和resources的资源文件,会被放到WEB-INF下的classes目录下
  • pom.xml中依赖坐标对应的jar包,会被放入WEB-INF下的lib目录下

IDEA集成Tomcat

第一种:使用本地的Tomcat

在这里插入图片描述

第二种:使用Tomcat Maven插件

Maven Tomcat插件目前只有Tomcat7版本,没有更高的版本可以使用,要想修改Tomcat的端口和访问路径,可以直接修改pom.xml。

  1. 在pom.xml中添加Tomcat插件
<build><plugins><!--Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>80</port><!--访问端口号 --><!--项目访问路径未配置访问路径: http://localhost:80/tomcat-demo2/a.html配置/后访问路径: http://localhost:80/a.html如果配置成 /hello,访问路径会变成 http://localhost:80/hello/a.html--><path>/</path></configuration></plugin></plugins>
</build>

启动:

在这里插入图片描述

可能遇到的问题

IDEA输出乱码问题

因为IDEA是使用UTF-8格式的,而Windows使用的是GBK,所以要把刚刚修改的编码重新修改为UTF-8格式的:

找到tomcat安装目录,找到conf/logging.properties文件,确保其中的java.util.logging.ConsoleHandler.encoding = UTF-8的编码格式为UTF-8

在这里插入图片描述

看不到Run Maven和Debug Maven

使用插件启动时,如果选中项目并右键点击后,看不到Run Maven和Debug Maven,这个时候就需要在IDEA中下载Maven Helper插件,具体的操作方式为: File --> Settings --> Plugins --> Maven Helper --> Install,安装完后按照提示重启IDEA,就可以看到了。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/718761.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB读取txt文本数据及可视化指南

MATLAB读取txt文本数据的说明指南 目录 MATLAB读取txt文本数据的说明指南摘要1. 数据准备2. 读取数据3. 绘制图形4. 小结 摘要 在MATLAB中&#xff0c;读取txt文本格式文件数据是一项基本的操作&#xff0c;特别是在数据分析和可视化方面。本文将介绍如何使用MATLAB读取txt文本…

C++ 基础知识

一. 预备知识 1. C的编程方式 过程性语言 (结构化、自顶向下)、面向对象语言、泛型编程 (创建独立于类型的代码) 2. 创建源代码文件的技巧 扩展名&#xff1a;.cpp 二. 第一个程序 - HelloWorld main() 入口点 返回 int 标准库 iostream std: 标准库的缩写 Statement…

HarmonyOS-使用call事件拉起指定UIAbility到后台

使用call事件拉起指定UIAbility到后台 许多应用希望借助卡片的能力&#xff0c;实现和应用在前台时相同的功能。例如音乐卡片&#xff0c;卡片上提供播放、暂停等按钮&#xff0c;点击不同按钮将触发音乐应用的不同功能&#xff0c;进而提高用户的体验。在卡片中使用postCardA…

科技的成就(五十七)

535、Machine Learning "1959 年 7 月&#xff0c;塞缪尔首创 Machine Learning 一词。塞缪尔在“Some Studies in Machine Learning Using theGame of Checkers”一文中给 Machine Learning 下了个非正式定义&#xff1a;没有明确编程指令的情况下&#xff0c;能让计算机…

【js中的作用域】

理解 js中的作用我们可以分为三个部分 全局作用域函数作用域块级作用域 全局作用域 不在任何函数内部或者大括号中声明的变量,都是再全局作用域下,全局声明的变量可以在程序中的任何位置访问 函数作用域 函数作用域也叫局部作用域,如果一个变量声名在一个函数内部,那么它…

LSTM进行字符级文本生成(pytorch实现)

文章目录 基于pytorch的LSTM进行字符集文本生成前言一、数据集二、代码实现 1.到入库和LSTM进行模型构建2.数据预处理函数3.训练函数4.预测函数5.文本生成函数6.主函数完整代码总结 前言 本文介绍了机器学习中深度学习的内容使用pytorch构建LSTM模型进行字符级文本生成任务 一…

王者荣耀整蛊搭建直播新玩法/obs贴纸配置教程

最近很火的王者荣耀整蛊直播&#xff0c;相信很多玩王者的玩家也想开一个直播&#xff0c;但是看到这种直播娱乐效果很有意思也想搭建一个&#xff0c;这里梦哥给大家出了一期搭建的教程&#xff01; 进阶版视频教程&#xff1a; 这期的教程是进阶版新玩法升级&#xff0c;具体…

Vue3:使用 Composition API 不需要 Pinia

在 Vue.js 开发的动态环境中&#xff0c;在单个组件中处理复杂的业务逻辑可能会导致笨重的文件和维护噩梦。虽然 Pinia 提供集中式状态管理&#xff0c;但仅依赖它来处理复杂的业务逻辑可能会导致代码混乱。本文探讨了使用 Composition API 的替代方法&#xff0c;说明开发人员…

数据库表 索引

目录 一、索引的分类 1、按存储形式: 1&#xff09;B-TREE索引&#xff1a; 2&#xff09;位图索引&#xff1a; 3&#xff09;反向键索引&#xff1a; 4&#xff09;基于函数的索引&#xff1a; 2、按唯一性&#xff1a; 1&#xff09;唯一索引&#xff1a; 3、按列的个数…

代码随想录算法训练营第八天

344. 反转字符串 方法&#xff1a; 方法一&#xff1a; 直接用reverse函数 注意&#xff1a; 代码&#xff1a; class Solution { public:void reverseString(vector<char>& s) {return reverse(s.begin(), s.end());} };运行结果&#xff1a; 方法&#xff1…

解释前端路由的概念,以及单页应用(SPA)和多页应用(MPA)的区别

前端路由是现代Web应用中的一种设计模式&#xff0c;它允许用户在单个网页应用程序&#xff08;SPA&#xff09;内部通过改变URL而无需重新加载整个页面来切换不同的视图或内容。在传统的多页应用&#xff08;MPA&#xff09;中&#xff0c;每访问一个新页面&#xff0c;浏览器…

搜索算法(算法竞赛、蓝桥杯)--双向DFS+二分查找

1、B站视频链接&#xff1a;B26 双向DFS 送礼物_哔哩哔哩_bilibili #include <bits/stdc.h> using namespace std; int n,m; int g[46];//存储所有物品的质量 int w[1<<23];//存储所有能凑出来的重量 int ans,cnt;//w的个数是cnt//搜索第u个数&#xff0c;和为s; …

Geeker Admin添加若以分离版本的后台作为后台

添加验证码 下载若依赖前后端分离版本&#xff0c;配置好自己数据库&#xff0c;redis连接地址 登录添加验证码 配置自己的若依后端连接地址 添加验证码请求方法 登录页面登录输入框添加验证码&#xff0c;uuid,调用的验证码刷新方法 注意&#xff1a;这里要用响应式定义验证…

5_怎么看原理图之协议类接口之NAND Flash笔记

NAND Flash原理图&#xff1a; 由NAND Flash的原理图可以看出&#xff0c;做为一个存储芯片&#xff0c;只有I/O引脚&#xff0c;并没有地址引脚&#xff0c;怎么传地址&#xff1f;遵循一定的规范&#xff0c;先通过LDATA把地址传出去&#xff0c;再传数据。具体的需要查看芯片…

vue前端数据转换显示

<el-table-column label"项目模板名称" align"center" prop"tempName" width"180" :formatter"templFormat" /> :formatter"templFormat" // 模板名单 optionTempls: [], // datas value templFormat(row,…

HTTP Cookie 你了解多少?

Cookie是什么&#xff1f; 先给大家举个例子&#xff0c;F12 打开浏览器的页面之后&#xff0c;我们能在 Response Headers 的字段里面看到一个header 叫做 Set-Cookie&#xff0c;如下所示 图中包含的 Set-Cookie 为 Set-Cookie:uuid_tt_dd10_20293537580-1709432565344-232…

Transformer模型分布式并行通信量浅析

1.数据并行DP&#xff08;朴素数据并行&#xff0c;Zero数据并行之后补充&#xff09; O ( h 2 ∗ l ) O(h^2*l) O(h2∗l) 每台机器做完自己的梯度后需要做一次All reduce操作来累积梯度&#xff0c;故一个batch计算发送的数据量为每层梯度大小 h 2 h^2 h2乘以层数 l l l 优点…

【李沐论文精读】Resnet精读

论文地址&#xff1a;Deep Residual Learning for Image Recognition 参考&#xff1a;撑起计算机视觉半边天的ResNet【论文精读】、ResNet论文逐段精读【论文精读】、【李沐论文精读系列】 一、导论 深度神经网络的优点&#xff1a;可以加很多层把网络变得特别深&#xff0c;…

力扣周赛387

第一题 代码 package Competition.The387Competitioin;public class Demo1 {public static void main(String[] args) {}public int[] resultArray(int[] nums) {int ans[]new int[nums.length];int arr1[]new int[nums.length];int arr2[]new int[nums.length];if(nums.leng…

Linux系统Docker部署RStudio Server

文章目录 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. 公网远程访问RStudio6. 固定RStudio公网地址 前言 RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE&#xff0c;并通过 Web 浏览器进行访问…