tomcat路径的配置

一、server.xml <Context docBase="wtest" path="/wtest/dest" reloadable="true"/>

其中,docBase代表本地路径,可以是相对路径也可以是绝对路径

   path代表网络路径

   docBase和path是一一对应的

  webapps/ROOT和/也是一一对应的

举例:docBase路径可以是D:apache-tomcat-8.5.35webappswtest(绝对路径)或者wtest(相对路径,相对于webapps来说)

   path路径就是http://127.0.0.1:8080/wtest/dest

浏览器请求的路径=协议+://+ip+:+port+contextpath(上下文路径)+url-pattern

二、web.xml的详解

这里的version=3.1是和servlet-api.jar的版本相关联的,

而且之所以xml文件能进行联想也是根据命名空间的web-app_3_1.xsd决定的

该文档中有两个命名空间一个是默认的命名空间由xmlns定义,默认前缀(主要目地是为了应用文件内容的标签或者属性)

                                        另一个是xsi的命名空间由xmlnx:xsi定义,前缀是xsi(主要目地是为了应用xsi:schemaLocation标签或者属性)

xsi:schemaLocation的模式如下:xsi:schemaLocation="key1 value1 kay2 value2 key3 value3 ..."

url-pattern匹配原则:精确匹配>最长路径匹配(包括‘/*’)>扩展名匹配(包括jspServlet,即'*.jsp')>缺省匹配(包括defaultServlet,即'/')

<url-pattern>/*</url-pattern> 会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)

三、使用eclipse+maven直接运行web项目时,这里需要配置好:但是这只是仅限于直接运行,编译成war包时,不需要配置这里,只需要配置maven pom.xml就可以了

  

 

四、默认的web.xml

这个web.xml在${catalina.home}conf/web.xml目录一下,它里面配置了两个servlet

第一个servlet:

defaultServlet:处理静态文件的servlet

他可以匹配到任何的路径,也可以和他配置成相同的url-pattern,从而覆盖掉它

    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

第二个servlet:

jspServlet: 处理所有的jsp文件

    <servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
        <url-pattern>*.jspx</url-pattern>
    </servlet-mapping>

五、tomcat调优: 

1、tomcat启动慢:jdk1.8.0_192/jre/lib/security/java.security   securerandom.source=file:/dev/./urandom或者

在 catalina.sh 中加入这么一行:-Djava.security.egd=file:/dev/./urandom

2、tomcat中一共有三种运行模式,分别是:bio,nio,apr:(配置apr模式)

bio是阻塞式IO操作,使用的是传统的java i/o处理方式,对于每一个请求都要创建一个线程来进行处理,所以开销较大不适合处理高并发的场景

nio是基于java中非阻塞IO操作的API实现,比传统的i/o处理方式有更高的并发运行性能

apr是从操作系统级别解决异步IO问题,大幅度提高服务器的并发处理性能,也是Tomcat生产环境运行的首选方式(性能高)(这里要理解一下java的jni)

 

原文地址:https://www.cnblogs.com/erdanyang/p/10242733.html