整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

tomcat之web.xml配置文件

tomcat之web.xml配置文件

eb.xml配置文件

web.xml是web应用的部署文件,包括tomcat中conf/web.xml中的默认配置以及web应用WEB-INF/web.xml下的定制配置

主要分为以下几类

  • ServletContext初始化参数
  • 会话配置
  • Servlet声明配置
  • 应用生命周期监听器
  • Filter定义及映射
  • MIME类型映射
  • 欢迎文件列表
  • 错误页面
  • 本地化及编码映射
  • 安全配置
  • JNDI配置

ServletContext初始化参数

使用添加初始化参数,可以使用javax.servlet.ServletContext.getInitParameter()方法获取参数值

<context-param>
    <param-name>name</param-name>
  <param-value>value</param-value>
</context-param>

会话配置

用于配置web应用会话,包括超时时间、cookie配置以及会话追踪模式。

<session-config>
    <session-timeout>30</session-timeout>
  <cookie-config>
      <name>jessionid</name>
    <domain>myApp.com</domain>
    <path>/</path>
    <!-- 安全性配置,只有mode为cookie时才会生效 -->
    <http-only>true</http-only>
    <!-- 安全性配置,只有mode为cookie时才会生效 -->
    <secure>true</secure>
    <max-age>3600</max-age>
  </cookie-config>
  <!-- 会话追踪模式 -->
  <tracking-mode>COOKIE</tracking-mode>
</session-config>

Servlet支持三种会话追踪模式:COOKIE、URL、SSL

  • COOKIE:通过HTTP Cookie追踪会话,当首次发起HTTP请求时,Servlet容器会发送一个用于会话的Cookie到客户端,在后续请求中,客户端会将该Cookie返回到服务端,服务端根据该Cookie确定请求会话。默认情况下,Cookie的名称为JSESSIONID,可以通过的sessionCookieName属性或者的name属性修改
  • URL:当客户端不支持Cookie时,可以采用URL重写的方式。当采用URL追踪模式时,请求路径需要包含会话标识信息,Servlet容器会根据路径中的会话标识设置请求的会话信息,参数名为jessionid
  • SSL:对于SSL请求,通过SSL会话标识确定请求会话标识

Servlet声明和映射

<servlet>
    <servlet-name>ad</servlet-name>
    <servlet-class>com.zhanghe.servlet.MyMainServlet</servlet-class>
  <init-param>
      <param-name>name</param-name>
    <param-value>value</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
  <!-- 上传文件配置 -->
  <multipart-config>
      <max-file-size>1024</max-file-size>
    <max-request-size>2048</max-request-size>
    <!-- 文件超过该大小后将写入磁盘 -->
    <file-size-threshold>0</file-size-threshold>
    <!-- 标识该Servlet是否启用 -->
    <enabled>true</enabled>
    <!-- 安全角色的引用 -->
    <security-role-ref>
      <!-- 代码中使用的角色名称 -->
        <role-name>admin</role-name>
      <!-- 对应tomcat-user.xml中服务器配置角色名称 -->
      <role-link>manager</role-link>
    </security-role-ref>
  </multipart-config>
