zoukankan      html  css  js  c++  java
  • Windows下使用Tomcat

    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="8080" 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即可。

  • 相关阅读:
    leetcode刷题-26-删除有序数组重复项
    leetcode刷题-27-移除元素
    leetcode刷题-54-螺旋矩阵
    leetcode刷题-70-爬楼梯
    leetcode刷题-442-数组中重复的数据
    leetcode刷题-945-使数组唯一的最小增量
    leetcode刷题-11-盛最多水的容器
    random.choice函数
    Rating prediction and Ranking prediction
    Dev-c++在windows环境下无法debug(调试)的解决方案
  • 原文地址:https://www.cnblogs.com/chy18883701161/p/12254478.html
Copyright © 2011-2022 走看看