Tomcat安装及配置教程

步骤一:下载Tomcat

      链接如下:https://tomcat.apache.org/

注意:要根据自己的JDK版本选择Tomcat的版本。

因本人java版本为10.0.2,故选择Tomcat9.0.31版本(Windows请自行选择64位或32位)

步骤二:配置环境变量

新建系统环境变量:

修改系统Path(变量值末尾添加%CATALINA_HOME%\bin;):

保存即可。

步骤三:查询环境是否配置成功

ps:若出现上述内容,则环境配置成功

步骤四:启动Tomcat:使用命令:startup.bat

(此处可能出现闪退,导致启动不成功,请滑至文章结尾处查看解决办法)

ps:当出现Tomcat的命令框且在浏览器中输入http://localhost:8080/出现下述界面(注意,此时上述两个命令框不要关闭):

大功告成,Tomcat搭建成功!!!!

<问题>

Q:出现闪退怎么办(即:启动tomcatw.exe出现unable to open the service tomcat怎么办)?

A:打开命令行,输入命令service.bat install

再回到步骤四,重新启动Tomcat。

参考:链接一:https://jingyan.baidu.com/article/20b68a88592e06796cec6234.html

  • 152
    点赞
  • 807
    收藏
    觉得还不错? 一键收藏
  • 27
    评论
