Tomcat服务器Day05-Tomcat的Web应用配置

169 阅读4分钟

Tomcat的Web应用配置

基本概念

  • web.xmlweb应用的描述文件,支持来自于Servlet规范定义的元素以及属性

  • Tomcat,Web应用的描述信息包括:

    • tomcat/conf/web.xml中的默认配置
    • Web应用的WEB-INF/web.xml的定制配置
属性描述
welcom-file-list
servlet-mapping
servlet
filter-mapping
listener
context-param用于添加ServletContext初始化参数 配置了键值对,可以使用javax.servlet.ServletContext的getInitParameter() 方法获取参数
absolute-ordering
adminstered-object
connection-factory
data-source
deny-uncovered-http-method
description
display-name
distributable
ejb-local-ref
ejb-ref
env-entry
error-page
icon
jms-connection-factory
jms-destination
jsp-config
locale-encoding-mapping-list
login-config
mail-session
message-destination
message-destination-ref
mime-mapping
module-name
persistence-context-ref
persistence-unit-ref
post-construct
pre-destory
resource-ref
security-constraint
security-role
service-ref
session-config

ServletContext初始化参数配置

  • context-param:

    • 用于添加ServletContext初始化参数
    • 配置了一个键值对,可以通过javax.servlet.ServletContextgetInitParameter() 方法获取参数
<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>classpath:applicationContext-*.xml</param-value>
	<description>Spring ServletContext Config File Location</description>
</context-param>

Session会话配置

  • session-config:

    • 用于配置web应用会话相关配置.包括超时时间 ,Cookie配置以及会话追踪模式
    • 会覆盖server.xmlcontext.xml中的配置
<session-config>
	<session-timeout>30</session-timeout>
	<cookie-config>
		<name>JSESSIONID</name>
		<domain>www.oxford.com</domain>
		<path>/</path>
		<comment>Session Cookie</comment>
		<http-only>true</http-only>
		<secure>false</secure>
		<max-age>3600</max-age>
	</cookie-config>
	<tracking-mode>COOKIE</tracking-mode>
</session-config>
  • session-timeout: 会话超时时间.单位为分钟

  • cookie-config: 配置会话追踪的cookie

    • name: Cookie的名称
    • domain: Cookie的域名
    • path: Cookie的路径
    • comment: 备注说明
    • http-only: Cookie只能通过HTTP方式进行访问.无法在JS中进行读取和修改,可以增加网站访问的安全性
    • secure: Cookie只能通过HTTPS连接的方式传递到服务器,不会通过HTTP进行该Cookie的传递.该配置影响的是浏览器到服务器之间的传递,不会影响服务器端的Cookie对象
    • max-age: Cookie的生存周期,单位为秒.默认值为 -1, 表示浏览器关闭时,则会话Cookie就消失
  • tracking-mode: 配置会话追踪模式 .Servlet3中支持三种会话追踪模式 - COOKIE, URL, SSL

    • COOKIE: HTTP COOKIE的会话追踪模式是最常用的会话追踪机制 .Servlet规范要求都需要支持Cookie追踪

    • URL:

      • URL重写是最基本的会话追踪机制,当客户端不支持Cookie时,可以采用URL重写的方式
      • 当采用URL追踪模式时,请求路径需要包含会话标识信息 ,Servlet容器会根据路径中的会话标识设置请求的会话信息.比如http://www.oxford.com/user/index.xml;jessionid=11223
      • SSL: 对于SSL请求,通过设置SSL会话标识确定请求的会话标识

Servlet配置

  • Servlet配置主要包括两部分配置:

    • servlet
    • servlet-mapping
<servlet>
	<servlet-name>servlet</servlet-name>
	<servlet-class>com.oxford.web.Servlet</servlet-class>
	<init-param>
		<param-name>fileName</param-name>
		<param-value>init.conf</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
	<enable>true</enable>
</servlet>

<servlet-mapping>
	<servlet-name>servlet</servlet-name>
	<!-- 可以配置多个映射路径 -->
	<url-pattern>*.do</url-pattern>
	<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
  • servlet-name: 指定servlet的名称,该属性在web.xml中是唯一的
  • servlet-class: 指定servlet类名
  • init-param: 指定servlet的初始化参数,在应用中可以通过HttpServlet.getInitParameter获取
  • load-on-startup: 用于控制Web应用启动时 ,Servlet的加载顺序. 当值小于0,Web应用启动时,不加载该Servlet. 在第一次访问Servlet时加载
  • enable: 指定Servlet是否处理请求. 如果为false表示Servlet不处理任何请求

Listener监听器配置

  • listener:

    • 用于监听Servlet中的事件. 比如context, request, session对象的创建,修改和删除,并且触发相应的事件
    • Listener是一种观察者模式,在Servlet中主要对context,request,session的生命周期进行监控
    • ServletContextListener的执行顺序和web.xml中的配置顺序一致,停止时顺序相反
<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

Filter过滤器配置

  • filter:

    • 用于配置Web应用过滤器,用来过滤资源请求及响应
    • 适用于认证,日志,加密,数据转换等应用场景
<filter>
	<filter-name>filter</filter-name>
	<filter-class>com.oxford.web.Filter</filter-class>
	<async-supported>true</async-supported>
	<init-param>
		<param-name>language</param-name>
		<param-value>CN<param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>filter<filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>
  • filter-name: 用于指定过滤器名称,在web.xml中,过滤器名称必须唯一
  • filter-class: 配置过滤器的全限定类名,该类必须实现Filter接口
  • async-supported: 配置过滤器是否支持异步
  • init-param: 配置Filter的初始化参数,可以配置多个.通过FilterConfig.getInitParameter获取
  • url-pattern: 配置过滤器需要拦截的URL

欢迎页面配置

  • welcome-file-list: 用于指定Web应用的欢迎页面列表
<welcome-file-list>
	<welcome-file>index.html</welcome-file>
	<welcome-file>index.htm</welcome-file>
	<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
  • 按照从上往下的顺序请求相关页面

错误页面配置

  • error-page: 用于配置Web应用响应异常时定向到的页面,支持HTTP响应码和异常类两种形式
<error-page>
	<error-code>404</error-code>
	<location>404.html</location>
</error-page>
<error-page>
	<error-code>500</error-code>
	<location>500.html</location>
</error-page>
<error-page>
	<exception-type>java.lang.Exception</exception-type>
	<location>error.jsp</location>
</error-page>