Servlet和Tomcat小摘

NMOS管和PMOS管做开关控制电路 阅读详情

Servlet是什么

为了能让web服务器和web应用这两个不同的软件系统相互协作,需要一个标准的接口,而Servlet就是其中最主要的一个接口。

接口规定:

Web服务器可以访问任意一个Web应用中实现Servlet接口的类。

Web应用中用于被Web服务器动态调用的程序代码位于Servlet接口文档实现类中,当中的java接口被称作是Java Servlet API。

什么是Servlet容器

能够发布和运行JavaWeb应用的Web服务器称为Servlet容器,主要的特征是能够 动态执行 JavaWeb应用中Servlet实现类的程序代码。

什么是Tomcat

Tomcat既是Servlet容器同事也是Web服务器:作为Web服务器时,主要负责实现HTTP的传输工作;而作为Servlet容器时,主要负责解析Request,生成相对应的ServletRequest、ServletResponse,并将两者传递给相应的Servlet(调用servlet的service()方法),再将处理的结果返回。

Tomcat的组成结构

tomcat结构
Server,代表整个Servlet容器组件,是Tomcat的顶层元素,其中包含多个Service;

Service,包含一个engine和多个connector;

Connnector,代表和客户端程序实际交互的组件,负责接收客户的请求,以及向客户返回相应结果;

Engine,处理同一个service中所有的connector接收到的客户请求;

Host,在engine中可以包含多个host,每个host定义了一个虚拟主机(也就是url上的ip地址),host可以包含多个web应用;

Context,一个host中可以包含多个context,每个context代表了运行在虚拟主机上的单个web应用。

组件结构
根据上图和tomcat的配置文件server.xml来看,tomcat是根据配置文件按顺序来加载各个容器的。

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
--><!-- Note:  A "Server" is not itself a "Container", so you may not
     define subcomponents such as "Valves" at this level.
     Documentation at /docs/config/server.html
 -->
 <Server port="8007" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
  <!-- Security listener. Documentation at /docs/config/listeners.html
  <Listener className="org.apache.catalina.security.SecurityListener" />
  -->
  <!--APR library loader. Documentation at /docs/apr.html -->
  <Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>
  <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
  <Listener className="org.apache.catalina.core.JasperListener"/>
  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>

  <!-- Global JNDI resources
       Documentation at /docs/jndi-resources-howto.html
  -->
  <GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
  </GlobalNamingResources>

  <!-- A "Service" is a collection of one or more "Connectors" that share
       a single "Container" Note:  A "Service" is not itself a "Container",
       so you may not define subcomponents such as "Valves" at this level.
       Documentation at /docs/config/service.html
   -->
  <Service name="Catalina">

    <!--The connectors can use a shared executor, you can define one or more named thread pools-->
    <!--
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="4"/>
    -->


    <!-- A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL HTTP/1.1 Connector on port 8080
    -->
    <Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
    <!-- A "Connector" using the shared thread pool-->
    <!--
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    -->
    <!-- Define a SSL HTTP/1.1 Connector on port 8443
         This connector uses the BIO implementation that requires the JSSE
         style configuration. When using the APR/native implementation, the
         OpenSSL style configuration is required as described in the APR/native
         documentation -->
    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
    -->

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>


    <!-- An Engine represents the entry point (within Catalina) that processes
         every request.  The Engine implementation for Tomcat stand alone
         analyzes the HTTP headers included with the request, and passes them
         on to the appropriate Host (virtual host).
         Documentation at /docs/config/engine.html -->

    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
    -->
    <Engine defaultHost="localhost" name="Catalina">

      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->
      <!--
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      -->

      <!-- Use the LockOutRealm to prevent attempts to guess user passwords
           via a brute-force attack -->
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <!-- This Realm uses the UserDatabase configured in the global JNDI
             resources under the key "UserDatabase".  Any edits
             that are performed against this UserDatabase are immediately
             available for use by the Realm.  -->
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>

      <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log." suffix=".txt"/>

      </Host>
    </Engine>
  </Service>
</Server>

从配置文件的结构上看,

<server>
    <service>
        <connector>
            <engine>
                <host>
                    <value>
                某个web程序的访问入口    
                    </value>        
                </host>
            </engine>
        </connector>
    </service>
