两个 Tomcat 同时运行时修改 Tomcat 端口

当装了两个tomcat后,修改tomcat端口 http://zfsn.iteye.com/blog/669901 修改Tomcat的端口号: 在默认情况下,tomcat的端口是8080,如果出现8080端口号冲突,用如下方法可以修改Tomcat的端口号: 首先: 在Tomcat的根 (安装) 目录下,有一个conf文件夹,双击进入conf文件夹,在里面找到Server.xml文件,打开该文件。 其次: 在文件中找到如下文本: <Connector port="8080" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000" redirectPort="8443" /> 也有可能是这样的: <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" /> 等等; 最后: 将 port="8080" 改为其它的就可以了。如 port="8081" 等。保存 server.xml 文件,重新启动 Tomcat 服务器,Tomcat 就可以使用 8081 端口了。 注意,有的时候要使用两个 tomcat,那么就需要修改其中的一个的端口号才能使得两个同时工作。 修改了上面的以后,还要修改两处: 将 <Connector port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" /> 的 8009 改为其它的端口。 继续将 <Server port="8005" shutdown="SHUTDOWN" debug="0"> 的 8005 改为其它的端口。 经过以上 3 个修改,应该就可以了。 8443 维护记录 时间 修改内容 原因 2026-10-09 修复本地 Hugo 构建的 Raw HTML 警告:代码/配置放入代码块,正文中的尖括号占位符改为行内代码;文件重命名为 tomcat-port.md;title 改为「两个 Tomcat 同时运行时修改 Tomcat 端口」;url 改为 tomcat-port;旧 url 加入 aliases 正文中的 HTML/XML 片段被当作原始 HTML 丢弃;文件名/URL/标题按规范调整

Created 13136-05-13 · Updated 9096-10-09 · 1 min · 97 words · -

Tomcat Port 8009 与 AJP13 协议

Tomcat Port 8009 与AJP13协议 由于tomcat的html和图片解析功能相对其他服务器如apche等较弱,所以,一般都是集成起来使用,只有jsp和servlet服务交由tomcat处理,而tomcat和其他服务器的集成,就是通过ajp协议来完成的。 AJP13(Apache JServ Protocol version 1.3)是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。WEB服务器通过TCP连接和SERVLET容器连接。为了减少进程生成 socket的花费,WEB服务器和SERVLET容器之间尝试保持持久性的TCP连接,对多个请求/回复循环重用一个连接。一旦连接分配给一个特定的请 求,在请求处理循环结束之前不会在分配。换句话说,在连接上,请求不是多元的。这个是连接两端的编码变得容易,虽然这导致在一时刻会有很多连接。 一旦WEB服务器打开了一个到SERVLET容器的连接,连接处于下面的状态: ◆ 空闲 这个连接上没有处理的请求。 ◆ 已分派 连接正在处理特定的请求。 一旦一个连接被分配给一个特定的请求,在连接上发送的基本请求信息是高度压缩的。在这点,SERVLET容器大概准备开始处理请求,当它处理的时候,它能发回下面的信息给WEB服务器: ◆ SEND_HEADERS 发送一组头到浏览器。 ◆ SEND_BODY_CHUNK 发送一块主体数据到浏览器。 ◆ GET_BODY_CHUNK 从请求获得下一个数据如果还没有全部传输完,如果请求内容的包长度非常大或者长度不确定,这是非常必要的。例如上载文件。注意这和HTTP的块传输没有关联。 ◆ END_RESPONSE 结束请求处理循环。 Tomcat服务器通过Connector连接器组件与客户程序建立连接,Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客户。默认情况下,Tomcat在server.xml中配置了两种连接器: <!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 --> <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" /> <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 --> <Connector port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" /> 第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。 第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。 Web客户1直接访问Tomcat服务器上的JSP组件,他访问的URL为http://localhost:8080 /index.jsp。Web客户2通过HTTP服务器访问Tomcat服务器上的JSP组件。假定HTTP服务器使用的HTTP端口为默认的80端口, 那么Web客户2访问的URL为http://localhost:80/index.jsp 或者 http://localhost/index.jsp。 摘自: http://hikin.iteye.com/blog/555682 2.http://bbs.163jsp.com/posts/list/472.html http://tomcat.apache.org/connectors-doc-archive/jk2/common/AJPv13.html 维护记录 时间 修改内容 原因 2026-10-09 修复本地 Hugo 构建的 Raw HTML 警告:代码/配置放入代码块,正文中的尖括号占位符改为行内代码;文件重命名为 tomcat-ajp13.md;title 改为「Tomcat Port 8009 与 AJP13 协议」;url 改为 tomcat-ajp13;旧 url 加入 aliases 正文中的 HTML/XML 片段被当作原始 HTML 丢弃;文件名/URL/标题按规范调整

