转载:https://www.cnblogs.com/sunshine-1/p/8990044.html

https://www.cnblogs.com/kismetv/p/7228274.html

                        

Tomcat 配置文件的解析

前言

Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛。server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的一个组件;通过对xml文件中元素的配置,可以实现对Tomcat中各个组件的控制。因此,学习server.xml文件的配置,对于了解和使用Tomcat至关重要。

一、一个server.xml配置实例

二、server.xml文档的元素分类和整体结构

  1、整体结构

  2、元素分类

三、核心组件

  1、Server

  2、Service

  3、Connector

  4、Engine

  5、Host

  6、Context

四、核心组件的关联

  1、整体关系

  2、如何确定请求由谁处理?

  3、如何配置多个服务

五、其他组件

  1、Listener

  2、GlobalNamingResources与Realm

  3、Valve

tomcat 目录结构

tomcat
|---bin:存放启动和关闭tomcat脚本;
|---conf:存放不同的配置文件(server.xml和web.xml);
|---doc:存放Tomcat文档;
|---lib/japser/common:存放Tomcat运行需要的库文件(JARS);
|---logs:存放Tomcat执行时的LOG文件;
|---src:存放Tomcat的源代码;
|---webapps:Tomcat的主要Web发布目录(包括应用程序示例);
|---work:存放jsp编译后产生的class文件;
——————————————————————————————————————————————————————————————————————————

                     

Tomcat 的配置文件由4个 xml 文件构成,context.xml、web.xml、server.xml、tomcat-users.xml 这4个文件。每个文件都有自己的功能与配置方法,下列将逐一介绍这几个文件的配置:

                    

一、context.xml 文件

Context.xml 是 Tomcat 公用的环境配置,tomcat 服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器。推荐在 $CATALINA_BASEconf/context.xml 中进行独立的配置。因为 server.xml 是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载,而context.xml 文件则不然。

下面是context.xml文件的配置

 <Context path="/eml" docBase="eml" debug="0" reloadbale="true" privileged="true">  

     <WatchedResource>WEB-INF/web.xml</WatchedResource>  

     <WatchedResource>WEB-INF/eml.xml</WatchedResource> #监控资源文件,如果web.xml || eml.xml改变了,则自动重新加载改应用。  

     <Resource name="jdbc/testSiteds"   #表示指定的jndi名称
auth="Container"   #表示认证方式,一般为Container
type="javax.sql.DataSource"
maxActive="100"   #连接池支持的最大连接数
maxIdle="40"     #连接池中最多可空闲maxIdle个连接
maxWait="30000"   #连接池中连接用完时,新的请求等待时间,毫秒
username="txl"    #表示数据库用户名
password="123456"   #表示数据库用户的密码
driverClassName="com.mysql.jdbc.Driver"   #表示JDBC DRIVER
url="jdbc:mysql://localhost:3306/testSite" />   #表示数据库URL地址 </Context>

context.xml的三个作用范围

1. tomcat server 级别:

在$CATALINA_BASE/conf/context.xml 里配置,如果你在这个地方配置、那么这个配置文件将会被所有的webApp共享 。

2. Host 级别:

在 $CATALINA_BASE/conf/Catalina/${hostName} 里添加 context.xml,继而进行配置,这个配置将会被这个主机上的所有webapp共享。

3. web app 级别:

在 $CATALINA_BASE/conf/Catalina/${hostName} 里添加 ${webAppName}.xml,继而进行配置。

此时,path="",

webAppName 即为 path属性的值,也就是访问的虚拟目录。

另:tomcat 服务器文件中的 $CATALINA_BASE/webapps 目录下的所有文件夹都是一个应用。这个时候不需要自己动手配置,服务器默认将文件夹名映射成虚拟目录名称。还可以通过 $CATALINA_BASE/webapps/{App}/META-INF/context.xml 来配置,这个是在web应用中自己添加的,配置和其它一样。

<context> 标签是使用,

二、web.xml文件