</server>
060、模型蒸馏:把扩散模型压进单步的魔法 《端侧文生图模型蒸馏实战:从32步到1步的优化之道》摘要:针对边缘设备部署难题,本文分享了扩散模型蒸馏的核心经验。通过重构损失函数(感知损失+对抗训练+KL散度)、优化采样轨迹截取策略和改造学生模型架构,成功将Stable Diffusion压缩至单步推理。关键发现包括:小批量训练更有效、标签平滑保障生成多样性、双模型策略平衡质量与速度。在Cortex-A53芯片上实现300ms内生成,内存占用控制在200MB以下。特别强调工业部署需权衡压缩率与稳定性,建议保留迭代模式开关以适配不同场景需求。 阅读详情

相关推荐

PX4飞控CAN总线通信深度配置:从menuconfig到驱动加载的完整指南

本文详细解析了PX4飞控中CAN总线通信的深度配置流程,从menuconfig选项设置到驱动加载的完整指南。涵盖硬件抽象层、驱动层和应用层的配置细节,提供实际验证方法和故障排查技巧,帮助开发者高效实现CAN通信,特别适用于无人机和机器人底盘运动控制等场景。

weixin_30374009的博客 501

[摘]tomcat中运行servlet!

虽然自己做过一些servlet 不过还是喜欢转发别人的文章可能是自己太懒啦 1:首先创建一个web应用程序,这里我是用Eclipse建的,就叫web吧,存放路径C:\eclipse\workspace\web 2:tomcat中,添加conf下的server.xml中的标记 3:编写一个名为ServletTest的servlet程序,具体内容如下,应该很简单的,就不多解释: ...

从新开始 160

Claude Code 的 Subagent 到底怎么用?

Subagent是ClaudeCode中的专业化AI代理系统,每个代理专注单一领域(如代码审查、数据库设计),具备独立记忆空间和并行处理能力。适用于中大型项目开发,通过配置文件定义代理职责与权限,可显式调用或自动触发多代理协作。典型场景包括代码安全审查、全栈并行开发和技术方案对比。使用时需注意避免过度拆分、权限过宽等陷阱,结合链式工作流和负载均衡可显著提升效率。实测在电商项目开发中能缩短20%工期并提升40%性能。

bgeyq的博客 1992

[摘] tomcat运行java的servlet程序

第一步配置tomcat 安装Tomcat后,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的tomcat安装在c:\tomcat): CATALINA_HOME=c:\tomcat CATALINA_BASE=c:\tomcat 然后修改环境变量中的classpath,把tomat安装目录下的common\lib下的(可以根据实际追加)serv...

从新开始 585

2021-8-14 EDK II编译

2021-8-14 EDK II 编译为什么要写这篇文章新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 为什么要写这篇文章 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdo

qq_45775660的博客 2948

find命令

命令是 Linux/Unix 系统中用于搜索文件和目录的强大工具,支持多种搜索条件组合,并能对搜索结果执行各种操作。以下是其详细说明、常用参数及示例: 搜索路径:指定起始目录(如 、 或 表示当前目录)。 查找条件:基于文件名、类型、大小、时间等属性过滤。 处理动作:对匹配结果执行操作(如打印、删除、执行命令等)。 常用参数及示例 1. 按名称查找 :区分大小写匹配文件名。 :不区分大小写匹配文件名。 2. 按文件类型查找 :指定文件类型。 文件类型: :普通文件 :目录 :符号链接

qiao2458的博客 1136

Eclipse+Tomcat开发servlet的HelloWorld篇(摘)

Eclipse+Tomcat开发servlet的HelloWorld篇Eclipse+Tomcat集成开发servlet 最近在熟悉eclipse,一本书上有个HelloWorld,上面没写怎么发布servlet,问了同学查了资料终于跑起来了,虽然简单,小收获也不能放过,不敢独享。准备:1.  Tomcat 5.02.  Jdk1.43.  Eclipse3.14.  Eclips

yuren913的专栏 3091

HLM(多层线性模型)在stata中语句

在阅读CEPS中发现有些研究采用的是HLM模型,HLM简单来说用一个方程跑两个回归。举例,对学习成绩影响因素,不同层有不同的影响,如在个体层面上个体特征会对成绩产生影响,在学校层面学校排名等因素会对成绩产生影响,两种因素不在一个层面,每层造成的差异都不相同。 在找相关语句时候发现操作这个语句的软件大多是SPSS和HLM,对于stata操作者并不友好。因此,在有限资料中总结了HLM在stata中的语句,后面会附上学习视频和链接。 先放语句,后面对方程式一个大致解析。由于针对HLM有一本书的介绍,可能一篇文章无

