Tomcat服务器

Tomcat使用

Tomcat下载

官网地址:Apache Tomcat - Apache Tomcat 8 Software Downloads

下载Windows 64位版Tomcat绿色解压包

下载Tomcat源码包(zip)

Tomcat安装

将Tomcat绿色版解压至无中文目录下

Tomcat目录结构

  • bin(binary):存放启动、关闭Tomcat的命令
  • conf(configuration):存放Tomcat的配置文件
  • lib:存放Tomcat运行所需要的依赖包(jar)
  • logs:存放Tomcat的运行日志
  • temp:存放Tomcat运行过程中产生的临时文件
  • webapps(重点):存放自己用于发布的网站资源
  • work:存放运行过程中生成的非临时文件
  • RUNNING.txt:存放当前Tomcat版本信息

启动和关闭Tomcat

启动Tomcat

双击startup.bat批处理脚本,开启Tomcat

注意:看到“Server startup in ms”表示tomcat启动成功!

关闭Tomcat

Tomcat三种关闭方式
  1. 直接关闭Tomcat自启动窗口(强制关闭)

  1. 双击运行shutdown.bat脚本关闭Tomcat(温柔关闭)

  2. 在Tomcat自启动窗口两次ctrl+c,效果等同于双击运行shutdown.bat脚本

Tomcat启动报错分析

java环境变量问题

现象:启动Tomcat时,黑窗口一闪而过,不到半秒

问题原因:本机没有配置java环境变量

解决方案:在本机添加JAVA_HOME环境变量,并将JAVA_HOME添加到系统路径Path中

8080端口被占用

现象:启动时报错,dos窗口等待一会儿自动关闭

解决方案:

1、找到占用端口的进程,杀死进程

netstat -ano | findstr "8080"

根据以上命令运行结果得出占用端口的进程id号,打开任务管理器,点击详细信息,根据PID找到具体的任务,右击--结束任务

2、更改Tomcat默认端口号

进入Tomcat安装目录找到/conf/server.xml文件修改

端口号修改范围:1024~65535之间,只要不与其他软件冲突即可

Tomcat运行所占用的端口号

在Tomcat安装目录下,找到conf/server.xml文件,看到如下配置

从上面两张图中,可以看出:在Tomcat运行过程中,会占用两个端口:8005和8080,因此,若要在一台机器上运行多个Tomcat服务,需要修改这两个端口号,否则会产生端口冲突

Tomcat窗口中文乱码问题

现象:双击Tomcat安装目录/bin/startup.bat脚本,启动Tomcat,打开黑窗口,存在中文乱码

原因:Tomcat运行编码与dos窗口默认编码不一致

Tomcat运行dos窗口默认编码:GBK

在Tomcat安装目录下的conf/目录下找到logging.properties文件查看默认控制台编码

解决方案:

将Tomcat默认控制台编码修改为:GBK

Tomcat发布项目的三种方式

webapps部署(最简单)

准备用于测试的网页数据

在D盘下新建webapps目录,在此目录下创建myapp代表我们要发布的数据文件夹

在myapp目录中创建index.html网页文件

在index.html中写入如下内容

<h1>hello,tomcat</h1>

将myapp文件夹复制到Tomcat安装目录下的webapps目录下

通过浏览器访问myapp中的index.html网页文件

注意:在浏览器中编写的url路径是web资源的虚拟路径,而对应的资源存储在计算机硬盘上,存在一个真实路径,在访问的过程中,是将虚拟路径与真实路径进行映射

部署模式特点

优点:热部署(当Tomcat安装目录下的webapps中的项目代码更新之后,页面可自动更新(刷新即可),无需重启Tomcat)

缺点:每次网页的更新,都需要将项目代码重新复制到Tomcat的webapps下

server.xml部署(了解)

在Tomcat安装目录下的conf/server.xml中找到了标签,在其中添加标签,用于配置项目文件真实路径与虚拟路径的映射关系,可以直接将映射目录修改为项目所在目录,则Tomcat可以根据Tomcat直接访问到项目资源,不再需要将项目代码文件复制到webapps目录中

  • path:配置虚拟路径
  • docBase:配置真实路径
部署模式缺点

1、修改完server.xml文件之后,需要重启Tomcat才能生效

2、server.xml文件是Tomcat的核心配置文件,一不小心,Tomcat就会启动失败

独立xml部署(开发时使用)

在Tomcat安装目录下conf/Catalina/localhost/目录下创建一个xml文件,在其中直接添加标签

在myapp.xml文件中添加标签

注意:

  • xml文件名称就是虚拟路径
  • 添加的标签中,不需要添加path虚拟路径参数

在idea中使用Tomcat(必须要会)

在idea中配置Tomcat

首先在idea中创建一个空项目

在idea中设置显示工具栏

在idea中添加Tomcat本地配置

配置应用服务,点击Configuration按钮

选择Tomcat安装目录

点击ok—>aply—>ok完成配置

idea中创建WEB项目

参数解读:

  • name:项目名称
  • Template:勾选Web application,勾选之后程序会帮助我们创建web工程必须的web.xml文件
  • Application server:选择项目要发布的WEB服务
  • jdk:选择本地java

点击 create

目录内容解读

src目录:编写java代码的地方

WEB-INF:安全目录,该目录中的内容不能通过浏览器直接访问

