当前位置: 代码迷 >> Web前端 >> Tomcat_曹筑波的个人总结(第一次课)
  详细解决方案

Tomcat_曹筑波的个人总结(第一次课)

热度:416   发布时间:2012-11-14 10:12:19.0
Tomcat_曹建波的个人总结(第一次课)

Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是7.0。

WEB应用的相关知识

Web应用程序简介

应用程序:指允许用户执行特定任务的软件程序,主要分为桌面应用程序和Web应用程序两种类型。

桌面应用程序(Desktop Application):

  • 一般是指采用客户机/服务器结构(Client/Server)的应用程序。
  • C/S模式将应用与服务分离,系统具有稳定性和灵活性
  • C/S模式配备的是点对点的结构模式,适用于局域网,有可靠的安全性
  • 由于客户端实现与服务器端的直接连接,没有中间环节,因此响应速度快
  • 在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升级,每台客户机都要安装客户机程序,系统升级和维护较为复杂

Web应用程序(Web Application):

  • Web应用程序一般是指采用浏览器和服务器结构(Browser/Server,简称B/S结构)的应用程序。
  • Web应用程序由Web服务器和Web客户端组成。
  • Web服务器:Web服务器上装有某个应用程序,这个Web服务器应用程序负责接收客户请求进行处理,向客户返回结果
  • Web客户端:允许用户请求服务器上的某个资源,并且向客户端返回结果。Web应用程序的客户端一般是指Web浏览器。Web浏览器就是一个软件,它知道怎么与服务器通信,它还有一个重要任务,就是解释HTML代码,把Web页面呈现给用户

Web应用程序完整的“请求-响应”流程


B/S模式的优点:

  1. 易于维护:基于B/S模型的系统当需要升级或维护时,只需修改服务器程序即可。
  2. 易于实现。B/S模型的表现层可以用制作网页的html来实现,浏览器和网页设计技术已经相当成熟。而且用Java技术开发的Web系统可以安装在任意一种服务器系统平台上,也就是常说的具有跨平台性。
  3. 使用方便,无论客户在什么地方,只要服务器正在运行,客户就能通过网络进行连接,实现对数据的访问和操作。

 

HTTP协议

 

URL:UniformResource Locator(统一资源定位符)

       例如,http://www.it315.org:80/java/index.html

主要的WEB服务器软件

       IIS 、Apache 、Tomcat

安装Tomcat

Tomcat官方站点:http://tomcat.apache.org/

从官网上下载压缩包直接解压(放的非中文,空格的目录下)即可

Tomcat 的启动与停止

双击 bin 目录下的 startup.bat 文件

输入 http://localhost:8080/,显示如下界面代表安装成功


常见启动问题

JAVA_HOME环境变量

在windows中设置JAVA_HOME环境变量

只要在setclasspath.bat批处理文件第一次使用JAVA_HOME环境变量之前的任何地方,将JAVA_HOME环境变量设置为JDK的主目录,就可以使用startup.bat文件启动Tomcat了。

端口占用问题 :netstat -na命令和fport工具(可以查看有哪些网络端口号被监听)

 

配置WEB站点的虚拟目录

1.虚拟web目录的映射概念和原理:

概念

如果想要让某台计算机的一个目录内容,能被外面的浏览器通过http协议访问,则步骤如下:

  1. 首先要在这台计算机上安装和启动一个web服务器软件
  2. 其次还要将该目录映射成一个web站点目录。这个web站点目录通常称为虚拟目录。
  3. 一个web站点上只能有一个虚拟目录的根目录,其他的虚拟目录都必须是该目录的子目录。
  4. 一般根目录用/符号表示,根目录和该根目录下的子目录或资源文件也以/符号进行分割。

原理的注意事项:

  1. 一个文件系统目录可以被映射为多个虚拟web目录
  2. 虚拟Web子目录名称可以是多级目录结构的形式
  3. Tomcat按照最长路径匹配原则处理请求的URL

2.设置web站点的目录:

(1)设置WEB站点的虚拟根目录

      1.tomcat\webapps\ROOT中只要直接导入一个html文档就可以直接访问

      2.server中用<Host></Host>标签中设置<Context></Context>标签也可以设置根目录

         绝对路径:<Contextpath=”” docBase=e:/myweb Debug=0/>

         相对路径:<Contextpath=”” docBase=. Debug=0/>

          注:一个host为一个web站点,在host中有一个appBase=webapps是基准路径,而相对的路径是基准与基准路径说的,即把webapps设为虚拟的根目录,但一般不改变根。在写标签的时候记住要加尾标签 /