Created 13136-05-13 · Updated 9096-10-09 · 1 min · 113 words · -

tomcat server.xml

tomcat server.xml http://www.importnew.com/26156.html Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛。server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的一个组件;通过对xml文件中元素的配置,可以实现对Tomcat中各个组件的控制。因此,学习server.xml文件的配置,对于了解和使用Tomcat至关重要。 本文将通过实例,介绍server.xml中各个组件的配置,并详细说明Tomcat各个核心组件的作用以及各个组件之间的相互关系。 说明: 由于server.xml文件中元素与Tomcat中组件的对应关系,后文中为了描述方便,“元素"和"组件"的使用不严格区分。 一、一个server.xml配置实例 server.xml位于$TOMCAT_HOME/conf目录下;下面是一个server.xml实例。后文中将结合该实例讲解server.xml中,各个元素的含义和作用;在阅读后续章节过程中,可以对照该xml文档便于理解。 <Server port="8005" shutdown="SHUTDOWN"> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" /> </Host> </Engine> </Service> </Server> 二、server.xml文档的元素分类和整体结构 整体结构 server.xml的整体结构如下: <Server> <Service> <Connector /> <Connector /> <Engine> <Host> <Context /><!-- 现在常常使用自动部署,不推荐配置Context元素,Context小节有详细说明 --> </Host> </Engine> </Service> </Server> 该结构中只给出了Tomcat的核心组件,除了核心组件外,Tomcat还有一些其他组件,下面介绍一下组件的分类。 元素分类 server.xml文件中的元素可以分为以下4类: (1) 顶层元素: <Server>和<Service> <Server>元素是整个配置文件的根元素,<Service>元素则代表一个Engine元素以及一组与之相连的Connector元素。 (2) 连接器: <Connector> <Connector>代表了外部客户端发送请求到特定Service的接口;同时也是外部客户端从特定Service接收响应的接口。 (3) 容器: <Engine><Host><Context> ...

Created 2026-06-02 · Updated 9096-10-09 · 3 min · 536 words · -

将应用部署到 Tomcat 根目录的方法

将应用部署到Tomcat根目录的方法 http://rongjih.blog.163.com/blog/static/335744612011426103345778/ 将应用部署到Tomcat根目录的目的是可以通过 http://[ip]:[port] 直接访问应用,而不是使用 http://[ip]:[port]/[appName] 上下文路径进行访问。 方法一: (最简单直接的方法) 删除原 webapps/ROOT 目录下的所有文件,将应用下的所有文件和文件夹复制到ROOT文件夹下。 方法二: 删除原 webapps/ROOT 目录下的所有文件,修改文件"conf/server.xml",在Host节点下增加如下Context的内容配置: <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> ...... <Context path="" docBase="C:/apache-tomcat-6.0.32/myapps/bc.war"></Context> </Host> 注意: path 的值设置为空; 应用不要放到tomcat的webapps目录下(如上述配置是放到自定义的文件夹myapps内的),否则访问时路径很有问题; docBase指定到绝对路径。 如此设置后重启tomcat,如果docBase指向的是war文件,会自动将war解压到 webapps/ROOT 目录;如果docBase指向的是应用已解压好的目录,如 docBase=“C:/apache-tomcat-6.0.32/myapps/bc”,tomcat不会生成webapps/ROOT目录 (这种情况下之前可以不用删除webapps/ROOT目录,但webapps/ROOT目录内的内容是无法访问的) ,访问时将直接使用docBase指定的目录。 方法三: 与方法二类似,但不是修改全局配置文件"conf/server.xml",而是在"conf/Catalina/localhost"目录下增加新的文件"ROOT.xml" (注意大小写哦) ,文件内容如下: <?xml version="1.0" encoding="UTF-8"?> <Context path="" docBase="C:/apache-tomcat-6.0.32/myapps/bc.war"></Context> 维护记录 时间 修改内容 原因 2026-10-09 修复本地 Hugo 构建的 Raw HTML 警告:代码/配置放入代码块,正文中的尖括号占位符改为行内代码;文件重命名为 tomcat-root-deploy.md;title 改为「将应用部署到 Tomcat 根目录的方法」;url 改为 tomcat-root-deploy;旧 url 加入 aliases 正文中的 HTML/XML 片段被当作原始 HTML 丢弃;文件名/URL/标题按规范调整