weixin_44652251的博客 1万+

Tomcat和Servlet

因为现在都用spring框架了,所以本文就简单介绍一下Tomcat和Servlet提示:以下是本篇文章正文内容,下面案例可供参考其实servlet和springboot真的差不多,springboot就是servlet的升级版本,学会一个上手另一个就很快了。

weixin_69160215的博客 2067

避坑指南:STM32CubeMX配置USB虚拟串口时Heap Size设置的那些坑

本文深入剖析了使用STM32CubeMX配置USB虚拟串口时,因Heap Size设置不当导致设备无法识别的常见问题。文章从故障现象出发,详细解释了堆内存不足如何影响USB枚举过程,并提供了从内存布局分析、动态监控到系统化调试的完整解决方案,帮助开发者从根本上避免这一配置陷阱。

ttt77的博客 599

【processing】创意编程

首先接到这个作业的时候,我是很崩溃的,我是真的不会画画QAQ,还画自己,这也太难了,于是我决定!还是祸害我爱豆吧!于是我从微博太太那里找了个图临摹 下面是太太的图 先给太太道歉!都是为了作业! 然后我画出来是这样子的 还可以!!!没有特别丑!(虽然也不是特别像吧) 但是画这个真是画死我了,下面贴上代码吧,没啥特殊的就是各种贝塞尔曲线各种圆各种线 //face stroke(70,27,11...

qq_25700571的博客 1267

Tomcat和servlet

Tomcat: 个人理解就是部署服务端,相当于封装了socketServer,也是遵守了tcp协议,tomcat有如下目录: bin:脚本目录 ***** 启动脚本(启动服务器):startup.bat 停止脚本(停止服务器):shutdown.bat conf:配置文件目录 (config /configuration) ***** 核心配置文件:server.xml 用户权限配置文件:tomcat-users.xml 所...

hnhroot的博客 4664

微信小程序转发功能异常报错 由于小程序违规分享功能暂时无法使用的解决办法

小程序右上角转发功能被封,不代表你违规了,而可能是你没认证、没备案!很多功能都是“先合规、后开发”,踩坑就晚了,别像我一样绕了三圈才发现问题。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2613

tomcat和servlet的关系详解

web发展介绍 早期web应用就是用户获取服务器端的静态页面,时间一久,用户想要进行一些交互操作,但是如果基于HTTP协议实现服务器端软件增强功能太过 复杂,所以使用像cgi来作为web服务器的扩展机制。用户单击某个链接或输入网址来访问CGI程序,web服务器接收用户请求,运行该CGI程序,对请求进行处理,然后响应并返回给web服务器,web服务器再进行包装返回给用户。cgi程序编写困难,响应时间长,sun公司使用servlet作为java阵营的cgi解决方案。 Servlet Servlet是用java编

weixin_46378497的博客 1459

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

TOMCAT和SERVLET

TOMCAT相当于把整个web项目部署在了tomcat上面, 可以通过虚拟地址访问这个web项目,访问web项目中某些特定的项目 XML文件相当于,把src下面java文件存储到web项目中作为库,然后调用 相当于xml文件是沟通web和java的桥梁 SERVLET相当于一个接口,实现了接口中方法,就实现了web项目和 java进行交互 web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.

qq_40707269的博客 418

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Servlet及Tomcat的配置

servlet 动态网页 1、访问web服务器上的某个页面,访问的内容会发生变化 2、动态网页和动态HTML页面的区别 3、动态网页的源文件会随网页的变化而变化,而动态HTML页面的源文件不会发生变化 动态网页程序与引擎 1、首先使用某种编程语言编写出相应的动态网页程序 2、然后由一个专门的web服务程序模块(引擎)来解释执行 3、引擎是动态网页程序和浏览器之间的桥梁 4、浏览器、引擎、API、动...

渣渣瑞 2412

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

tomcat和servlet的关系

这张图应该可以比较清楚地描述tomcat和servlet之间的关系,应该说,tomcat本身就是一个servlet容器,它里面包含着许多处理具体请求的servlet容器。 早期,web技术主要用于浏览静态页面: 然而随着时间发展,用户已经不满足于仅浏览静态页面。用户需要一些交互操作,获取一些动态结果。如果基于HTTP协议实现服务器端软件增强功能太过 复杂,所以需要一些扩展机制来实现用户想要的功能。 早期使用的Web服务器扩展机制是CGI(Common Gateway Interface,公共网关接口)。

