Tomcat服务器 和 HTTP协议

Posted Aron_chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat服务器 和 HTTP协议相关的知识,希望对你有一定的参考价值。

WEB开发简介

* 当前网络上两种架构
    * C/S   Client/Server   客户端/服务器     需要下载客户端软件       例子:QQ       快播      暴风影音
        * 优点:服务器压力相对比较小,安全性比较高。
        * 缺点:需要下载客户端软件,总去更新。
    * B/S   Browser/Server  浏览器/服务器     不需要下载客户端软件(客户端就指浏览器)    例子:购物网站(淘宝  京东) 12306
        * 缺点:服务器压力比较大(硬件比较强)
        * 优点:浏览器,不用更新,服务器端去做更新了。

WEB相关知识

* WEB:网页。JavaWeb:使用Java语言来开发网页。
* 静态的WEB资源
    * html CSS javascript
* 动态的WEB资源
    * Servlet/JSP

* 静态和动态的区别
    * 动态的资源数据是活的,例子:假如说班长登陆淘宝,显示班长的名字。我登陆了淘宝,我的名字。

* 微软    ASP.net
* php   小巧(开发网站非常强大,处理大数据)
* RUBY  小日本

* Java语言优点:开发了网站,没有任何优势。优势是服务器端,处理业务(电信,淘宝,银行)。

* 静态Web资源:简单一句话,浏览器能看的懂的。
* 动态Web资源:先需要服务器把它转换成HTML,再给浏览器看。

服务器的简介

* 服务器整体概念:
* 硬件:一台电脑。
* 软件:服务器的软件,Tomcat服务器软件。
* 如果安装了服务器软件了,启动服务器和关闭服务器。假如启动了服务器,怎么访问?
    * 访问:http://www.baidu.com   一回车访问百度了
    * http://           代表HTTP的协议
    * www.baidu.com     域名(DNS域名服务器注册   .baidu.com  61.135.169.125)
    * 最终:http://192.168.1.100:端口号(默认值80)
    * 最终:http://192.168.1.100:80/index.html

常见的WEB服务器

* Tomcat(Apache)    开源免费的   开发中应用最广的服务器 支持JSP/Servlet规范 SSH
* JBoss             免费的     支持JAVAEE所有的规范   EJB规范 JSP/Servlet
* Weblogic  原来的公司BEA公司      收费的 大型的服务器  支持JAVAEE所有的规范   被Oracle收购了
        SUM公司(Java语言)   +   数据库(Oracle mysql(也被收购了))    +  服务器(Weblogic)
* Websphere 公司的IBM公司            收费    大型的服务器    支持JAVAEE所有的规范

Tomcat服务器

* 下载tomcat服务器,安装版本和解压版本。现在都使用解压版本(7.x)
* 解决文件,放在本地的磁盘上(目录:不要有中文和空格)
* 启动服务器:在tomcat/bin/startup.bat(批处理文件),双击文件。弹出黑色的窗口。服务器成功。(不要把黑窗口关闭)
* 访问服务器的主页:http://localhost:8080    就可以访问tomcat默认主页
* 关闭服务器:(关闭黑窗口,关闭暴力的),温柔的关闭。在bin的目录下,有shutdown.bat。双击该文件,关闭服务器。

常见问题

* 第一个注意:必须安装JDK,必须配置Java_Home环境变量。窗口一闪而过。说明环境变量没配置好。
* 不小心,已经启动了一个服务器,又想启动服务器。端口占用的问题。
    * 端口占用的问题:java.net.BindException: Address already in use: JVM_Bind
    * 解决占用的问题:
        * 先找到占用端口的应用程序,结束掉该应用程序。
            * netstat  –ano 查看所有占用端口的应用程序,找到程序的PID,要任务任务管理器中结束掉。    
            * 有一个应用一直占用,一开机就占用。
        * 修改端口号(修改tomcat服务器的端口号)。(默认是8080,改成其他的端口号)
            * Tomcat服务器的配置文件    -- tomcat/conf/server.xml的文件
            * 一般情况下改成80,80端口是HTTP协议的默认端口号,访问可以不写。
            * 如果万一占用的80端口,干掉它。系统中的服务要是占用80端口,禁用该服务。

* 如果系统自带的微软服务器IIS(World wide web publish IIS),去系统服务中把服务禁用。

Tomcat目录结构

** bin              可执行文件(启动和关闭)
***** conf          存放的Tomcat配置文件
*** lib             给Tomcat服务器运行时所需jar
*** logs            存放Tomcat运行时产生日志文件。
** temp             Tomcat运行时产生临时文件
***** webapps       Wab Applicatons(WEB应用们),在该目录下存放就是项目。
***** work          JSP翻译成.java的文件,存放在work的目录下

在webapps目录创建静态和动态的WEB资源

* webapps目录下存放的是项目,项目区分静态的WEB资源和动态的WEB资源。
* 静态和动态在webapps的目录下存在的方式不一样。
    * 如果静态的WEB资源 -- 在webapps目录创建一个文件(项目名称) -- 直接可以放在静态资源(HTML CSS JS)
    * 如果动态的WEB资源 
        * 在webapps目录下创建一个文件
        * 在该文件下创建WEB-INF的目录(名称固定、大写固定)
        * 在WEB-INF目录下web.xml的文件(必须要有,有文档声明,根节点和约束,复制一份)
        * 在WEB-INF目录下       classes文件夹(.class文件)
        * 在WEB-INF目录下       lib文件夹(引入第三方jar包)

Context上下文(虚拟路径)

* 虚拟路径:理解访问路径(默认和项目名称是相同的)。
* 发布到服务器中,作为访问路径。
* 总结:在webapps的目录下的项目的名称其实是虚拟路径(访问路径),虚拟的路径默认情况下和项目名称是相同的。

部署项目(两种方式)

* 直接把项目复制到webapps的目录下

* 原因:需要把你的系统部署到公司的服务器。
* 在tomcat/conf/server.xml -- 在<Host>标签的中间配置虚拟路径(希望找到C盘oa的项目)
    <Context path="/itcast"  docBase="C:/oa" />
    * path="项目的虚拟路径(访问路径)"
    * docBase="指定真实项目的路径"

* 也是配置虚拟路径的方式,但是不用去修改tomcat/conf/server.xml。
* 创建一个XML的配置文件,名称可以是任意(例子:hello5.xml),它就会以文件的名称作为虚拟路径(访问路径)。我就会把hello5文件的名称作为虚拟路径。 http://localhost/hello5.
* hello5文件书写的内容:
    * 文档声明
    * 直接编写<Context docBase="c:/ob"  />

WEB通信

* 访问一个网页,例如www.baidu.com,浏览器首先会去找你本地的hosts文件,如果没有找到,才会去找DNS域内里面找。

配置虚拟主机(了解)

以上是关于Tomcat服务器 和 HTTP协议的主要内容,如果未能解决你的问题,请参考以下文章

Http协议Tomcat服务器

tomcat的AJP协议及漏洞解决

JavaWeb基础知识:Tomcat服务器和http协议

简单的Tomcat实现--1.4HTTP协议

Http协议和Tomcat服务器

JAVA-WEB-Http协议和Tomcat服务器