Created 16166-01-16 · Updated 9096-10-09 · 1 min · 74 words · -

JavaEE Web 工程/项目 目录结构

JavaEE Web 工程/项目 目录结构 Maven 标准目录结构 好的目录结构可以使开发人员更容易理解项目,为以后的维护工作也打下良好的基础。Maven2根据业界公认的最佳目录结构,为开发者提供了缺省的标准目录模板。Maven2的标准目录结构如下: src/main/java Application/Library sources src/main/resources Application/Library resources src/main/webapp Web application sources src/test/java Test sources src/test/resources Test resources src/main/filters Resource filter files src/main/assembly Assembly descriptors src/main/config Configuration files src/main/scripts Application/Library scripts src/test/filters Test resource filter files src/site Site LICENSE.txt Project's license NOTICE.txt Notices and attributions required by libraries that the project depends on README.txt Project's readme 使用目录模板,可以使 pom.xml 更简洁。因为 Maven2 已经根据缺省目录,预定义了相关的动作,而无需人工的干预。以 resources 目录为例: ...

Created 1016-01-01 · Updated 9096-10-09 · 1 min · 195 words · -

Tomcat 访问日志

Tomcat 访问日志 http://hooray520.iteye.com/blog/1335156 Tomcat的访问日志是靠org.apache.catalina.valves.AccessLogValve来控制的,你可以修改$tomcat/conf/server.xml来启用它 ($tomcat是Tomcat安装的目录)。AccessLogValve默认应该是注释掉的,简单的将其注释去掉,然后重启Tomcat就可以了。 以下是Tomcat默认的配置: 引用 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> 你可以设置日志保存的目录(directory),日志的文件名的前缀(prefix),后缀(suffix)和日志的具体格式。保存目录,文件名的前缀、后缀都很简单,一般默认设置也就可以了。resolveHost出于性能的考虑,一般也设为false. 但访问日志的格式(pattern)却有很多的选项供你选择。以下列出了一些基本的日志格式项: 引用 %a – 远程主机的IP (Remote IP address) %A – 本机IP (Local IP address) %b – 发送字节数,不包含HTTP头,0字节则显示 ‘-’ (Bytes sent, excluding HTTP headers, or ‘-’ if no bytes were sent) %B – 发送字节数,不包含HTTP头 (Bytes sent, excluding HTTP headers) %h – 远程主机名 (Remote host name) %H – 请求的具体协议,HTTP/1.0 或 HTTP/1.1 (Request protocol) %l – 远程用户名,始终为 ‘-’ (Remote logical username from identd (always returns ‘-’)) %m – 请求方式,GET, POST, PUT (Request method) %p – 本机端口 (Local port) %q – 查询串 (Query string (prepended with a ‘?’ if it exists, otherwise an empty string) %r – HTTP请求中的第一行 (First line of the request) %s – HTTP状态码 (HTTP status code of the response) %S – 用户会话ID (User session ID) %t – 访问日期和时间 (Date and time, in Common Log Format format) %u – 已经验证的远程用户 (Remote user that was authenticated %U – 请求的URL路径 (Requested URL path) %v – 本地服务器名 (Local server name) %D – 处理请求所耗费的毫秒数 (Time taken to process the request, in millis) %T – 处理请求所耗费的秒数 (Time taken to process the request, in seconds) 你可以用以上的任意组合来定制你的访问日志格式,也可以用下面两个别名common和combined来指定常用的日志格式: ...

Created 10106-01-10 · Updated 9096-10-09 · 2 min · 337 words · -

tomcat autoDeploy="false" deployOnStartup="false"

