Tomcat 叁歲伎倆 2023-02-26 09:26 4阅读 0赞 ### Tomcat ### * Tomcat * * 一、安装 * * windows下的安装 * Ubuntu下的安装 * 二、使用 * * 应用目录结构如下 * 代码示例 * 编译 * 启动脚本 * 启动 * 关闭 * 测试 * 三、原理 * * 配置文件 * 架构图 * 组件的实现 * 组件的协同工作 * 四、配置 * * server.xml配置 * * Connector配置 * Executor配置(线程池) * 测试 * 日志 * * 作用 * 分类 * 配置 * * 访问日志配置 * 五、部署 * * 手动部署(使用war包) # Tomcat # **Tomcat是什么 ?** Tomcat 服务器是一个免费的开放源代码的Web 应用服务器 \*\*它为什么而存在,或者说它可以干什么 Tomcat可以响应HTML的请求,可以作为 Servlet 和 JSP 的容器。 ## 一、安装 ## ### windows下的安装 ### 官网选择合适镜像下载, ### Ubuntu下的安装 ### 1. 在官网上下载。 2. 在用户目录下解压。 3. 配置Catalina的环境配置:建议在~.bashrc下 添加export CATALINA\_HOME=tomcat的路径 ## 二、使用 ## ### 应用目录结构如下 ### 以下目录放在tomcat的webapps下 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01yX1pIT1VaSE9V_size_16_color_FFFFFF_t_70] ### 代码示例 ### servlet类 继承 父类Httpservlet 并重写doget方法来响应html的get请求 web.xml 添加serlvet和servlet-mapping <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0"> <display-name>Restaurant</display-name> <servlet> <servlet-name>noodles</servlet-name> <servlet-class>com.netease.NoodlesServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>noodles</servlet-name> <url-pattern>/noodles</url-pattern> </servlet-mapping> </web-app> protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ PrintWriter writer = response.getWriter(); String vegetable = request.getParameter("vegetable"); if (vegetable == null){ vegetable = "Tomato"; } writer.println("<html><body>"); writer.println("<h1> Noodles with " + vegetable + "</h1>"); writer.println("</body></html>"); } ### 编译 ### javac -cp $CATALINA_HOME/bin/servlet-api.jar NoodlesServlet.java的路径 ### 启动脚本 ### export $JAVA_OPTS -server -Xms2048m -Xmx2048m JVM会对server应用做优化, -Xms 配置初始化堆大小。 -Xmx配置堆最大大小。 ### 启动 ### $CATALINA_HOME/bin/startup.sh ### 关闭 ### $CATALINA_HOME/bin/shutdown.sh 注:Windows下是.bat文件 ### 测试 ### 可以用浏览器,在 Ubuntu下也可以用 curl + 网址 的命令进行测试。 ## 三、原理 ## ### 配置文件 ### 重要的配置文件:server.xml 可以配合下面的架构图来看 <Server> tomcat <Service>可以有多个Service ,可认为是容器 <Connector></Connector>可以有多个Connector,用来接受用户请求 <Engine>处理 Connector接受到的请求 <Host>可以有多个Host虚拟主机 一个ip+端口 <Context></Context>可以有多个 几乎等价于web应用 </Host> </Engine> </Service> </Server> ### 架构图 ### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01yX1pIT1VaSE9V_size_16_color_FFFFFF_t_70 1] ### 组件的实现 ### **Connector(连接器)** :由Coyote项目来具体实现。Coyote实现了多种Connector。tomcat默认是BIO Connector。BIO Connector使用java传统的阻塞IO实现。 **Container(容器)**:由Catalina项目具体实现。 ### 组件的协同工作 ### **请求处理流程:** Connector接收浏览器的请求,从socket读取数据,对请求进行解析,将请求发送给Container,Container根据具体请求来确定具体的响应(静态页面、图片或者根据用户代码生成动态数据),最后由Connector将响应转发给浏览器。 ## 四、配置 ## ### server.xml配置 ### #### Connector配置 #### * port 端口 * address 地址 * protocol 协议,一般线程调优的时候要用到 * connectionTimeout 连接超时断开 * acceptCount 线程满的时候,等待队列的长度 * maxConnections 能支持的最大连接数。 * executor 线程池配置的名称(也可以直接配置minSpareThreads 和maxThreads) #### Executor配置(线程池) #### * minSpareThreads 最小空闲线程数 * maxThreads 最大线程数 #### 测试 #### 可用telnet + ip + 端口号 进行连接 再输入命令 GET map引索地址 HTTP/1.1 ### 日志 ### #### 作用 #### * Tomcat运行情况获知 * 调试 #### 分类 #### * Tomcat系统运行日志 * (请求)访问日志 * 应用日志 #### 配置 #### ##### 访问日志配置 ##### 在server.xml中配置 * Valve 访问日志配置 * directory 日志文件夹(相对路径是Tomcat下,也可绝对路径) * pattern 日志格式 * %r 请求行内容 * %s 状态响应码 * %t 用户响应事件 * %m 用户请求方法 * %a 请求的IP地址 * %b 服务端发送多少个字节 * %\{User-Agent\}i * fileDateFormat 日志切割格式 ,例如:“yyyy-MM-dd.HH”每小时切割一次日志 * rotatable 日志切割开关 默认:true * ## 五、部署 ## ### 手动部署(使用war包) ### 1. 进入应用程序文件夹 2. jar cvf Restaurant.war . ("."代表打包到当前目录) [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01yX1pIT1VaSE9V_size_16_color_FFFFFF_t_70]: /images/20230209/21ff7e7c106e4dcd97ef41b46bd58ba3.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01yX1pIT1VaSE9V_size_16_color_FFFFFF_t_70 1]: /images/20230209/c5a498ed2e03460aa6a945a34a52b316.png
相关 tomcat 1. c/s: 客户端和服务端 : 例如QQ; 安全, 升级比较麻烦 b/s: 浏览器和服务端: 只需要编写服务端; 不安全 2. web资源介绍: 灰太狼/ 2022年06月14日 08:49/ 0 赞/ 67 阅读
相关 tomcat Tomcat 1.概述 通过上面的讲解大家对JSP与Servlet已经有所理解,最起码知道它们是做什么的,说到底它们都是程序设计语言,是帮助我们更好的编写程序。大家都知 缺乏、安全感/ 2022年06月11日 07:55/ 0 赞/ 410 阅读
相关 Tomcat Tomcat简介 WEB服务器与应用服务器的概念 WEB服务器:专门处理HTTP请求,提供WEB信息浏览服务。 应用服务器:可解析运行后台代码,为应用 客官°小女子只卖身不卖艺/ 2022年06月07日 03:07/ 0 赞/ 254 阅读
相关 Tomcat 1.基本调优 bin/catalina.sh 加一行 JAVA\_OPTS='-Xms128m -Xmx512m -XX:PermSize=128m' 2.设置脚本开机启 r囧r小猫/ 2022年05月31日 22:48/ 0 赞/ 211 阅读
相关 tomcat 一、安装Tomcat5.5.20 1、下载安装包 <table> <tbody> <tr> <td><span><strong>代码:</stro 一时失言乱红尘/ 2022年05月11日 12:16/ 0 赞/ 112 阅读
相关 tomcat 前文: 对tomcat的构的初步解析 一、web服务器 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_te 偏执的太偏执、/ 2022年03月19日 16:58/ 0 赞/ 80 阅读
相关 tomcat tomcat结构 模块组成结构 Tomcat的核心组件就Connector和Container,一个Connector+一个Container(Engine)构成一个 ﹏ヽ暗。殇╰゛Y/ 2022年03月16日 07:51/ 0 赞/ 122 阅读
相关 Tomcat [Tomcat][] Tomcat运行在JVM之上,它和HTTP服务器一样,绑定IP地址并监听TCP端口,同时还包含以下指责: 1. 管理Servlet程序的生命周期 左手的ㄟ右手/ 2022年01月28日 13:21/ 0 赞/ 160 阅读
相关 Tomcat tomcat目录层次结构 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6L 我会带着你远行/ 2021年11月17日 09:02/ 0 赞/ 219 阅读
相关 Tomcat Tomcat文件目录 |-bin: 存放tomcat的命令。 |- conf: 存放tomcat的配置信息。其中server.xml文件是核心的配置文件。 ゝ一世哀愁。/ 2021年09月11日 05:40/ 0 赞/ 329 阅读
还没有评论,来说两句吧...