</servlet>
<servlet-mapping>
    <servlet-name>ad</servlet-name>
  <url-pattern>*.*</url-pattern>
  <url-pattern>/myapp/*</url-pattern>
</servlet-mapping>

应用生命周期监听器

监听器要实现javax.servlet.ServletContextListener接口,执行顺序与web.xml的配置顺序一致,停止时与启动顺序相反

<listener>
    <listener-class>com.zhanghe.listener.MyListener</listener-class>
</listener>

Filter定义和映射

过滤器,用于过滤资源请求及响应

<filter>
    <filter-name>myFilter</filter-name>
  <filter-class>com.zhanghe.filter.MyFilter</filter-class>
  <init-param>
      <param-name>name</param-name>
    <param-value>value</param-value>
  </init-param>
</filter>
<filter-mapping>
    <filter-name>myFilter</filter-name>
  <!-- 也可以设置servlet-name -->
  <url-pattern>/myApp/*</url-pattern>
</filter-mapping>

MIME类型映射

设定某类型的扩展名文件使用何种应用程序打开

<mime-mapping>
    <extension>doc</extension>
  <mime-type>application/msword</mime-type>
</mime-mapping>

欢迎文件列表

<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>
    <error-code>404</error-code>
  <localtion>/404.html</localtion>
</error-page>
<error-page>
    <error-type>java.lang.Exception</error-type>
  <localtion>/error.html</localtion>
</error-page>

本地化及编码映射

<locale-encoding-mapping-list>
    <locale-encoding-mapping>
      <locale>zh</locale>
    <encoding>UTF-8</encoding>
  </locale-encoding-mapping>
</locale-encoding-mapping-list>

安全配置

为web应用增加页面的访问权限

最近准备对xx系统做一些优化工作,这里先从tomcat参数方面入手,后面再针对mysql和具体sql去做一下优化。下面基于之前介绍的tomcat参数优化来做整体介绍。


1、目前tomcat配置

可以看到目前tomcat是基本没做优化的,基本为默认参数。


2、优化后的配置

2.1、注释AJP协议

这个影响倒不是很大。

2.2、设置JVM

这里要根据服务器内存,然后自己规划下就行。

2.3、核心参数

这里的参数比较重要,影响会比较大。


3、启动日志

可以看到通讯模式改为了NIO。


参数说明

1、内存--设置JVM参数

JAVA_OPTS="-XX:PermSize=256M -XX:MaxPermSize=512m -Xms2048m -Xmx4096m -Duser.timezone=Asia/Shanghai"

说明:

  • -Xms:设置JVM初始内存大小(默认是物理内存的1/64)
  • -Xmx:设置JVM可以使用的最大内存(默认是物理内存的1/4,建议:物理内存80%)
  • -XX:PermSize :为JVM启动时Perm的内存大小
  • -XX:MaxPermSize :为最大可占用的Perm内存大小(默认为32M)

2、禁用AJP协议

注释 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

ajp协议是tomcat为了动静资源处理分离时,通过该协议可以将css、js等静态资源请求转发到Apache的http服务器处理,提高并发量。但是在优化tomcat时,没有用到Apache服务器,则需要将其禁用。

3、将BIO通讯模式修改为NIO通讯模式

<Connector connectionTimeout="20000" port="8066" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8448"/>

其中,原来的protocol="HTTP/1.1"表示遵循http1.1协议,同时,也是一个最原始的未经优化的通信协议,修改之后的 protocol="org.apache.coyote.http11.Http11NioProtocol" ,表示以 NIO模式启动。

4、并发--启用外部连接池

maxThreads:tomcat起动的最大线程数,即同时处理的任务个数,默认值为150

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="400" minSpareThreads="4"/>
<Connector connectionTimeout="20000" port="8066" executor="tomcatThreadPool" protocol="org.apache.coyote.http11.Http11NioProtocol"/>

5、配置缓存

<Connector port="xxx"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
disableUploadTimeout="true" />

说明:

  • compression 打开压缩功能
  • compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB
  • compressableMimeType 压缩类型
  • connectionTimeout 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间

6、优化连接器--最终模板

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="400" minSpareThreads="4"/>
<Connector port="8080" executor="tomcatThreadPool" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
enableLookups="false"
maxPostSize="10485760"
URIEncoding="UTF-8"
useBodyEncodingForURI="true"
maxConnections="1000"
acceptCount="1000"
minProcessors="100"
maxProcessors="1000"
disableUploadTimeout="true"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
SSLEnabled="false"
/>

说明:

  • acceptCount:允许的最大连接数,应大于等于 maxProcessors ,默认值为 100
  • enableLookups:是否反查域名,取值为: true 或 false 。为了提高处理能力,应设置为 false
  • connectionTimeout:网络连接超时,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为20000毫秒。
  • disableUploadTimeOut:允许Servlet容器,正在执行使用一个较长的连接超时值,以使Servlet有较长的时间来完成它的执行,默认值为false
  • maxPostSize:指定POST方式请求的最大量,没有指定默认为2097152

到这里tomcat的一些参数就设置好了,后面在分享一下mysql的优化参数模板。感兴趣的朋友可以关注一下~

直都在做App开发,但是对java web方面的了解比较少,最近有时间,所以自己就寻思动手从零开始搭建一个java web项目。该项目主要是给app,提供接口服务,简称项目为‘mserver’。好了,接下来,我们就开始简单的搭建项目。

一.开发所需工具。(根据你的电脑以及系统选择合适的版本下载)

1.JDK 。下载链接。

JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库。

2.eclipse开发工具。下载链接。

PS:我们在下载软件的过程中,可能会有多个不同的下载文件,例如,zip、msi等,那么这两个有什么区别吗?


  1. ZIP是免安装的软件包,MSI是微软特有压缩格式,是需要安装的软件包
  2. ZIP Archive: 压缩版本,需要自己配置
  3. MSI Installer:安装版本,安装过程中自动配置

3.Tomcat服务器。下载链接。

4.Mysq数据库。下载链接 。

如果你不习惯使用命令去操作数据库,那么推荐你使用SQLyog工具,下载链接。

PS:下载安装好JDK 后,需要配置环境变量。(以Win7电脑为例,配置环境变量)

(1).依次点击,计算机→属性→高级系统设置→高级→环境变量;

(2).打开系统变量,新建JAVA_HOME 变量,变量值填写jdk的安装目录(本人是 D:\Java\jdk1.7.0);

(3).在系统变量中找到Path变量,点击编辑,

在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

(注意原来Path的变量值末尾如果没有‘;’,先输入';'后再输入上面的代码);

(4).在系统变量中新建 CLASSPATH 变量

变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点);

经过以上几步,环境变量就配置完成了。但是,我们还得验证一下是否配置成功,运行cmd 输入 java -version,如出现以下截图显示的显示,说明配置成功。

二. 创建项目。

1.打开eclipse,先配置一下Tomcat服务器。

(1).打开windows-> preferences,找到Server下方的Runtime Environment,单击右方的Add按钮:

(2). 选择已经安装的Tomcat版本,点击Next,

(3).找到下载安装后的Tomcat,点击Finish。

经过以上几步,就可以看到,红色框中出现刚才你添加的Tomcat服务器。

2.创建项目。

(1). 打开eclipse,在Workspace空白的地方,右键,New,选择‘Dynamic Web project’,点击Next,

(2).输入项目名称,选择服务器,其他的默认就可以,点击Finish就可以了!

稍等一会,你的Eclipse中会出现两个项目,如下图所示,表示创建项目成功了。

此时,你可以'run'项目,运行后,可能会报404,这是因为你的web项目底下没有可访问的资源。那么就在项目的‘WebContent’目录底下,创建一个比较简单的jsp文件index.jsp,具体代码,如下


  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. <h1>hello world!</h1>
  11. <h2>This is my test page!</h2>
  12. <h3>Welcome to my page!</h3>
  13. </body>
  14. </html>

创建成功后,点击运行,然后在浏览器中输入“http://localhost:8080/mServer/index.jsp”,便可以看到,

经过上面两大步骤,我们的mServer接口项目已经创建成功了,我们就可以开始进行接口开发了!


上一篇:FileReader
下一篇:27响应式网站欣赏