qq_39917365的博客 3099

Tomcat和初学Servlet

文章目录一、Tomcat1.Tomcat的基本介绍2.Tomcat中的文件解释3.Tomcat的打开和关闭4.使用Tomcat的目的二、Servlet1.Servlet介绍 一、Tomcat 1.Tomcat的基本介绍 Tomcat 是一个 HTTP 服务器。 前面我们已经学习了 HTTP 协议, 知道了 HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式。 同时也通过 ajax 和 Java Socket 分别构造了 HTTP 客户端。 HTTP 服务器我们也同样可以通过 Jav

ZJRUIII的博客 1731

Servlet容器和Tomcat容器区别

一提到容器,很多新手就会忘文生畏,认为这是很难很高深的东西。其实一项技术存在与发展,自然有其广度与深度的地方。但是对于开发人员而言,我们并不是要对容器研究要有多深,我们的目的有一个基本的了解,然后会配置,会使用。 Servlet Java Servlet(Java服务器小程序)是一个基于Java技术的Web组件,运行在服务器端,它由Servlet容器所管理,用于生成动态的内容。 Servl...

mnicsm的博客 5579

Servlet和Tomcat的基础知识

前言: Servlet是什么?Servlet容器是什么?Tomcat是什么?Tomcat的组成结构以及Tomcat的工作模式。 最近没事在翻《Tomcat与Java Web开发技术详解》,本文随记一篇。 题外话:前几天做了一幅漫画,发到微博上,效果还不错~ 回归正题…… 正文: Servlet是什么 为了能让Web服务器与Web应用这两个不同的软件系统协作,需要一

胡同里的庇护所(Pirate Leo's Shelter) 2万+

Tomcat、Servlet、Servlet容器

Tomcat 常听别人说Tomcat,觉得很高大上。但它是啥,能干啥,我一直很迷。今天整理了下各种概念,以便将来装X。 简单一句话:Tomcat是一个Servlet容器。这个容器当然就是装Servlet用的。那Servlet是什么,就是一个(按照Servlet规范写的一个)java类。 这个“装”怎么理解:*实现了Servlet、JSP规范,同时提供http服务。*其实,就像社会与人的关系:社会制定能够规范,人按照规范做事。然后社会保证你和其他人的良好沟通。 解决问题:处理动态页面(jsp等) Servle

weixin_38851970的博客 5289

Servlet和tomcat区别

一提到容器,很多新手就会忘文生畏,认为这是很难很高深的东西。其实一项技术存在与发展,自然有其广度与深度的地方。但是对于开发人员而言,我们并不是要对容器研究要有多深,我们的目的有一个基本的了解,然后会配置,会使用。 Servlet Java Servlet(Java服务器小程序)是一个基于Java技术的Web组件,运行在服务器端,它由Servlet容器所管理,用于生成动态的内容。 Servlet...

weixin_39847744的博客 2962

Tomcat与Servlet是什么关系

Tomcat与Servlet是什么关系

这里有一只小马吖 3685

tomcat 和 servlet 的关系

tomcat 和 servlet 的关系

LLLLEE 的博客 3350

Servlet与Tomcat的关系

Servlet与Tomcat的关系概述 在web项目时,多数需要http协议,也就是基于请求和响应,比如你在百度输入一行内容搜索, 那么百度服务器如何处理这个请求呢,他需要创建servlet来处理,servlet其实就是java程序,只是在服务器端的java程序, servlet通过配置文件拦截你的请求,并进行相应处理,然后展示给你相应界面,那么servlet如何创建? 这时候tomcat...

Roccc666的博客 3840

Servlet、Tomcat、 SpringMVC 之间的关系

一、基础知识(什么是servlet) 在idea中打开servlet的源码: 可以看见servlet就是一个接口;接口就是规定了一些规范,使得一些具有某些共性的类都能实现这个接口,从而都遵循某些规范。有的人往往以为就是servlet直接处理客户端的http请求,其实并不是这样,servlet并不会去监听8080端口;直接与客户端打交道是“容器”,比如常用的tomcat。客户端的请求直接打到tomcat,它监听端口,请求过来后,根据url等信息,确定要将请求交给哪个servlet去处理,然后调用那个serv

cristianoxm的博客 3277
上一篇: HashMap摘抄
下一篇: Tomcat的管道和阀
甜甜大头菜
博客等级 码龄15年 0粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值