tomcat简介

Tomcat是一个开源、免费、轻量级的web服务器,只支持部分JavaEE规范(Servlet、JSP),适合部署中小型、并发访问量不大的web项目,是部署中小型Java Web项目的首选。

TomcatNginxApacheWeb服务器一样,具有处理静态资源的能力,但Tomcat处理静态HTML的能力不如Nginx、Apache。

一般使用Nginx+TomcatNginx处理静态资源,Tomcat处理动态资源。

Tomcat就是Servlet容器。


tomcat的目录结构

下载tomcat的zip压缩包,

  • bin    存放启动和关闭tomcat的脚本
  • conf  存放tomcat配置相关的文件,主要包括server.xml(tomcat服务器的主要配置文件)、web.xml(为部署的web应用设置默认值的文件)
  • lib   存放Tomcat运行需要的jar包
  • logs   存放Tomcat的日志文件
  • temp   存放临时文件
  • webapps   web app的根目录,主要用于部署web项目。里面有几个tomcat自带的web项目,root是根项目——tomcat的控制台,127.0.0.1:8080显示的那个。
  • work   存放Tomcat运行时的临时文件(主要是JSP编译出的Servlet的.java和.class文件),如在Tomcat运行时删除此目录,JSP页面将不能运行

环境变量的配置

  • CATALINA_HOME   值是tomcat的主目录

注意是主目录,不是主目录下的bin目录。

tomcat依赖jdk,需要设置jdk的环境变量。

设置之后就可以双击startup.bat启动tomcat了。

如果要在命令行下操作tomcat,有2种方式:

  • 在PATH环境变量中添加tomcat的bin目录。此种方式在命令提示符的任意路径下都可启动、关闭tomcat。
  • 先把当前路径切换到tomcat的bin目录(程序所在目录),再执行启动、关闭命令。

在命令提示符下,执行java、javac也是同样的道理。


tomcat的2种启动、关闭方式

  • 双击bin下的startup.bat启动,双击shutdown.bat关闭

  • 命令行下startup启动,shutdown关闭

如果tomcat启动不了,可以在命令行下启动试试。

因为命令行下启动不了会打印错误信息,有提示;双击startup.bat启动不了,啥都没有,没有提示信息。
 
 

启动tomcat后,在浏览器地址栏输入localhost:8080,或者127.0.0.1:8080,可转到tomcat服务器的控制台。

startup.bat只是tomcat的启动入口,和编程中的主类、主函数差不多,只是程序入口,调用其它模块就行了。

startup.bat实际是调用catalina.bat来完成启动的,catalina.bat负责启动,startup.bat只负责调用catalina.bat。


tomcat启动不了的常见原因

  • 环境变量未配好,参考上面环境变量的配置
  • 其它程序占用了8080端口

比如已经有一个启动的tomcat了、IDEA中正在使用tomcat进行调试,或者8080端口被其它程序占用。

apache使用的端口号默认是80,tomcat使用的端口号默认是8080。

如果url中未指定端口号,浏览器默认使用80端口。服务器使用的不是80端口时,我们需要手动在域名|IP地址后面指定端口号。

一个程序可以使用多个端口,但一个端口不能同时被多个程序使用。

命令提示符 netstat  -ano  查看正在使用的端口

也可以使用netstat  -ano  |  findstr  8080   直接查看8080端口:

8080引不引都行

如果端口号被占用,有2种解决方式:

  • 关闭使用8080端口的其它程序:打开任务管理器,结束PID对应的进程。
  • 修改tomcat的端口号:conf -> server.xml
    <Connector port="" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

    将8080改为其它未使用的端口号。

     访问时,浏览器地址中的端口号也要换为对应的。


解决tomcat窗口中文乱码

中文乱码原因:

windows的控制台(黑框框)默认使用gbk,tomcat的日志默认使用utf-8(tomcat会把日志输出到黑框框、log文件夹下的日志文件中)。

tomcat用utf-8编码日志,把日志输出给windows的黑框框,windows使用gbk来解码,显式日志信息,

utf-8用3个字节表示一个中文字符,gbk用2个字节表示一个中文字符,对不上,解析不了,乱码。

英文都是1个字节,都是ASCII码,能解析,正常显示。

解决方式:

conf -> logging.properties -> 搜索console:

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = GBK

tomcat使用的是jdk自带的日志处理器。

一看到console,就知道是输出到控制台的日志,将UTF-8改为GBK,重启tomcat即可。