Web应用程序描述文件,都是关于是Web应用程序的配置文件。所有Web应用的 web.xml 文件的父文件。

<web-app >
2 <filter></filter>
3 <filter-mapping></filter-mapping>
4 <servlet></servlet>
5 <servlet-mapping></servlet-mapping>
6 <session-config></session-config>
7 <mime-mapping></mime-mapping>
8 <welcome-file-list></welcome-file-list>
9 </web-app >
<!--
2 filter 配置Servlet过滤器
3 filter-name 定义过滤器的名字。当有多个过滤器时,不能同名
4 filter-class 指定实现这一过滤的类,这个类负责具体的过滤事务
5 -->
6 <filter>
7 <filter-name>SampleFilter</filter-name>
8 <filter-class>mypack.SampleFilter</filter-class>
9 </filter>
10
11 <!--
12 filter-mapping 设定过滤器负责过滤的URL
13 filter-name 过滤器名。这里的名字一定要和filter中的过滤器名匹配
14 url-pattern 指定过滤器负责过滤的URL
15 -->
16 <filter-mapping>
17 <filter-name>SampleFilter</filter-name>
18 <url-pattern>*.jsp</url-pattern>
19 </filter-mapping>
20
21 <!--
22 servlet 配置Servlet.
23 servlet-name 定义Servlet的名字
24 servlet-class 指定实现这个servlet的类
25 init-param 定义Servlet的初始化参数和参数值,可有多个init-param。在servlet类中通过getInitParamenter(String name)方法访问初始化参数
26 load-on-startup 指定当Web应用启动时,装载Servlet的次序。
27 当值为正数或零时:Servlet容器先加载数值小的servlet,再依次加载其他数值大的servlet.
28 当值为负或未定义:Servlet容器将在Web客户首次访问这个servlet时加载它
29 -->
30 <servlet>
31 <servlet-name>SampleServlet</servlet-name>
32 <servlet-class>mypack.SampleServlet</servlet-class>
33 <init-param>
34 <param-name>initParam1</param-name>
35 <param-value>2</param-value>
36 </init-param>
37 <load-on-startup>1</load-on-startup>
38 </servlet>
39
40 <!--
41 配置servlet映射(下面代码为SampleServlet指定的相对URL为"/sample":
42 servlet-name 指定servlet的名字,这里的名字应该和<Servlet>元素中定义的名字匹配。
43 url-pattern 指定访问这个servlet的URL。只需给出相对路径。
44 -->
45 <servlet-mapping>
46 <servlet-name>SampleServlet</servlet-name>
47 <url-pattern>/sample</url-pattern>
48 </servlet-mapping>
49
50 <!--配置session session用来设定HttpSession的生命周期。单位(秒)-->
51 <session-config>
52 <session-timeout>30</session-timeout>
53 </session-config>
54
55 <!--配置Wel0come0文件清单-->
56 <welcome-file-list>
57 <welcome-file>login.jsp</welcome-file>
58 <welcome-file>index.htm</welcome-file>
59 </welcome-file-list>

该文件基本不用配置,Tomcat7 支持 Servlet3.0 注解定义,无需配置 web.xml。为了使 Tomcat 能够运行 CGI,必须注释掉<servlet-name> CGI 的那段。

更多细节请参考:http://blog.163.com/ny_lonely/blog/static/18892427320136925044357

三、server.xml文件

server.xml是对tomcat的设置,可以设置端口号,添加虚拟机这些的,是对服务器的设置

下面则是server.xml配置文件的详解:

<Server port="8005" shutdown="SHUTDOWN">
2 <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
3 <Listener className="org.apache.catalina.security.SecurityListener" />
4 <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
5 <Listener className="org.apache.catalina.core.JasperListener" />
6 <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
7 <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
8 <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
9 <GlobalNamingResources>
10 <!-- 全局命名资源,来定义一些外部访问资源,其作用是为所有引擎应用程序所引用的外部资源的定义 --!>
11 <Resource name="UserDatabase" auth="Container"
12 type="org.apache.catalina.UserDatabase"
13 description="User database that can be updated and saved"
14 factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
15 pathname="conf/tomcat-users.xml" />
16 </GlobalNamingResources>
17 <!-- 定义的一个名叫“UserDatabase”的认证资源,将conf/tomcat-users.xml加载至内存中,在需要认证的时候到内存中进行认证 -->
18 <Service name="Catalina">
19 <!-- # 定义Service组件,同来关联Connector和Engine,一个Engine可以对应多个Connector,每个Service中只能一个Engine --!>
20 <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
21 <!-- 修改HTTP/1.1的Connector监听端口为80.客户端通过浏览器访问的请求,只能通过HTTP传递给tomcat。还可以设置server与URIEncoding参数 -->
22 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
23 <Engine name="Catalina" defaultHost="test.com">
24 <!-- 修改当前Engine,默认主机是,www.test.com -->
25 <Realm className="org.apache.catalina.realm.LockOutRealm">
26 <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
27 resourceName="UserDatabase"/>
28 </Realm>
29 # Realm组件,定义对当前容器内的应用程序访问的认证,通过外部资源UserDatabase进行认证
30 <Host name="test.com" appBase="/web" unpackWARs="true" autoDeploy="true">
31 <!-- 定义一个主机,域名为:test.com,应用程序的目录是/web,设置自动部署,自动解压 -->
32 <Alias>www.test.com</Alias>
33 <!-- 定义一个别名www.test.com,类似apache的ServerAlias -->
34 <Context path="" docBase="www/" reloadable="true" />
35 <!-- 定义该应用程序,访问路径"",即访问www.test.com即可访问,网页目录为:相对于appBase下的www/,即/web/www,并且当该应用程序下web.xml或者类等有相关变化时,自动重载当前配置,即不用重启tomcat使部署的新应用程序生效 -->
36 <Context path="/bbs" docBase="/web/bbs" reloadable="true" />
37 <!-- 定义另外一个独立的应用程序(虚拟主机),访问路径为:www.test.com/bbs,该应用程序网页目录为/web/bbs -->
38 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/web/www/logs"
39 prefix="www_access." suffix=".log"
40 pattern="%h %l %u %t &quot;%r&quot; %s %b" />
41 <!-- 定义一个Valve组件,用来记录tomcat的访问日志,日志存放目录为:/web/www/logs如果定义为相对路径则是相当于$CATALINA_HOME,并非相对于appBase,这个要注意。定义日志文件前缀为www_access.并以.log结尾,pattern定义日志内容格式,具体字段表示可以查看tomcat官方文档 -->
42 </Host>
43 <Host name="manager.test.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
44 <!-- 定义一个主机名为man.test.com,应用程序目录是$CATALINA_HOME/webapps,自动解压,自动部署 -->
45 <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="172.16.100.*" />
46 <!-- 定义远程地址访问策略,仅允许172.16.100.*网段访问该主机,其他的将被拒绝访问 -->
47 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/web/bbs/logs"
48 prefix="bbs_access." suffix=".log"
49 pattern="%h %l %u %t &quot;%r&quot; %s %b" />
50 <!-- 定义该主机的访问日志 -->
51 </Host>
52 </Engine>
53 </Service>
54 </Server>

1、<Server>元素:
  是整个配置文件的根元素。表示整个Catalina容器。

属性:
  className:实现了org.apache.catalina.Server接口的类名,标准实现类是org.apache.catalina.core.StandardServer类;
  Port:Tomcat服务器监听用于关闭Tomcat服务器的命令(必须);
  Shutdown:发送到端口上用于关闭Tomcat服务器的命令;

2、<Connector>元素:
  连接器,负责接收客户的请求,以及向客户端回送响应的消息。

HTTP连接器:

属性:
  allowTrace:是否允许HTTP的TRACE方法,默认为false;
  emptySessionPath:如果设置为true,用户的所有路径都将设置为/,默认为false;
  enableLookups:调用request、getRemoteHost()执行DNS查询,以返回远程主机的主机名,如果设置为false,则直接返回IP地址;
  maxPostSize:指定POST方式请求的最大量,没有指定默认为2097152;
  protocol:值必须为HTTP1.1,如果使用AJP处理器,该值必须为AJP/1.3;
  proxyName:如这个连接器正在一个代理配置中被使用,指定这个属性,在request.getServerName()时返回;
  redirectPort:如连接器不支持SSL请求,如收到SSL请求,Catalina容器将会自动重定向指定的端口号,让其进行处理;
  scheme:设置协议的名字,在request.getScheme()时返回,SSL连接器设为”https”,默认为”http”;
  secure:在SSL连接器可将其设置为true,默认为false;
  URIEncoding:用于解码URL的字符编码,没有指定默认值为ISO-8859-1;
  useBodyEncodingForURI:主要用于Tomcat4.1.x中,指示是否使用在contentType中指定的编码来取代URIEncoding,用于解码URI查询参数,默认为false;
  xpoweredBy:为true时,Tomcat使用规范建议的报头表明支持Servlet的规范版本,默认为false;
  acceptCount:当所有的可能处理的线程都正在使用时,在队列中排队请求的最大数目。当队列已满,任何接收到的请求都会被拒绝,默认值为10;
  bufferSize:设由连接器创建输入流缓冲区的大小,以字节为单位。默认情况下,缓存区大的大小为2048字节;
  compressableMimeType:MIME的列表,默认以逗号分隔。默认值是text/html,text/xml,text/plain;
  compression:指定是否对响应的数据进行压缩。off:表示禁止压缩、on:表示允许压缩(文本将被压缩)、force:表示所有情况下都进行压缩,默认值为off;
  connectionTimeout:设置连接的超时值,以毫秒为单位。默认值为60000=60秒;
  disableUploadTimeOut:允许Servlet容器,正在执行使用一个较长的连接超时值,以使Servlet有较长的时间来完成它的执行,默认值为false;
  maxHttpHeaderSize:HTTP请求和响应头的最大量,以字节为单位,默认值为4096字节;
  maxKeepAliveRequest:服务器关闭之前,客户端发送的流水线最大数目。默认值为100;
  maxSpareThreads:允许存在空闲线程的最大数目,默认值为50;
  minSpareThreads:设当连接器第一次启协创建线程的数目,确保至少有这么多的空闲线程可用。默认值为4;
  port:服务端套接字监听的TCP端口号,默认值为8080(必须);
  socketBuffer:设Socket输出缓冲区的大小(以字节为单位),-1表示禁止缓冲,默认值为9000字节;
  toNoDelay:为true时,可以提高性能。默认值为true;
  threadPriority:设JVM中请求处理线程优先级。默认值为NORMAL-PRIORITY;

例如:

 <Connector
2 port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false"
3 redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />

AJP连接器:
  用于将Apache与Tomcat集成在一起,当Apache接收到动态内容请求时,通过在配置中指定的端口号将请求发送给在此端口号上监听的AJP连接器组件。

属性:
  backlog:当所有可能的请求处理线程都在使用时,队列中排队的请求最大数目。默认为10,当队列已满,任何请求都将被拒绝;
  maxSpareThread:允许存在空闲线程的最大数目,默认值为50;
  maxThread:最大线程数,默认值为200;
  minSpareThreads:设当连接器第一次启动时创建线程的数目,确保至少有这么多的空闲线程可用,默认值为4;
  port:服务端套接字的TCP端口号,默认值为8089(必须);
  topNoDelay:为true时,可以提高性能,默认值为true;
  soTimeout:超时值;

3、<Engine>元素:
为特定的Service处理所有的请示。每个Service只能包含一个Engine元素,它负责接收和处理此Service所有的连接器收到的请求,向连接发回响应,并最终显示在客户端。<Engine>至少有一个<Host>元素,必须至少有一个<Host>属性的名字与defaultHost指定的名字相匹配。

属性:
  className:实现org.apache.catalina.Engine接口,默认实现类为org.apache.catalina.core.StandardEngine类;
  defaultHost:默认主机名,值必须与<Service>的name值相匹配;
  name:指定Engine的逻辑名字(必须);
  jvmRoute:在负载匀衡中使用的标识符,必须唯一;

例如:

 <Engine name="Cataline" defaultHost="localhst">

4、<Host>元素:
表示一个虚拟主机,为特定的虚拟主机处理所有请求。

属性:
  appBase:设定应用程序的基目录,绝对路径或相对于%CATALINA_HOME%的路径名;
  autoDeploy:指示Tomcat运行时,如有新的WEB程序加开appBase指定的目录下,是否为自动布署,默认值为true;
  className:实现了org.apache.catalina.Host接口的类,标准实现类为org.apache.catalina.core.StandardHost类;
  deployOnStartup:Tomcat启动时,是否自动部署appBase属性指定目录下所有的WEB应用程序,默认值为true;
  name:虚拟主机的网络名(必须);

标准Host实现类org.apahce.catalina.core.StandardHost支持的附加属性:  

  deployXML:为false将不会解析WEB应用程序内部的context.xml,默认值为true;
  unPackWARs:虚拟主机指定临时读写使用的目录的路径名,不设,Tomcat会在%CATALINA_HOME%/work目录下提供一个合适的目录;

1 <Host name="localhst" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
2
配置虚拟主机:
3 <Hostname="xxx" appBase="/test">
4 <Contentpath=" " docBase="www/"/>
5 </Hostname>

5、<context>元素:
一个WEB应用程序,处理当前WEB应用程序的所有请求,每一个<Context>必须使用唯一的上下文路径。

属性:
  className:实现了org.apache.catalina.Context接口的类,标准实现类org.apache.catalina.core.StandardContext类;
  cookies:是否将Cookie应用于Session,默认值为true;
  crossContext:是否允许跨域访问,为true时,在程序内调用ServletContext.getContext()方法将返回一个虚拟主机上其它web程序的请求调度器;默认值为false,调 径用  getContext()返回为null;
  docBase:绝对路径或相对于Host的appBase 属性的相对路径;
  privileged:为true,允许Web应用程序使用容器的Servlet;
  path:指定上下文路径。一个虚拟主机中,上下文路径必须唯一;
  reloadable:为true,Tomcat运行时,如果WEB-INF/classes和WEB-INF/lib目录中有改变,Tomcat会自动重新加载该WEB应用程序。虽方便,但开销也大,默认值为false,我们在调用可以打开,发布后再关闭;
  cacheMaxSize:静态资源缓存最大值,以KB为单位,默认值为10240KB;
  cachingAllowed:是否允许静态资源缓存,默认为true;
  caseSensitive:默认为true,资源文件名大小写敏感,如果为false大小写不敏感;
  unpackWAR:默认为true;
  workDir:为WEB应用程序内部的Servlet指定临时读写的目录路径名。如没有设置,则Tomcat会在%CATALINA_HOME%/work目录下提供一个合适的目录;

  一个 server 有一个 service,一个 service 里有多个 connector 和一个 engine,不同的
connector 除了端口可能不同,协议也可能不同。多个connector 对应一个 engine。  engine
代表我们应用程序的容器。一个 engine 中有一个到多个 host,一个host 代表我们的一个虚拟主机。host 里又有一个到多个
context,一个 context 代表了一个应用程序的虚拟子站点。

四、tomcat-users.xml

Tomcat Manager是Tomcat自带的、用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。Tomcat是Java领域使用最广泛的服务器之一,因此Tomcat Manager也成为了使用非常普遍的功能应用。

在默认情况下,Tomcat Manager是处于禁用状态的。准确地说,Tomcat
Manager需要以用户角色进行登录并授权才能使用相应的功能,不过Tomcat并没有配置任何默认的用户,因此需要我们进行相应的用户配置之后才能使用Tomcat
Manager。

Tomcat Manager的用户配置是在Tomcat安装目录/conf/tomcat-users.xml文件中进行管理的。

Tomcat Manager的用户配置非常简单,下面我们以一个具体的配置为例:

 <tomcat-users>
2   <role rolename="manager-gui"/>
3   <role rolename="manager-script"/>
4   <user username="tomcat" password="tomcat" roles="manager-gui"/>
5   <user username="admin" password="123456" roles="manager-script"/>
6 </tomcat-users>

如上所示,我们只需要在tomcat-users节点中配置相应的role(角色/权限)和user(用户)即可。一个user节点表示单个用户,属性usernamepassword分别表示登录的用户名和密码,属性roles表示该用户所具备的权限。

user节点的roles属性值与role节点的rolename属性值相对应,表示当前用户具备该role节点所表示的角色权限。当然,一个用户可以具备多种权限,因此属性roles的值可以是多个rolename,多个rolename之间以英文逗号隔开即可。

稍加思考,我们就应该猜测到,rolename的属性值并不是随意的内容,否则Tomcat怎么能够知道我们随便定义的rolename表示什么样的权限呢。实际上,Tomcat已经为我们定义了4种不同的角色——也就是4个rolename,我们只需要使用Tomcat为我们定义的这几种角色就足够满足我们的工作需要了。

以下是Tomcat Manager 4种角色的大致介绍(下面URL中的*为通配符):

manager-gui
允许访问html接口(即URL路径为/manager/html/*)
manager-script
允许访问纯文本接口(即URL路径为/manager/text/*)
manager-jmx
允许访问JMX代理接口(即URL路径为/manager/jmxproxy/*)
manager-status
允许访问Tomcat只读状态页面(即URL路径为/manager/status/*)

从Tomcat Manager内部配置文件中可以得知,manager-guimanager-scriptmanager-jmx均具备manager-status的权限,也就是说,manager-guimanager-scriptmanager-jmx三种角色权限无需再额外添加manager-status权限,即可直接访问路径/manager/status/*

配置tomcat的时候遇到了以下问题:

  1.刚开始需要用户名密码,不知道用户名和密码是什么,但是输入什么都不正确。

  解决办法:

  自己在tomcat-users.xml中按格式添加用户 conf文件夹里面

  默认是注释掉了的,这主要是考虑到服务器的安全,如果是本地测试,去掉以下这段注释,然后重启动服务器,再输入

   <role rolename="tomcat"/>

    <role rolename="role1"/>

    <user username="tomcat" password="tomcat" roles="tomcat"/>

    <user username="both" password="tomcat" roles="tomcat,role1"/>

    <user username="role1" password="tomcat" roles="role1"/>

  用户和密码都一目了然了。

  2.进入manager界面之后,显示的是403 Access Denied。

  解决办法:

  在conf/tomcat-users.xml文件中看到这么一段话:

  NOTE:  By default, no user is included in the "manager-gui" role required

    to operate the "/manager/html" web application.  If you wish to use this app,

    you must define such a user - the username and password are arbitrary.

  也就是说,为了考虑安全,tomcat默认还是没有manager-gui的管理权限的,如果想要使用manager

  的话,需要自行加入管理权限(角色)。

  需要加一个这样的权限(角色)

  <role rolename="manager-gui"/>

  然后再加到需要的用户名中去

  <user username="tomcat" password="tomcat" roles="tomcat,manager-gui"/>

Tomcat 配置文件的解析的更多相关文章

  1. Tomcat配置(二):tomcat配置文件server.xml详解和部署简介

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  2. Tomcat(二):tomcat配置文件server.xml详解和部署简介

    Tomcat系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1. 入门示例:虚拟主机提供web服务 该示例通过设置虚拟主机来提供web服务 ...

  3. Tomcat 架构原理解析到架构设计借鉴

    Tomcat 发展这么多年,已经比较成熟稳定.在如今『追新求快』的时代,Tomcat 作为 Java Web 开发必备的工具似乎变成了『熟悉的陌生人』,难道说如今就没有必要深入学习它了么?学习它我们又 ...

  4. tomcat配置文件详解

    Tomcat系列之服务器的安装与配置以及各组件详解   tomcat 配置文件详解

  5. mybatis源码-解析配置文件(四-1)之配置文件Mapper解析(cache)

    目录 1. 简介 2. 解析 3 StrictMap 3.1 区别HashMap:键必须为String 3.2 区别HashMap:多了成员变量 name 3.3 区别HashMap:key 的处理多 ...

  6. mybatis源码-解析配置文件(四)之配置文件Mapper解析

    在 mybatis源码-解析配置文件(三)之配置文件Configuration解析 中, 讲解了 Configuration 是如何解析的. 其中, mappers作为configuration节点的 ...

  7. 设置tomcat配置文件,在Myeclipse中修改jsp文件之后不用重启tomcat

    在Myeclipse中创建的Web程序在修改类或者jsp页面后需要重动ttomcat的,要重新加载一次的,即重新启动tomcat一次.重启时比较慢,及浪费资源及时间, 设置tomcat配置文件,在My ...

  8. [svc]tomcat配置文件详解

    Tomcat系列之服务器的安装与配置以及各组件详解 tomcat 配置文件详解 tomcat安全管理规范

  9. Spring——ClassPathXmlApplicationContext(配置文件路径解析 1)

    ClassPathXmlApplicationContext     在我的 BeanFactory 容器文章中主要提及了 BeanFactory 容器初始化(Spring 配置文件加载(还没解析)) ...

随机推荐

  1. Spark的几个问题

    1.application是由driver和executor组成的,executor可以分成task,task又可以分成为stage.当一个任务提交给spark之后,spark机群的主节点会出现dri ...

  2. 安装 Windows Service

    1.打开 VS 命令行窗口 2. installutil /u  service文件路径  (卸载原有服务) 3, installutil /i  service 文件路径 (安装服务)

  3. java Web EL表达式详解

    1.EL表达式的简介 EL表达式是一种JSP技术,能够代替JSP中原本要用Java语言进行显示的语句,使得代码更容易编写与维护.最基本的语法是${express}. 2.获取并显示数据 从四个域中通过 ...

  4. 07-Location之正则匹配

    大网站专门有自己的图片服务器,起码也得单独放一个目录里面. 淘宝网有些图片开启了防盗链(即使是小图片,也不让你下载,真小气).163新闻可以下载. 用正则匹配uri中的image,就是说你的uri中到 ...

  5. Mongodb的安装与启动

    下载链接: http://www.mongodb.org/downloads ------------------------------------------------------------- ...

  6. laravel 验证表单信息

    1控制器验证 $this->validate($request,[ 'Student.name'=>'required|min:2|max:20', 'Student.age'=>' ...

  7. 535. Encode and Decode TinyURL 长短URL

    [抄题]: TinyURL is a URL shortening service where you enter a URL such as https://leetcode.com/problem ...

  8. hadoop 2.7.3 (hadoop2.x)使用ant制作eclipse插件hadoop-eclipse-plugin-2.7.3.jar

    为了做mapreduce开发,要使用eclipse,并且需要对应的Hadoop插件hadoop-eclipse-plugin-2.7.3.jar,首先说明一下,在hadoop1.x之前官方hadoop ...

  9. orzdba工具安装注意事项

    orzdba是一个监控mysql性能的一个比较好用的perl脚本,是淘宝开源的小工具,下载地址http://code.taobao.org/p/orzdba/src/trunk/ 配置过程中除了参照& ...

  10. jqentitydetail

    using System;using System.Collections;using System.Collections.Generic;using System.Linq;using Syste ...