前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tomcat卷五---Web 应用配置,管理配置和JVM配置

Tomcat卷五---Web 应用配置,管理配置和JVM配置

作者头像
大忽悠爱学习
发布2022-05-09 14:00:57
6410
发布2022-05-09 14:00:57
举报
文章被收录于专栏:c++与qt学习

Tomcat卷五---Web 应用配置,管理配置和JVM配置

  • Web 应用配置
    • ServletContext 初始化参数
    • 会话配置
    • Servlet配置
    • Listener配置
    • Filter配置
    • 欢迎页面配置
    • 错误页面配置
  • Tomcat 管理配置
    • host-manager
    • manager
  • JVM 配置
    • JVM内存模型图
    • JVM配置选项

Web 应用配置

web.xml 是web应用的描述文件, 它支持的元素及属性来自于Servlet 规范定义 。

Tomcat 中, Web 应用的描述信息包括 tomcat/conf/web.xml 中默认配置 以及 Web 应用 WEB-INF/web.xml 下的定制配置。

ServletContext 初始化参数

​我们可以通过 添加ServletContext 初始化参数,它配置了一个键值对,

这样我们可以在 应用程序中使用 javax.servlet.ServletContext.getInitParameter()方法获取参数。

代码语言:javascript
复制
<context‐param>
    <param‐name>contextConfigLocation</param‐name>
    <param‐value>classpath:applicationContext‐*.xml</param‐value>
    <description>Spring Config File Location</description>
</context‐param>

会话配置

用于配置Web应用会话,包括 超时时间、Cookie配置以及会话追踪模式。它将覆盖 server.xml 和 context.xml 中的配置。

代码语言:javascript
复制
 <session-config>
        <session-timeout>30</session-timeout>
        <cookie-config>
            <name>JESSIONID666</name>
            <domain>localhost</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>

配置解析:

1) session‐timeout : 会话超时时间,单位 分钟

2) cookie‐config: 用于配置会话追踪Cookie

name:Cookie的名称

domain:Cookie的域名

path:Cookie的路径

comment:注释

http‐only:cookie只能通过HTTP方式进行访问,JS无法读取或修改,此项可以增 加网站访问的安全性。

secure:此cookie只能通过HTTPS连接传递到服务器,而HTTP 连接则不会传递该 信息。注意是从浏览器传递到服务器,服务器端的Cookie对象不受此项影响。

max‐age:以秒为单位表示cookie的生存期,默认为‐1表示是会话Cookie,浏览器 关闭时就会消失。

3) tracking‐mode :用于配置会话追踪模式,Servlet3.0版本中支持的追踪模式: COOKIE、URL、SSL

A. COOKIE : 通过HTTP Cookie 追踪会话是最常用的会话追踪机制, 而且 Servlet规范也要求所有的Servlet规范都需要支持Cookie追踪。

B. URL : URL重写是最基本的会话追踪机制。当客户端不支持Cookie时,可以采 用URL重写的方式。当采用URL追踪模式时,请求路径需要包含会话标识信息,Servlet容器 会根据路径中的会话标识设置请求的会话信息。如: http://www.myserver.com/user/index.html;jessionid=1234567890。

C. SSL : 对于SSL请求, 通过SSL会话标识确定请求会话标识。

Servlet配置

Servlet 的配置主要是两部分, servlet 和 servlet-mapping :

代码语言:javascript
复制
    <servlet>
        <servlet-name>DServlet</servlet-name>
        <servlet-class>D</servlet-class>
        <init-param>
            <param-name>kk</param-name>
            <param-value>kk_value</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        <enabled>true</enabled>
    </servlet>

    <servlet-mapping>
        <servlet-name>DServlet</servlet-name>
        <url-pattern>/d</url-pattern>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

1) servlet‐name : 指定servlet的名称, 该属性在web.xml中唯一。

2) servlet‐class : 用于指定servlet类名

3) init‐param: 用于指定servlet的初始化参数, 在应用中可以通过 HttpServlet.getInitParameter 获取。

4) load‐on‐startup: 用于控制在Web应用启动时,Servlet的加载顺序。 值小于0, web应用启动时,不加载该servlet, 第一次访问时加载。

5) enabled: true , false 。 若为false ,表示Servlet不处理任何请求。

6) url‐pattern: 用于指定URL表达式,一个 servlet‐mapping可以同时配置多个 url‐ pattern。

Servlet 中文件上传配置:

代码语言:javascript
复制
<servlet>
    <servlet‐name>uploadServlet</servlet‐name>
    <servlet‐class>cn.itcast.web.UploadServlet</servlet‐class>
    <multipart‐config>
        <location>C://path</location>
        <max‐file‐size>10485760</max‐file‐size>
        <max‐request‐size>10485760</max‐request‐size>
        <file‐size‐threshold>0</file‐size‐threshold>
    </multipart‐config>
</servlet>

配置说明:

1) location:存放生成的文件地址。

2) max‐file‐size:允许上传的文件最大值。 默认值为‐1, 表示没有限制。

3) max‐request‐size:针对该 multi/form‐data 请求的最大数量,默认值为‐1, 表示 无限制。

4) file‐size‐threshold:当数量量大于该值时, 内容会被写入文件。

Listener配置

