• Tomcat的粗略介绍


    因为工作的缘故很多项目启动需要通过Tomcat修改配置文件进行启动项目,所以相应的就了解了下Tomcat便于在以后比我更新的新人面前装逼。

    1.bin目录

    我们能用到的无非一个启动跟一个关闭没什么好说的

    唯一能说的是:bin目录的启动方式不通过myeclipse启动的话是有好处的,比较快,这是你电脑特别垃圾的情况下加速启动的心得。

    1.conf目录

    这是我今天学习的重点之一。

    可以看到这里面有web.xml、tomcat-users.xml、server.xml以及context.xml这四个配置文件。

    web.xml:该文件为Tomcat自己主页面的启动文件,基本上用来确定Tomcat的安装启动是否正常。

    Tomcat-users.xml:该文件内部可以说是一片空白,丝毫不知道用处,以后知道怎么用了再来更新。

    server.xml:是重点之一下面详细讲讲里面的参数。

    <Server port="8005" shutdown="SHUTDOWN">

    Server中的port监听关闭tomcat的请求,shutdown指定向端口发送的命令串

     <!--APR library loader. Documentation at /docs/apr.html -->
      <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
      <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
      <Listener className="org.apache.catalina.core.JasperListener" />
      <!-- Prevent memory leaks due to use of particular java/javax APIs-->
      <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
      <!-- JMX Support for the Tomcat server. Documentation at /docs/non-existent.html -->
      <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
    Listener不用说也知道是相关的配置文件路径

      <Service name="Catalina">
      
    
        <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443"
                   URIEncoding="UTF-8"/>
        
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />
    
    
        <Engine name="Catalina" defaultHost="localhost">
    
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                 resourceName="UserDatabase"/>
    
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
    
    
    
          </Host>
        </Engine>
      </Service>

    以上的代码才是重点,他是Tomcat的请求处理流程。

    1)Connector主导接收请求: 请求发送到8080端口,被监听HTTP/1.1 的 Connector获得。

    2) Connector把接收到的请求交给它所在Service的Engine来处理

    3) Engine获得请求localhost:8080/XXX/XXXX.jsp,匹配它所拥的所虚拟主机Host。

    4) Engine匹配名为localhost的Host

    5) localhost Host获得请求localhost:8080/XXX/XXXX.jsp,匹配它所拥的所Context(配置信息,除了当前目录的context文件还有D: omcat6confCatalinalocalhost中的xml文件)。

    6) Host匹配到路径为/XXX(应用名)Context

    7) path="/XXX(应用名)"的Context获得请求/xxxx,在它的映射表中寻找对应的servlet(在项目的web.xml当中)。

    8) Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类。

    9) 构造HttpServletRequest对象和HttpServletResponse对象

    10)Context把执行完了之后的HttpServletResponse对象返回给Host。

    11)Host把HttpServletResponse对象返回给Engine。

    12)Engine把HttpServletResponse对象返回给Connector。

    13)Connector把HttpServletResponse对象返回给客户端。

    以上就完成了整个流程。

    由第五步可以发现我们可以把一部分信息摆放在D: omcat6confCatalinalocalhost中的xml文件中启动web项目

    以下代码为例

    <Context path="/xxxx"
      //
    path代表的是路径名,可以认作是项目名

    docBase="xxxxx"
      //docbase代表的项目路径一般到WebRoot目录
    debug="0" reloadbale="true" privileged="true">
      //reloadbale代表的是修改class文件后是否重新加载,不建议开通
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>WEB-INF/XXX.xml</WatchedResource><Resource name="jdbc/testSiteds" 
    //jndi名称 auth
    ="Container"
    //表示认证方式,一般为Container type
    ="javax.sql.DataSource"
    //数据类型便于使用Context.lookup()方法获取dateSource后利用dateSource.getConnection()方法获得connection maxActive
    ="100"
    //最大连接数 maxIdle
    ="30"
    //连接池中最多可空闲的连接 maxWait
    ="10000"
    //连接池中连接用完时,新的请求等待时间,毫秒 username
    ="root" password="root" driverClassName="com.mysql.jdbc.Driver"
    //导入架包 url
    ="jdbc:mysql://localhost:3306/testSite" />
    //数据库链接路径
    </Context>

    由此可以方便的使用Tomcat启动项目

     
  • 相关阅读:
    2020年面向对象程序设计寒假作业1_实践题
    2020年面向对象程序设计寒假作业1_问答题
    实验5:开源控制器实践——POX
    实验4:开源控制器实践——OpenDaylight
    实验3:OpenFlow协议分析实践
    实验2:Open vSwitch虚拟交换机实践
    第一次个人编程作业
    实验1:SDN拓扑实践
    第一次博客作业
    面向对象程序设计寒假作业3
  • 原文地址:https://www.cnblogs.com/blackdeng/p/6179464.html
Copyright © 2020-2023  润新知