当前位置: 首页 > news >正文

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,就可以看到了。

在这里插入图片描述

相关文章:

  • spark-sql显示字段名称
  • 大数据入门之hadoop学习
  • GEE在灾害预警中的遥感云大数据应用及GPT模型辅助分析
  • HTTPS运行加密的过程
  • QNX应用开发实用命令
  • uniapp的h5端在线预览文件
  • go调用 c++中数组指针相关
  • 植物病虫害:YOLO水稻虫害识别数据集(6类,五千余张图像,标注完整)
  • js【详解】原型 vs 原型链
  • [XS2123] 集成功率 MOSFET V1.0, IEEE 802.3af 兼容的 PD 和 DC/DC 控制器
  • 软件测试--性能测试工具JMeter
  • 如何构建Hive数据仓库Hive 、数据仓库的存储方式 以及hive数据的导入导出
  • maven 包管理平台-07-plugins 常见插件介绍
  • Java 简历优化及注意事项
  • AI数据分析软件-BeepBI的诞生结束了传统BI时代,引领了数据分析零门槛的时代
  • php的引用
  • 【Leetcode】101. 对称二叉树
  • 5、React组件事件详解
  • k个最大的数及变种小结
  • log4j2输出到kafka
  • nodejs调试方法
  • SpiderData 2019年2月23日 DApp数据排行榜
  • spring security oauth2 password授权模式
  • uva 10370 Above Average
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 看域名解析域名安全对SEO的影响
  • 区块链共识机制优缺点对比都是什么
  • 少走弯路,给Java 1~5 年程序员的建议
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 无服务器化是企业 IT 架构的未来吗?
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 大数据全解:定义、价值及挑战
  • #QT(TCP网络编程-服务端)
  • $.ajax()方法详解
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (poj1.3.2)1791(构造法模拟)
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • ..回顾17,展望18
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .net core开源商城系统源码,支持可视化布局小程序
  • .net 生成二级域名
  • .net和php怎么连接,php和apache之间如何连接
  • .net项目IIS、VS 附加进程调试
  • :not(:first-child)和:not(:last-child)的用法
  • @Pointcut 使用
  • @RequestBody的使用
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt
  • [C#]C#学习笔记-CIL和动态程序集