’tomcat autoDeploy=“false” deployOnStartup=“false”' https://stackoverflow.com/questions/26884335/tomcat-deploy-only-manager-on-startup From the Apache 6 documentation: https://tomcat.apache.org/tomcat-6.0-doc/config/context.html in the Attributes section of Context, the documentation for the path attribute specifies: This attribute must only be used when statically defining a Context in server.xml. In all other circumstances, the path will be inferred from the filenames used for either the .xml context file or the docBase. Even when statically defining a Context in server.xml, this attribute must not be set unless either the docBase is not located under the Host’s appBase or both deployOnStartup and autoDeploy are false. If this rule is not followed, double deployment is likely to result. ...

Created 19196-09-19 · Updated 9096-10-09 · 1 min · 157 words · -

Jetty

Jetty Jetty 是一个开源的 servlet 容器,它为基于 Java 的 web 内容(例如 JSP 和 servlet)提供运行环境。Jetty 使用 Java 编写,API 以一组 JAR 包的形式发布。开发人员可以将 Jetty 容器实例化成一个对象,为一些独立运行(stand-alone)的 Java 应用提供网络和 web 连接。 易用性 易用性是 Jetty 设计的基本原则,主要体现在: 通过 XML 或 API 配置 Jetty 默认配置可满足大部分需求 将 Jetty 嵌入应用程序只需很少的代码 可扩展性 在使用了 Ajax 的 Web 2.0 应用中,每个连接需要保持更长时间,线程和内存消耗会明显增加。Jetty 在这方面有优势: 即使在大量服务请求下,系统性能仍可保持可接受水平 利用 Continuation 机制处理大量用户请求及长连接 接口设计良好,当某种实现无法满足需求时,可方便地修改 Jetty 的特定实现 易嵌入性 Jetty 设计之初就是作为优秀组件来设计的,可非常容易地嵌入应用程序,无需为使用 Jetty 而大幅修改程序。某种程度上,也可以把 Jetty 理解为一个嵌入式 Web 服务器。 Jetty 可作为嵌入式服务器使用,运行速度较快且轻量,可在 Java 测试用例中控制其运行,使自动化测试不再依赖外部环境。 Jetty vs Tomcat 参考:Jetty 与 Tomcat 的比较(IBM developerWorks) ...

Created 16166-12-16 · Updated 20206-05-20 · 1 min · 173 words · -

tomcat 8005

tomcat 8005 http://www.wellho.net/mouth/837_Tomcat-Shutdown-port.html On a new installation of Tomcat (default config files), you’ll notice that your server.xml file is set up with a shutdown port of 8005, and shutdown=“SHUTDOWN”. What does this mean? It means that anyone who contacts the server locally on port 8005 and send it the words SHUTDOWN can cause Tomcat to close out all its web applications and shut down cleanly. Yikes - is this a security hole of what? It could be. Fortunatly , you'll notice that I said it's a LOCAL connection to the port that causes a shutdown, so it no-one can ssh or telnet in, nor log in from the keyboard unless they're an admin, it might not be a problem .... If your Tomcat server allows anyone except the administrator to log in with a shell, then I strongly suggest you change shutdown="SHUTDOWN" to shutdown="waSS-I41tis" so that at least it won't be a string that any hacker can guess.<del> You might like to change the port number too. Alas, it would be unwise to disable the facility completely, since catalina.sh and shutdown.sh use the port (details read from the config file) as part of their processing. At least server.xml is neither group nor world readable.</del>

Created 13136-05-13 · Updated 13136-05-13 · 1 min · 204 words · -

Tomcat basic

Tomcat basic archlinux sudo pacman -S tomcat8 http://baike.baidu.com/view/10166.htm tomcat 7 https://archive.apache.org/dist/tomcat/tomcat-7 Tomcat是Apache 软件基金会 (Apache Software Foundation) 的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。 Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。 Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你 运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为7.0.27 Released。 名称的由来 Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O’Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat (英语公猫或其他雄性猫科动物) 。而O’Reilly出版的介绍Tomcat的书籍 (ISBN 0-596-00318-8) 1的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。 版本差异 (主要版本) Apache Tomcat 7.x 是目前的开发焦点。它在汲取了Tomcat 6.0.x优点的基础上,实现了对于Servlet 3.0、JSP 2.2和EL 2.2等特性的支持。除此以外的改进列表如下: · Web应用内存溢出侦测和预防 · 增强了管理程序和服务器管理程序的安全性 · 一般 CSRF保护 ...

