JAVAWEB之Tomcat
做了两年多的web开发了,一直没有非常系统的去整理一下关于tomcat服务器的有关知识。今天刚好看到一套课程有关于web应用和tomcat的介绍,重新学习一边顺便写篇文章记录下。
Web资源介绍
WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。
Internet上供外界访问的Web资源分为:
静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。
动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。
静态web资源开发技术:Html
常用动态web资源开发技术:JSP/Servlet、ASP、PHP等 我个人简称3P技术(别想歪了么O(∩_∩)O哈哈~)
在Java中,动态web资源开发技术统称为Javaweb,我的这篇文章的重点也是教大家如何使用Java技术开发动态的web资源,即动态web页面。
CS与BS结构
C/S结构
即Client/Server (客户机/服务器) 结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。客户端和服务器端的程序不同,用户的程序主要在客户端,服务器端主要提供数据管理、数据共享、数据及系统维护和并发控制等,客户端程序主要完成用户的具体的业务。开发比较容易,操作简便,但应用程序的升级和客户端程序的维护较为困难。类似QQ
B/S结构
即Browser/Server (浏览器/服务器) 结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现。客户端基本上没有专门的应用程序,应用程序基本上都在服务器端。由于客户端没有程序,应用程序的升级和维护都可以在服务器端完成,升级维护方便。由于客户端使用浏览器,使得用户界面“丰富多彩”,但数据的打印输出等功能受到了限制。为了克服这个缺点,一般把利用浏览器方式实现困难的功能,单独开发成可以发布的控件,在客户端利用程序调用来完成。类似页游
web服务器
服务器有两种概念:
1. 硬件
2. web服务器 就是在电脑上装了一个服务器软件。
javaWeb开发常见服务器:
weblogic oracle 大型收费 支持javaee规划服务器
WebSphere ibm 大型收费 支持javaee规则服务器
Tomcat apache 开源免费 中小型的web服务器 支持jsp/servlet规范
由于本人对其它服务器也不了解,平时接触到的以tomcat较多再加上它也是开源免费的,下面我们就以tomcat作为web服务器来学习。
Tomcat安装
获取Tomcat安装程序包
tar.gz(zip)文件是Linux操作系统下的安装版本
exe文件是Windows系统下的安装版本
zip文件是Windows系统下的压缩版本
Tomcat安装有两种版本
1.安装版本 tomcat.exe
2.解压版本 解压就可以直接使用
我们使用的版本是 tomcat7
安装tomcat后,要想使用必须配置 JAVA_HOME
JAVA_HOME= D:\Java\jdk1.7.0_72 是jdk的根目录 .
Tomcat测试
在tomcat安装目录 下有一个bin目录 startup.bat文件,双击
在浏览器上输入 http://localhost:8080 能出现下面这个界面则表示成功
如果没有能成功的出现上面的界面Tomcat安装后常见问题:
1. JAVA_HOME配置 闪退
2. 端口冲突
a) 修改tomcat的端口 在tomcat安装目录 下conf 下有一个server.xml文件
<Connector port="8888" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
b)在cmd打开的窗口中输入 netstat –aov
查看到占用端口的程序的PID 在任务管理器中找到PID对应的程序结束进程。
注意:有的时候这个进程是一个系统进程,结束不了,只能采用第一种方式。若强行结束了系统进程有可能会导致蓝屏哦~~不信你可以试试
3. CATALINA_HOME问题
CATALINA_HOME配置的是tomcat的根目录
Tomcat退出
1 在bin目录 shutdown.bat
2. 直接关闭窗口
3. ctrl+c
正所谓工欲善其事必先利其器,以下两个目录结构对于我们做web应用开发者来说,必须烂熟于心。
Tomcat目录结构(重点)
Web应用目录结构()
开发web应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错.
静态和动态的web应用就在于是否有WEB-INF,如果有WEB-INF就可以存在类进行逻辑的处理,如果没有WEB-INF,那么这个网站就是静态的,只能看无法交互
html,jsp,css,js这些统称为web应用的资源文件
发布web应用到tomcat
Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。
虚似目录的映射有三种方式:
1. 直接将web应用放置到tomcat/webapps目录下就可以。
2. 当然了大多数情况web应用程序与tomcat不在一起。(Tomcat6官方文档上不建议使用这种方式了)
在tomcat/conf目录 下 server.xml文件
在文件中<Host>标签,
在</Host>结束前
<Context path=”/abc” docBase=”c:/myweb” />
Path是我们在访问myweb应用时的一个虚拟目录名称
docBase它是我们myweb应用的磁盘路径。
访问时的 http://localhost:8080/abc/hello.html
3. 虚拟目录部署
在tomcat/conf/Catalina/localhost/aaa.xml文件
在文件中写入
<Context docBase=”c:/myweb” />
其实xml文件的名称 aaa就是 path的值.聪明的你应该可以看出来,其实跟第二种没什么区别。
myeclipse与tomcat整合
当我们将myeclipse与tomcat整合后,在myeclipse中新建一个web工程add到tomcat中便可以直接通过部署到tomcat中运行起来,这到底是如何实现的呢?
可能我们会怀疑是在myeclipse中把这个web工程复制了一份然后add到了tomcat的webapps中,那么是复制整个工程吗?
首先会在tomcat的webapps目录下创建一个目录,这个目录的名字与工程的名字一样,然后把webRoot下的所有复制到这个目录下,src下的东西并没有加到tomcat中。
如果要找到a.txt文件,不能右键查看该文件的路径,因为myeclipse只是一个开发环境,tomcat才是真正的运行环境程序是在tomcat中运行的,则应该到tomcat所在路径下去找。
War文件生成
Jar文件 它就是我们java的一个可执行程序。
War文件 可以理解成是javaweb的可执行程序。
生成war文件有以下几种方式:
1.压缩成zip文件,修改后缀名为.war
2.通过myeclipse类似生成jar包的方式生成war文件
3.通过jdk中jar命令
如果war文件生成正确,讲war文件放入webapps目录下,运行tomcat服务,此时会发现,war文件自动被解压缩成一个web应用。(前提是war文件没错)