Windows下使用Tomcat的更多相关文章

  1. 如何在Windows下安装Tomcat服务器

    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选服务器.在Windows下安装 ...

  2. windows下注册tomcat服务以及设置jvm参数

    注册服务: 1 >cd /d D:\Java\tomcat-7.0.57-Css\bin //进入目录 1 >service.bat install  //注册服务,同理删除服务为 rem ...

  3. 【Tomcat】 windows下注册tomcat服务以及设置jvm参数

    注册服务: 1 >cd /d D:\Java\tomcat-7.0.57-Css\bin //进入目录 1 >service.bat install  //注册服务,同理删除服务为 rem ...

  4. Windows下apache+tomcat负载均衡

    Windows下apache+tomcat负载均衡 网上已经有很多的资料,但是很多都比较零碎,需要整合一起才能搭建出理想的负载均衡,正好前段时间搭建了windows与linux下的负载均衡,在此记录, ...

  5. windows下配置tomcat服务器的jvm内存大小的两种方式

    难得遇到一次java堆内存溢出(心里想着,终于可以来一次jvm性能优化了$$) 先看下报错信息, java.lang.OutOfMemoryError: GC overhead limit excee ...

  6. 从零开始学 Java - Windows 下安装 Tomcat

    谁都想分一杯羹 没有一个人是真正的无私到伟大的,我们试着说着做自己,与人为善,世界和平!殊不知,他们的真实目的当你知道后,你会被恶心到直摇头并下意识地迅速跑开,下辈子都不想见到他.不过,他没错,你也没 ...

  7. 让Windows下的Tomcat将控制台信息记录到日志

    在开发的过程中经常出现包冲突,却不知道怎么回事,可以在 catalina.bat 里面设置查看class加载日志   set CATALINA_OPTS=-server -Xdebug -Xnoage ...

  8. Linux和windows下修改tomcat内存

    原文地址:https://www.cnblogs.com/wdpnodecodes/p/8036333.html 由于服务器上放的tomcat太多,造成内存溢出. 常见的内存溢出有以下两种: java ...

  9. Windows下安装tomcat

    一.Tomcat下载与安装: 1.直接到官网下载Tomcat安装程序包:http://tomcat.apache.org/ 2.下载下来后是个压缩包,如:apache-tomcat-8.0.26,解压 ...

随机推荐

  1. 基于贝叶斯模型和KNN模型分别对手写体数字进行识别

    首先,我们准备了0~9的训练集和测试集,这些手写体全部经过像素转换,用0,1表示,有颜色的区域为0,没有颜色的区域为1.实现代码如下: # 图片处理 # 先将所有图片转为固定宽高,比如32*,然后再进 ...

  2. sublime3常用环境配置

    如何设置侧边栏颜色 Ctrl+Shift+P -> install -> 搜索安装包SyncedSidebarBg,自动同步侧边栏底色为编辑窗口底色. 设置快捷键让html文件在浏览器窗口 ...

  3. nginx 变量相关的map模块与split_clients模块及geo模块和geoip模块及keepalive介绍

    map 模块指令默认编译进nginx的 Syntax: map string $variable { ... } # 表示string匹配到{}里的值或变量赋值给$variable Default: ...

  4. 1-使用React的方式

    认识 React React是一个用于构建用户界面的 JAVASCRIPT 库.(JQuery也是) React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图).mvvm Rea ...

  5. Java基础 -2.5

    布尔数据boolean类型 布尔类型的取值范围只有两个数据:true false. public class ddd { public static void main(String[] args) ...

  6. Linux centosVMware zabbix主动模式和被动模式、添加监控主机、添加自定义模板、处理图形中的乱码、自动发现

    一.主动模式和被动模式 主动或者被动是相对客户端来讲的 被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接,并把监控信息传递给服务端 主动模式,客户端会主动把监控数据汇报给服务端, ...

  7. 一文解读XaaS (转)

    艾克赛斯???别慌,读完你就知道啦~ 服务和云服务 了解Xaas云服务,不妨从了解服务开始. “服务”在本质上是一种租赁,它对资源的占用方式是“为我所用”而非“为我所有”,对资源的消费模式是按需付费而 ...

  8. sklearn中调用集成学习算法

    1.集成学习是指对于同一个基础数据集使用不同的机器学习算法进行训练,最后结合不同的算法给出的意见进行决策,这个方法兼顾了许多算法的"意见",比较全面,因此在机器学习领域也使用地非常 ...

  9. WebGL 渲染管线

    WebGL 是以 OpenGL ES 2.0 为基础的 3D 编程应用接口. WebGL依赖GPU的图形渲染能力,即依赖硬件设备,所以其渲染流程和GPU内部的渲染管线是相符的.渲染管线的作用是将3D模 ...

  10. Linux下,Tomcat启动成功,发现ip:8080访问失败

    Linux下,Tomcat启动成功,发现ip:8080访问失败 Chasel_H 2018.04.23 20:47* 字数 195 阅读 566评论 0喜欢 3 相信很多人都和我一样,在Linux环境 ...