Tomcat 学习 应用
what
ApacheTomcat®软件是Java Servlet,JavaServer Pages,Java Expression Language和Java WebSocket技术的开源实现。 Java Servlet,JavaServer Pages,Java表达式语言和Java WebSocket规范是根据Java社区流程开发的。 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。 Tomcat为HTML页面服务,而 实际上运行JSP 页面和Servlet。Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。 Web服务器
- Tomcat(Apache):应用最广的JavaWeb服务器,不完全支持JavaEE规范
- JBoss(Redhat):支持JavaEE,比较广,EJB容器
- GlassFish(Orcale):应用相对少
- Resin(Caucho):支持JavaEE,越来越广
- Weblogic(Orcale):支持JavaEE,收费,大型项目
- Websphere(IBM):支持JavaEE,收费,大型项目
why
web浏览器只能解析HTML资源,而JSP/Servlet动态资源浏览器无法看懂,这时候我们需要像Tomcat这种web服务器将JSP/Servlet动态资源转换成静态资源。
how
当客户端请求的页面如果是静态网页,服务器会直接将静态网页的内容响应给客户端。如果请求的是动态网页,服务器需要把填充了数据的动态网页转换成静态网页,然后再把转换后的静态网页响应给客户端 ![Tomcat响应客户端的请求](https://img-blog.csdn.net/20170707003848217?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29sb250ZW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
Tomcat安装启动
- http://tomcat.apache.org/官网下载
- 解压版本,无需安装,一台机器多个
- bin目录下startup.bat(windows脚本)启动,
shutdown.bat。 Linux下使用startup.sh和shutdown.sh
Tomcat目录结构
- /bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件
- /conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml
- /doc:存放Tomcat文档
- /server:包含三个子目录:classes、lib和webapps
- /server/lib:存放Tomcat服务器所需的各种JAR文件
- /server/webapps:存放Tomcat自带的两个WEB应用admin应用和 manager应用
- /common/lib:存放Tomcat服务器以及所有web应用都可以访问的jar文件
- /shared/lib:存放所有web应用都可以访问的jar文件(但是不能被Tomcat服务器访问)
- /logs:存放Tomcat执行时的日志文件,查看客户端访问记录等等
- /src:存放Tomcat的源代码
- /webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录
- /work:存放JSP编译后产生的class文件
- WEB应用的目录结构:假设在$CATALINA_HOME/webapps下有helloword的web应用
- /helloword:Web应用的根目录,所有的jsp文件和html文件都在此目录下
- /helloword/WEB_INF:存放该web应用发布时的描述文件web.xml
- /helloword/WEB_INFhelloword/class:存放各种class文件,Servlet文件也存放于此目录下
- /helloword/WEB_INF/lib:存放各钟Web应用所需要的jar文件。比如可以存放JDBC驱动程序的JAR文件
- Tomcat加载类和资源的顺序为(以helloword应用为例)
- helloword (/webapps/helloword/Web-INF/下的classes,lib子目录中.calss及.jar,仅helloapp可以加载)
- Bootstrap ($JAVA_HOME/jre/lib/ext/*.jar)
- System ($CLASSPATH/*.class和CLASSPATH中指定的jar)
- Common ($CATALINA_HOME/common/下的classes,lib,endores子目录中.class及.jar)
- Catalina ($CATALINA_HOME/server/下的classes,lib子目录中.calss及.jar,仅Tomcat可以加载)
- Shared ($CATALINA_HOME/shared/下的classes,lib子目录中.calss及.jar,仅所有Web应用可以加载)
* WEB-INF下的资源不允许浏览器直接访问*
访问Web资源
浏览器输入URL访问
协议名://域名:端口(80端口为默认端口可省)/路径
例如:http://localhost:80/index.jsp(Tomcat欢迎页)
Tomcat配置
- tomcat 的端口
- 修改server.xml
- port值修改为想要的端口,(修改为80端口可能遇到端口被占用的情况System或IIS占用应先停掉)
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- 修改server.xml
- tomcat配置项目路劲
- 默认部署在webapps下
- 修改server.xml
- 默认部署在webapps下
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="hello_word" docBase="D:/helloword"/>
<!--
path: 指定当前应用的名称
docBase:指定应用的物理路径
浏览器访问URL:`http://localhost/hello_word
-->
</Host>
- conf/catalana/localhost 下建hello_word.xml文件,内容为:
<Context docBase="D:/helloword"/>