说明:10分虽然有点高 但东西值 重点是 我也只想搞点分数下东西 谢谢支持 目录 I 简介 1 概览 1 适合读者 1 servlet容器是如何工作的 1 catalina结构图 1 tomcat的版本4和版本5 2 章节简介 2 第1章 一个简单的Web服务器 3 1.1 The Hypertext Transfer Protocol (HTTP) 3 1.2 HTTP Request 3 1.3 HTTP Response 4 1.4 Socket类 4 1.5 ServerSocket类 5 1.6 应用举例 5 第2章 一个简单的servlet容器 7 2.1 简述 7 2.2 javax.servlet.Servlet接口 7 2.3 Application 1 7 2.3.1 HttpServer1类 8 2.3.2 Request类 8 2.3.3 Response类 9 2.3.4 StaticResourceProcessor类 9 2.3.5 ServletProcessor1类 9 2.4 Application 2 9 第3章 连接器(Connector) 11 3.1 概述 11 3.2 StringManager类 11 3.3 Application 12 3.3.1 启动 13 3.3.2 connector 13 3.3.3 创建HttpRequest对象 13 3.3.3.1 SocketInputStream类 14 3.3.3.2 解析请求行(request line) 14 3.3.3.3 解析请求头(request header) 14 3.3.3.4 解析cookie 15 3.3.3.5 获取参数 16 3.3.3.6 创建HttpResponse对象 16 3.3.3.7 静态资源处理器和servlet处理器 17 第4章 tomcat的默认连接器 18 4.1 简介 18 4.2 HTTP1.1的新特性 18 4.2.1 持久化连接 18 4.2.2 编码 18 4.2.3 状态码100的使用 19 4.3 Connector接口 19 4.4 HttpConnector类 20 4.4.1 创建ServerSocket 20 4.4.2 维护HttpProcessor对象池 20 4.4.3 提供Http请求服务 21 4.5 HttpProcessor类 21 4.6 request对象 24 4.7 response对象 24 4.8 处理request对象 25 4.8.1 解析连接 28 4.8.2 解析request 28 4.8.3 解析请求头 28 4.9 简单的container程序 30 第5章 container 31 5.1 Container接口 31 5.2 流水线(pipeline)任务 32 5.2.1 Pipeline 34 5.2.2 Valve接口 35 5.2.3 ValveContext接口 35 5.2.4 Contained接口 36 5.3 Wrapper应用程序 36 5.4 Context接口 36 5.5 Wrapper程序实例 36 5.5.1 ex05.pyrmont.core.SimpleLoader 37 5.5.2 ex05.pyrmont.core.SimplePipeline 37 5.5.3 ex05.pyrmont.core.SimpleWrapper 38 5.5.4 ex05.pyrmont.core.SimpleWrapperValve 38 5.5.5 ex05.pyrmont.valves.ClientIPLoggerValve 39 5.5.6 ex05.pyrmont.valves.HeaderLoggerValve 39 5.5.7 ex05.pyrmont.startup.Bootstrap1 39 5.6 Context程序实例 39 5.6.1 ex05.pyrmont.core.SimpleContextValve 40 5.6.2 ex05.pyrmont.core.SimpleContextMapper 41 5.6.3 ex05.pyrmont.core.SimpleContext 42 5.6.4 ex05.pyrmont.startup.Bootstrap2 42 第6章 生命周期(Lifecycle) 43 6.1 概述 43 6.2 Lifecycle接口 43 6.3 LifecycleEvent类 44 6.4 LifecycleListener接口 44 6.5 LifecycleSupport类 44 6.6 应用程序 45 6.6.1 ex06.pyrmont.core.SimpleContext 45 6.6.2 ex06.pyrmont.core.SimpleContextLifecycleListener 45 6.6.3 ex06.pyrmont.core.SimpleLoader 46 6.6.4 ex06.pyrmont.core.SimplePipeline 46 6.6.5 ex06.pyrmont.core.SimpleWrapper 46 第7章 Logger 47 7.1 概述 47 7.2 Logger 47 7.3 Tomcat's Loggers 47 7.3.1 LoggerBase类 48 7.3.2 SystemOutLogger类 48 7.3.3 SystemErrLogger类 48 7.3.4 FileLogger类 49 7.3.4.1 open方法 50 7.3.4.2 close方法 50 7.3.4.3 log方法 51 7.4 应用程序 51 第8章 Loader 52 8.1 概述 52 8.2 java本身的loader 52 8.3 Loader接口 53 8.4 Reloader接口 54 8.5 WebappLoader类 54 8.5.1 创建类载入器 55 8.5.2 设置repository 55 8.5.3 设置类路径 56 8.5.4 设置访问权限 56 8.5.5 开启新线程执行类的重新载入 56 8.6 WebappClassLoader类 57 8.6.1 类缓存 58 8.6.2 载入类 59 8.6.3 应用程序 59 第9章 session管理 62 9.1 概述 62 9.2 Sessions 62 9.2.1 Session接口 62 9.2.2 StandardSession类 63 9.2.3 StandardSessionFacade类 65 9.3 Manager 65 9.3.1 Manager接口 66 9.3.2 ManagerBase类 66 9.3.3 StandardManager类 67 9.3.4 PersistentManagerBase类 68 9.3.4.1 swap out(换出) 69 9.3.4.2 back up(备份) 69 9.3.5 PersistentManager类 70 9.3.6 DistributedManager类 70 9.4 Stores 71 9.4.1 StoreBase类 72 9.4.2 FileStore类 73 9.4.3 JDBCStore类 73 9.5 应用程序 73 9.5.1 Bootstrap类 73 9.5.2 SimpleWrapperValve类 74 第10章 安全性 76 10.1 概述 76 10.2 Realm(领域) 76 10.3 GenericPrincipal 77 10.4 LoginConfig 78 10.5 Authenticator 78 10.6 安装Authenticator 79 10.7 应用程序 79 10.7.1 ex10.pyrmont.core.SimpleContextConfig类 80 10.7.2 ex10.pyrmont.realm.SimpleRealm类 80 10.7.3 ex10.pyrmont.realm.SimpleUserDatabaseRealm 81 10.7.4 ex10.pyrmont.startup.Bootstrap1类 81 10.7.5 ex10.pyrmont.startup.Bootstrap2类 81 第11章 StandardWrapper 82 11.1 方法调用序列 82 11.2 SingleThreadModel 83 11.3 StandardWrapper 83 11.3.1 生成servlet 84 11.3.2 载入servlet 86 11.3.3 ServletConfig对象 90 11.3.3.1 getServletContext方法 90 11.3.3.2 getServletName方法 91 11.3.3.3 getInitParameter方法 91 11.3.3.4 getInitParameterNames方法 92 11.3.4 container的父子关系 92 11.4 StandardWrapperFacade类 93 11.5 StandardWrapperValve类 94 11.6 FilterDef类 95 11.7 ApplicationFilterConfig类 96 11.8 ApplicationFilterChain类 96 11.9 应用程序 97 第12章 StandardContext类 98 12.1 概述 98 12.2 StandardContext的配置 98 12.2.1 StandardContext类的构造函数 98 12.2.2 启动StandardContext 99 12.2.3 invoke方法 99 12.3 StandardContextMapper类 100 12.4 对重载的支持 104 12.5 backgroundProcess方法 105 第13章 Host和Engine 107 13.1 概述 107 13.2 Host接口 107 13.3 StandardHost类 107 13.4 StandardHostMapper类 109 13.5 StandardHostValve类 110 13.6 为什么必须要有一个host 111 13.7 应用程序1 111 13.8 Engine接口 112 13.9 StandardEngine类 112 13.10 StandardEngineValve类 112 13.11 应用程序2 113 第14章 Server与Service 114 14.1 概述 114 14.2 server 114 14.3 StandardServer 114 14.3.1 initialize方法 114 14.3.2 start方法 115 14.3.3 stop方法 115 14.3.4 await方法 116 14.4 Service接口 116 14.5 StandardService类 116 14.5.1 connector和container 117 14.5.2 与生命周期有关的方法 118 14.6 应用程序 120 14.6.1 Bootstrap类 120 14.6.2 Stopper类 121 第15章 Digester 122 15.1 概述 122 15.2 Digester 122 15.2.1 Digester类 123 15.2.1.1 创建对象 123 15.2.1.2 设置属性 124 15.2.1.3 调用方法 124 15.2.1.4 创建对象之间的关系 124 15.2.1.5 验证xml文档 125 15.2.2 Digester示例1 125 15.2.3 Digester示例2 125 15.2.4 Rule类 126 15.2.5 Digester示例3:使用UsingSet 127 15.3 ContextConfig 127 15.3.1 defaultConfig方法 129 15.3.2 applicationConfig方法 129 15.3.3 创建digester 130 15.4 应用程序 130 第16章 Shutdown Hook 131 16.1 概述 131 16.2 tomcat中的shutdown hook 131 第17章 启动tomcat 133 17.1 概述 133 17.2 Catalina类 133 17.2.1 start方法 134 17.2.2 stop方法 135 17.2.3 启动Digester 135 17.2.4 关闭Digester 135 17.3 Bootstrap类 136 第18章 部署器 137 18.1 概述 137 18.2 部署一个web应用 137 18.2.1 部署一个描述符 140 18.2.2 部署一个war 141 18.2.3 部署一个目录 142 18.2.4 动态部署 143 18.3 Deploy接口 145 18.4 StandardHostDeployer类 145 18.4.1 安装一个描述符文件 146 18.4.2 安装一个war文件或目录 147 18.4.3 启动context 148 18.4.4 停止一个context 149 第19章 Manager Servlet 150 19.1 概述 150 19.2 使用Manager应用 150 19.3 ContainerServlet接口 151 19.4 初始化ManagerServlet 152 19.5 列出已经部署的web应用 153 19.6 启动web应用 154 19.7 关闭web应用 155 第20章 基于JMX的管理 156 20.1 jmx简介 156 20.2 jmx api 157 20.2.1 MBeanServer 157 20.2.2 ObjectName 157 20.3 Standard MBeans 158 20.4 Model MBeans 159 20.4.1 MBeanInfo与ModelMBeanInfo 160 20.4.2 ModelMBean实例 161 20.5 Commons Modeler 161 20.5.1 MBean描述符 162 20.5.1.1 mbean 162 20.5.1.2 attribute 163 20.5.1.3 operation 163 20.5.1.4 parameter 163 20.5.2 mbean标签实例 164 20.5.3 自己编写一个model MBean 164 20.5.4 注册 164 20.5.5 ManagedBean 165 20.5.6 BaseModelMBean 165 20.5.7 使用Modeler API 165 20.6 Catalian中的MBean 165 20.6.1 ClassNameMBean 165 20.6.2 StandardServerMBean 166 20.6.3 MBeanFactory 167 20.6.4 MBeanUtil 167 20.7 创建Catalian的MBean 168 20.8 应用程序 172
Tomcat的目录结构: bin: startup.bat shutdown.bat startup.sh shutdown.sh conf: tomcat运行时所需要的配置文件。 注意: server.xml (配置tomcat端口) <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> lib: 存放tomcat运行时所需要的jar文件。 logs: 存放tomcat运行时所生成的日志文件。 webapps: 存放已经部署到tomcat服务器中的 服务端项目。 work: 存放tomcat运行时生成的临时文件。 案例 访问tomcat中的静态html网页资源: http://ip:port/appName/path 1>启动tocmat服务器。 bin/startup.bat 需要配置JAVA_HOME环境变量 2>打开浏览器访问地址: http://localhost:8080/docs/index.html 案例 自定义静态服务端应用,提供文件下载。 1>打包应用程序。 downloads |---xxx.zip |---xxx.png |---xxx.rmvb |---xxx.jpg 2>把静态应用程序部署到tomcat中。 (把downloads文件夹拷贝到webapps中) 3>启动tomcat,访问资源: http://ip:8080/downloads/xxx.jpg 容器与组件 Servlet是tomcat容器中的一个组件。 容器包含组件。 组件必须在容器的管理下才可以运行。 组件的生命周期方法由容器自动调用。 如何基于tomcat编写服务端动态应用? 基于tomcat编写JSP: JSP (Java Server Page) Java服务端页面生成技术 JSP的本质是一个Servlet类。 如何编写一个JSP? 1>创建服务端项目。Denomic Web Project 2>选择tomcat的运行环境。 (Target Runtime) 3>webContent中创建jsp文件。 在jsp中编写内容。jsp中的文本将会 在用户访问该jsp文件时输出给客户端。 4>打包: 右键project -> export -> 搜war -> 选择桌面 -> finish 5>部署: 把war文件粘贴到webapps文件夹中。 6>启动tomcat访问url。 JSP的组成部分: 1>JSP指令 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2>普通文本 将会在jsp生成的java源文件中使用: out.write() 把这些文本原样输出给客户端。 3>java代码片段 <% java代码 %> jsp将会把这些java代码直接生成在 _jspService方法中。 4>jsp表达式 <%=i+5%> 在jsp的任何位置输出java表达式的值。 当tomcat接收了一个访问jsp的请求时, 将会运行jsp生成的servlet类的service 方法。我们可以直接在jsp页面中编写 java代码处理这些请求。并且返回相应 数据,实现服务端业务。
问题:tomcat cpu 100% 回答:如果你的tomcat CPU占用率达到100%,你可以通过以下步骤来排查问题。首先,你可以使用process explorer工具来找到tomcat进程,并对tomcat的堆栈进行排序。找到占用CPU高的线程ID(tid),然后将tid转换为对应的十六进制数。接下来,你可以查找dump.txt文件中对应的堆栈信息,以进行问题排查。\[1\] 可能的原因分析是程序正在进行数据计算,或者程序进入了死循环。为了解决这个问题,你可以先使用top命令查看占用CPU的进程ID,然后使用ps -ef | grep PID命令定位具体的进程主体,例如是否是tomcat启动的java程序。最后,你可以使用ps -mp pid -o THREAD,tid,time命令打印出该进程下的线程占用CPU情况。\[2\] 如果你找到了耗时最高的线程ID(tid),你可以将其转换为十六进制格式,使用printf "%x\n" tid命令。最后,你可以使用jstack pid | grep tid -A 30命令打印出该线程的堆栈信息。\[3\]通过这些步骤,你可以进一步分析和解决tomcat CPU占用率过高的问题。 #### 引用[.reference_title] - *1* [tomcat占用cpu达100%](https://blog.csdn.net/wangluo605/article/details/118570205)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [tomcat的web程序持续占cpu问题](https://blog.csdn.net/u012599988/article/details/54412599)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值