(2)设置web站点的虚拟子目录:

       第一种:server中添加

      <Context path=/bookdocBase=e:\test Debug=0/>

     注:debug的功能不是必须的,它显示的是在后台输出的多少,0表示少, 1表示多

     第二种:webapps下设置的文件夹里的html就可被自动当成是虚拟的子目录

     第三种:把想要发布的html文档达成包,可以对其包进行访问

1)对压缩包设置虚拟的子目录第一种

          在server中设置 <Context path=/studentdocBase=e:\myweb.war/>

          访问时:http://localhost:8080/student/1-1-2.html

          注:解压缩war的压缩之后,执行时自动的把压缩的文件压缩到webapps

2)对压缩包设置虚拟的子目录第二种

         直接把压包拷贝到webapps下就可以,但要注意在访问时的虚拟的子目录是和压缩的名字是一样的,所有要注意路径。

         注意:打包时的命令:jar命令是用来打包的cd myweb

         jar cvf myweb(压缩的文件名).war .(当前目录下的所有文件)

3.部署描述符和目录的默认网页

(1)部署描述符

         部署描述符是web.xml,并且存在两个地方

        一个是在Tomcat/conf/web.xml下(因为在这里面的xml是共有的)

        一个是在每一个应用程序虚拟子目录写WEB_INF/web.xml

(2)默认网页的设置:

        第一种:在conf中的web.xml中的最下面有<welcome-file-list>这个标签里是默认的文件

        在虚拟的子目录下拷贝一个名为indexhtml文件,在运行的时候直接在路径下打虚拟的目录就可以访问,就是因为有web.xml默认的文件

       第二种:在虚拟的目录中自己建一个Web.xmlweb.xml是在WEB_FIN文件夹下

配置虚拟主机

 

基于主机名的虚拟主机

1)浏览器访问web资源的过程-------------就是在地址栏上输入路径的过程:

          格式:http://IP地址(或主机名):端口号/目录名称/网页文件名称

          举例: http://www.csdn.net/book/java.html

2)虚拟主机及实现原理:

  • 目的:在一台计算机上创建多个WEB站点,并为每个WEB站点设置不同的主目录和虚拟子目录,每个WEB站点作为各自独立的网站分配给不同的公司或部门。
  • 好处:多个公司或部门的网站就可以共用同一台计算机,而用户感觉每个公司和部门都有各自独立的网站。多个没有实力在Internet上架设自己专用服务器的中小公司可以联合租用一台WEB服务器,对外提供各自的WEB服务而互不影响。

原理:

  • WEB服务器上的每个WEB站点必须设置有不同的标识信息
  • WEB浏览器发出的连接和请求信息中包含WEB站点的标识信息


WEB站点的标识信息:

IP地址、端口号、主机名

 

详细的实现过程

1两个站点:

  1. 主机名:site1http://site1:8080/index.html
  2. 主机名:site2http://site2:8080/index.html

基于主机名的虚拟主机的设置:

  • Connector 连接器监听客户端发来的请求
  • Engine 引擎标签用来处理客户请求的,接收连接器的请求并处理完之后返回给连接器
  • Engine中有 Host虚拟主机,一个web站点

2)在server中加一对Host标签,因为有两个站点

<Host name=”site1”appBase=”e:virtudlHost1”>
<Context path=”” docBase=”.” >
</Host>
<Host name=”site2”appBase=”e:virtudlHost2”>
<Context path=””docBase=”.” >
</Host>


3http://sitel:8080/test1.html不能访问,因为sitel是域名,在提交请求时必须先添加域名,根据以下路径添加域名

c:\WINDOWS\system32\drivers\hosts添加域名

127.0.0.1 site1

127.0.0.1 site2

4http://sitel:8080/test1.html可正确访问

基于端口号的虚拟主机

1)创建两个站点:

web站点:8080

web站点:8081

提交请求:http://localhost:8080/index.html

提交请求:http://localhost:8080/index.html

2)在server中配置:在</Service>后创建多个<Service>标签

<Service name="Tomcat_second">
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Engine name="Catalina"defaultHost="localhost">
<Host name="site2"appBase="E:\virtudlHost2">
<Context path=""docBase="."/>
</Host>
</Engine>
</Service>
 


  相关解决方案