web.xml:web工程的核心配置文件

index.jsp(可以删除):访问页面,相当于index.html

注意:下图中index.html文件位置错误

在idea中发布web工程

在idea中编辑配置

参数解读

  • Name:启用的Tomcat服务名称(名称可以随意起,只要自己可以分辨即可)
  • Application server:用于配置web服务器相关信息
  • Open browser:配置Tomcat启动后自动打开的浏览器类型,并向指定的url发送请求
  • On 'Update' action:配置在Tomcat服务器上发布的代码发生改变之后,自动更新
  • Tomcat Server Settings:配置Tomcat服务相关信息(http端口(这里修改之后,相当于修改server.xml))

idea中部署项目到Tomcat

启动Tomcat服务(普通启动和debug启动)

启动成功,自动打开浏览器访问index.html页面

当Tomcat启动成功后,向web工程项目发起请求,自动匹配index.html(如果没有,则寻找index.jsp)

idea中配置Tomcat项目热部署

点击apply—>ok

注意:热部署只适合页面资源,不适合后台代码

部署经验

在创建的web工程中有一个WEB-INFO文件夹,这是一个安全目录,其中的内容不可以直接被浏览器访问

在实际开发中,尽量不要在其中编写网页代码

Tomcat入门学习笔记的更多相关文章

  1. Hadoop入门学习笔记---part4

    紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...

  2. Hadoop入门学习笔记---part3

    2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...

  3. PyQt4入门学习笔记(三)

    # PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...

  4. PyQt4入门学习笔记(一)

    PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...

  5. Hadoop入门学习笔记---part2

    在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...

  6. Hadoop入门学习笔记---part1

    随着毕业设计的进行,大学四年正式进入尾声.任你玩四年的大学的最后一次作业最后在激烈的选题中尘埃落定.无论选择了怎样的选题,无论最后的结果是怎样的,对于大学里面的这最后一份作业,也希望自己能够尽心尽力, ...

  7. Scala入门学习笔记三--数组使用

    前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提 ...

  8. OpenCV入门学习笔记

    OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源 ...

  9. stylus入门学习笔记

    title: stylus入门学习笔记 date: 2018-09-06 17:35:28 tags: [stylus] description: 学习到 vue, 有人推荐使用 stylus 这个 ...

随机推荐

  1. BUUCTF-后门查杀

    后门查杀 后门查杀这种题最好还是整个D盾直接扫描目录方便. 查看文件得到flag

  2. React与Koa一起打造一个功能丰富的全栈个人博客(业务篇)

    前言 豆哥的个人博客又改版了,本版主要技术栈是前台用的React,后台用的Koa.博客改版的初衷是自己可以练练React(公司的项目部分要用React,我也没法啊,再说早晚得学).本文主要介绍博客的业 ...

  3. SAP - 拆包,组件入库

    场景: 一个成品商品,例如汽车,有很多零部件:车轮,框架,发动机等.以整体形式发货过账,在遇到质量问题客户退货情况,需要把汽车拆开,然后零部件退回到库(按照BOM结构拆卸). MB1A/MIGO:发货 ...

  4. AspNetCore&云效Flow持续集成

    如今有了越来越多的持续集成工具,给的个人开发者的福利也是很足了,如无必要,自建工具有时只是作为练手了. 众多持续集成工具 现在可用的持续集成工具繁多,各大云服务商都推出了持续集成,甚至是一定条件内都是 ...

  5. NC14583 糖糖别胡说,我真的不是签到题目

    NC14583 糖糖别胡说,我真的不是签到题目 题目 题目描述 从前,有 \(n\) 只萌萌的糖糖,他们分成了两组一起玩游戏.他们会排成一排,第 \(i\) 只糖糖会随机得到一个能力值 \(b_i\) ...

  6. WPF双滑块控件以及强制捕获鼠标事件焦点

    效果 概述 最近有个小需求要用双滑块表示一个取值范围,于是就简单做了个用户控件,在此记录下. 使用矩形Rectangle表示范围,椭圆Ellipse表示滑块,使用Canvas控制滑块的左右移动. 椭圆 ...

  7. 基于SqlSugar的开发框架循序渐进介绍(10)-- 利用axios组件的封装,实现对后端API数据的访问和基类的统一封装处理

    在SqlSugar的开发框架的后端,我们基于Web API的封装了统一的返回结果,使得WebAPI的接口返回值更加简洁,而在前端,我们也需要统一对返回的结果进行解析,并获取和Web API接口对应的数 ...

  8. for_in循环

    for-in循环也可以简单称为for循环 in表达从(字符串,序列等)中依次取值,又称为遍历(全部都要取到) for-in遍历的对象必须是可迭代对象 目前可以简单认为只有字符串和序列是可迭代对象 它是 ...

  9. .NET WebAPI 使用 GroupName 对 Controller 分组呈现 Swagger UI

    在日常开发 webapi 时,我们往往会集成 swagger doc 进行 api 的文档呈现,当api数量比较多的时候就会导致 swagger ui 上的 api 因为数量太多而显得杂乱,今天教大家 ...

  10. 2539-SpringSecurity系列--在有安全验证的情况下做单元测试Test

    在有安全验证的情况下做单元测试Test 版本信息 <parent> <groupId>org.springframework.boot</groupId> < ...