Created 13136-05-13 · Updated 13136-05-13 · 2 min · 396 words · -

tomcat config, server, user

tomcat config, server, user server Listener 监听器,用来监听某些事件的发生。 VersionLoggerListener,启动时对tomcat,java,操作系统信息打印日志。 JreMemoryLeakPreventionListener, JreMemoryLeakPreventionListener,防止内存溢出的监听器。 http://liuxi.name/blog/20160608/jvm-full-gc-hourly.html GlobalResourcesLifecycleListener,初始化定义在元素GlobalNamingResources下的全局JNDI资源 ThreadLocalLeakPreventionListener,防止ThreadLocal溢出监听器。 connectionTimeout - 网络连接超时,单位: 毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。 keepAliveTimeout - 长连接最大保持时间 (毫秒) user config Tomcat 6 <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="role1" password="tomcat" roles="role1"/> <user username="admin" password="admin" roles="admin,manager"/> <user username="hhh" password="123456" roles="role1,tomcat,admin,manager"/> </tomcat-users> Tomcat 7 <role rolename="manager"/> <role rolename="manager-gui"/> <role rolename="admin"/> <role rolename="admin-gui"/> <user username="tomcat" password="tomcat" roles="admin-gui,admin,manager-gui,manager"/>

Created 12126-11-12 · Updated 12126-11-12 · 1 min · 72 words · -

tomcat 开机启动, jsvc

tomcat 开机启动, jsvc 参考http://tomcat.apache.org/tomcat-7.0-doc/setup.html的介绍,tomcat自带了jsvc工具, 需要先安装gcc, make 在tomcat的bin目录下: cd $CATALINA_HOME/bin tar xvfz commons-deamon-native.tar.gz cd commons-daemon-1.0.x-native-src/unix ./configure make cp jsvc ../.. cd ../.. 设置启动脚本 在$CATALINA_HOME/bin/commons-daemon-1.0.x-native-src/unix/samples目录下有一个Tomcat7.sh文件,将其复制到/etc/init.d/m目录下并命名为tomcat: sudo cp Tomcat7.sh /etc/init.d/tomcat add following lines to the file. ### BEGIN INIT INFO # Provides: tomcat # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start tomcat at boot time # Description: Enable service provided by tomcat. ### END INIT INFO CATALINA_HOME=/xxx/xxx/xxx/apache-tomcat-7.0.22 export CATALINA_HOME JAVA_HOME=/opt/jvm/jdk1.7.0 export JAVA_HOME 修改运行级别 ...

Created 12126-11-12 · Updated 12126-11-12 · 1 min · 96 words · -

servlet-api.jar

servlet-api.jar 用于在servlet环境下开发程序的一组api,虽然叫servlet-api.jar但其实包里除了大部分的接口外还有一些javabean和抽象类、之所以叫api是因为这个包是开发基于servlet规范的标准接口(这个接口的含义和java里的interface不同,不要混淆)。 既然开发jsp、servlet的程序,就应该知道这是基于http(请求、响应)协议的,那么在这里请求和响应就对应为servlet-api.jar中的ServletRequest和ServletResponse接口,接口中定义了作为一个请求和一个响应信息应该具备的方法,比如从请求信息中可以获取客户端的ip,用户提交的信息等等,从响应信息中可以获取客户端的输出流,响应类型等等,当然中间的过程是由servlet容器封装好的,等我们开发servlet时会直接使用这些接口来编写具体的业务代码,其他的处理过程就全由容器处理了。 当然这个jar的接口是按照servlet规范编写的,面向标准接口编程的好处就是我们开发出的一个web工程即可以部署到tomcat、也可以部署到weblogic或其他servlet容器下运行,所有的servlet容器都使用了相同接口所以我们可以无缝移植(定义标准很重要),还记得jdbc吧?只要用接口访问数据库即可,你不必担心底层是什么数据库。 但也许你不会在每个应用服务器下都搜到这个名字的jar(tomcat里有),因为不同的servlet容器的功能不同,比如一些功能强大的服务器除了实现了基础的servlet规范外还支持一些javaee的规范(如ejb,jms等等),所以这组api可能会被不同的厂商封装到自己的jar中,如weblogic就放到了weblogic.jar中.

Created 23236-10-23 · Updated 23236-10-23 · 1 min · 5 words · -