Listener用于监听servlet中的事件,例如context、request、session对象的创建、修 改、删除,并触发响应事件。Listener是观察者模式的实现,在servlet中主要用于对 context、request、session对象的生命周期进行监控。在servlet2.5规范中共定义了8中 Listener。在启动时,ServletContextListener 的执行顺序与web.xml 中的配置顺序一 致, 停止时执行顺序相反。

代码语言:javascript
复制
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener‐
    class>
</listener>

Filter配置

​ filter 用于配置web应用过滤器, 用来过滤资源请求及响应。 经常用于认证、日志、加 密、数据转换等操作, 配置如下:

代码语言:javascript
复制
<filter>
    <filter‐name>myFilter</filter‐name>
    <filter‐class>cn.itcast.web.MyFilter</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>myFilter</filter‐name>
    <url‐pattern>/*</url‐pattern>
</filter‐mapping>

配置说明:

1) filter‐name: 用于指定过滤器名称,在web.xml中,过滤器名称必须唯一。

2) filter‐class : 过滤器的全限定类名, 该类必须实现Filter接口。

3) async‐supported: 该过滤器是否支持异步

4) init‐param :用于配置Filter的初始化参数, 可以配置多个, 可以通过 FilterConfig.getInitParameter获取

5) url‐pattern: 指定该过滤器需要拦截的URL。

欢迎页面配置

welcome-file-list 用于指定web应用的欢迎文件列表。

代码语言:javascript
复制
<welcome‐file‐list>
    <welcome‐file>index.html</welcome‐file>
    <welcome‐file>index.htm</welcome‐file>
    <welcome‐file>index.jsp</welcome‐file>
</welcome‐file‐list>

尝试请求的顺序,从上到下。

上面的欢饮页面是默认的配置,我们可以在当前项目WEB-INF下面的web.xml中进行个性化配置,替换默认配置

错误页面配置

error-page 用于配置Web应用访问异常时定向到的页面,支持HTTP响应码和异常类两种 形式。

代码语言:javascript
复制
	<error-page>
        <error-code>500</error-code>
        <location>/500.html</location>
    </error-page>

    <error-page>
        <error-code>404</error-code>
        <location>/404.html</location>
    </error-page>

Tomcat 管理配置

从早期的Tomcat版本开始,就提供了Web版的管理控制台,他们是两个独立的Web应 用,位于webapps目录下。

Tomcat 提供的管理应用有用于管理的Host的host-manager 和用于管理Web应用的manager。

host-manager

Tomcat启动之后,可以通过 http://localhost:8080/host-manager/html 访问该Web应 用。

host-manager 默认添加了访问权限控制,当打开网址时,需要输入用户名和密码 (conf/tomcat-users.xml中配置) 。

所以要想访问该页面,需要在conf/tomcat-users.xml 中配置,并分配对应的角色:

1) admin-gui:用于控制页面访问权限

2) admin-script:用于控制以简单文本的形式进行访问 配置如下:

代码语言:javascript
复制
<role rolename="admin‐gui"/>
<role rolename="admin‐script"/>
<role rolename="manager-gui"/>
<user username="kk" password="kk" roles="admin-script,admin-gui,manager-gui"/>
在这里插入图片描述
在这里插入图片描述

manager

manager的访问地址为 http://localhost:8080/manager, 同样, manager也添加了页 面访问控制,因此我们需要为登录用户分配角色为:

代码语言:javascript
复制
<role rolename="manager-gui"/>
在这里插入图片描述
在这里插入图片描述

Server Status

在这里插入图片描述
在这里插入图片描述

JVM 配置

最常见的JVM配置当属内存分配,因为在绝大多数情况下,JVM默认分配的内存可能不能 够满足我们的需求,特别是在生产环境,此时需要手动修改Tomcat启动时的内存参数分 配。

对JVM不了解的,可以参考我的JVM专栏系列文章

JVM内存模型图

在这里插入图片描述
在这里插入图片描述

JVM配置选项

windows 平台(catalina.bat):

代码语言:javascript
复制
set JAVA_OPTS=‐server ‐Xms2048m ‐Xmx2048m ‐XX:MetaspaceSize=256m 
‐XX:MaxMetaspaceSize=256m ‐XX:SurvivorRatio=8
代码语言:javascript
复制
-Xms: 初始堆大小
-Xmx: 最大堆大小
-Xmn: 年轻代大小
-XX:+PrintGCDetails 打印gc日志详情
-XX:SurvivorRatio=8 eden与survivor的比例,当为8的时候,eden占年轻代的80%,survivor区总的占20%,但survivor区要再分成两个survivor,所以,survivor大小为10%
-XX:MinHeapFreeRatio=minimum 堆中最小空闲大小的比例
-XX:MaxHeapFreeRatio=maximum 堆中最大空闲大小的比例
-XX:NewRatio=ratio 年轻代与老年代的比例关系,但要注意的是,默认情况下为2,即老年代占2/3,年轻代占1/3
-XX:NewSize=size 新生代最小值
-XX:MaxNewSize=size 新生代最大值
-XX:+AggressiveHeap
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Tomcat卷五---Web 应用配置,管理配置和JVM配置
  • Web 应用配置
    • ServletContext 初始化参数
      • 会话配置
        • Servlet配置
          • Listener配置
            • Filter配置
              • 欢迎页面配置
                • 错误页面配置
                • Tomcat 管理配置
                  • host-manager
                    • manager
                    • JVM 配置
                      • JVM内存模型图
                        • JVM配置选项
                        相关产品与服务
                        容器服务
                        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档