您的位置:首页 > 运维架构 > Tomcat

Tomcat 7 快速入门及应用

2017-11-21 21:27 621 查看

1. 什么是Tomcat

  Tomcat是当今最流行的一种Servlet/JSP容器。

2. 什么是上下文(Context)

  简单理解就是一个Web应用程序启动后,程序中所有内存对象和他们之间的关系组成的一种环境。代码上其实就是javax.servlet.ServletContext这个类。

  安装在一个服务器的一个特定URL名字空间(比如,/myapplication)下的所有Servlet,JSP,JavaBean等Web部件的集合构成了一个Web的应用,每一个Web应用(同一JVM),容器都会有一个背景对象,而javax.servlet.ServletContext接口就提供了访问这个背景对象的途径。

3. Tomcat与上下文

  要将Servlet/JSP应用程序部署到Tomcat时,需要显式或隐式定义一个Tomcat上下文。在Tomcat中,每一个Tomcat上下文都表示一个web应用程序。

3.1 显式定义上下文方法:

  有几种方法,包括:

在Tomcat的conf/Catalina/localhost目录下创建一个XML文件,即上下文文件,文件中必须包含一个Context元素,作为根元素。

在Tomcat的conf/server.xml文件中Host元素下面添加一个Context元素。

  如果决定给每一个上下文都创建一个XML文件,那么这个文件名就很重要,因为上下文路径是从文件名衍生得到的。例如,把一个commerce.xml文件放在conf/Catalina/localhost目录下,那么应用程序的上下文路径就是commerce,并且可以利用以下URL调用一个资源:

http://localhost:8080/commerce/resourceName


  Context元素大多没有子元素。它类似于如下,这里唯一必要的属性是docBase,它用来定义应用程序的位置。

<Context docBase="D:\apache-tomcat-7.0.57\wtpwebapps\app04b" path="/app04b" reloadable="true" source="org.eclipse.jst.jee.server:app04b"/>


  当把上下文文件添加到指定目录时,Tomcat就会自动加载应用程序。当删除这个文件时,Tomcat就会自动卸载应用程序。

3.2 隐式定义上下文:

  通过将一个war文件或者整个应用程序复制到Tomcat的webapps目录下,即隐式地部署了一个应用程序。

4. AppName与Context与IDE

  IDE通常可以设置Tomcat读取war文件的的路径,所以可能并不能在Tomcat的webapps目录下看到项目文件。还可以设置项目的应用名,如将应用名设置为/,则浏览器中访问资源的URL可能如下:

http://localhost:8080/resourceName


5. 端口Port

 HTTP/1.1 : 8080

Tomcat_HOME/conf/server.xml

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>


  当通过Tomcat_HOME/bin/startup.bat(或startup.sh)启动Tomcat时,Tomcat读取上面端口,http://localhost:8080可以访问,如果在IDE中配置server端口为8081,并且通过IDE启动项目在server上运行时,http://localhost:8080http://localhost:8081都不可以访问,只有http://localhost:8081/AppName/index.jsp可以访问。

5. server.xml

  server.xml文件中节点内可能会随IDE产生节点,产生后,bin/startup.bat将不能启动tomcat.

%TOMCAT_HOME%/conf/server.xml

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->

<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/>

</Host>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: