一、context的作用
context表示web应用的上下文,是连接web应用和服务器的桥梁。它定义了web应用在服务器中的路径和属性。context的配置对于web应用的运行和访问有重要的作用。
在tomcatserver.xml中配置context主要有两种方式:通过全局context定义所有web应用的公共属性,或者在每个web应用的配置文件中设置context,隔离各个web应用的属性。
二、全局context的配置
在tomcatserver.xml的Host元素中可以定义全局context,这个定义将应用到所有部署在该服务器上的web应用。在全局context中可以设置基础属性,例如JSP文件的缓存,session的默认超时时间等等。
<Host name="localhost" appBase="webapps"> ... <Context path="" docBase="ROOT" debug="0" reloadable="true"> <!-- 基础属性的配置 --> <!-- 缓存JSP文件 --> <!-- 静态文件的MIME type --> <!-- session的默认超时时间 --> </Context> ... </Host>
三、web应用context的配置
在web应用中定义context比在全局context中定义更具有针对性,可以根据不同web应用的需求设置不同的属性。context可在web应用的META-INF或WEB-INF目录下的context.xml文件中进行配置。
<Context path="/mywebapp" debug="0" reloadable="true"> <!-- 特殊属性的配置 --> <!-- JNDI数据源 --> <!-- session的超时时间 --> <!-- 文件上传大小 --> </Context>
需要注意的是,如果要在应用程序的web.xml文件中重写context的属性,需要将context的reloadable属性设置为false,即:
<Context path="/mywebapp" debug="0" reloadable="false">
四、context属性的详解
context的属性非常多,根据需求设置不同的属性有利于优化web应用的性能和安全,下面列举几个常用的属性进行详解。
1、path属性
path属性限定了该web应用的根路径,这个属性必须要唯一,不能与其他的web应用重复。默认情况下,没有明确定义路径的web应用将被配置为ROOT。可以通过设置一个JSP页面作为默认页面来代替网站根目录的默认index.html或index.jsp。
2、docBase属性
docBase属性表示当前web应用的根目录在文件系统中的路径。如果该web应用是WAR文件,则docBase属性是WAR文件的绝对路径。docBase还支持一个以”~/”结尾的目录,表示该目录是相对于tomcat的home目录的;以”../”或者”./”开头的路径表示相对于CATALINA_HOME或者CATALINA_BASE的路径。
3、reloadable属性
reloadable属性表示是否允许在运行时重新加载web应用。对于开发人员来说这个属性很有用,因为它可以使在应用程序没有停止的情况下重新加载新的资源。而对于生产环境,不建议开启reloadable属性,因为在加载新的资源时可能会带来一些潜在的问题。
4、debug属性
debug属性表示启动调试模式,主要用于开发人员调试应用程序。如果开启了debug模式,应用程序会产生大量的调试信息,这些信息会写入到日志文件中,因此可能会导致日志文件占用过多的磁盘空间。因此在生产环境中也不建议开启debug模式。
5、session超时时间
session超时时间表示一个应用程序中没有活动的session将会超时并失效的时间。可以通过设置context中的session超时时间来限制某个session的生存时间,也可以通过设置全局的session超时时间来控制所有应用程序的session超时时间。
以上是一些常见的context属性的介绍,可以根据不同的需求设置不同的属性,来达到优化性能和提高安全性的目的。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/301517.html