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应用程序两种类型。
桌面应用程序(Desktop Application):
Web应用程序(Web Application):
Web应用程序完整的“请求-响应”流程
B/S模式的优点:
HTTP协议
URL:UniformResource Locator(统一资源定位符)
例如,http://www.it315.org:80/java/index.html
主要的WEB服务器软件
IIS 、Apache 、Tomcat
Tomcat官方站点:http://tomcat.apache.org/
从官网上下载压缩包直接解压(放的非中文,空格的目录下)即可
双击 bin 目录下的 startup.bat 文件
输入 http://localhost:8080/,显示如下界面代表安装成功
常见启动问题
JAVA_HOME环境变量
在windows中设置JAVA_HOME环境变量
只要在setclasspath.bat批处理文件第一次使用JAVA_HOME环境变量之前的任何地方,将JAVA_HOME环境变量设置为JDK的主目录,就可以使用startup.bat文件启动Tomcat了。
端口占用问题 :netstat -na命令和fport工具(可以查看有哪些网络端口号被监听)
1.虚拟web目录的映射概念和原理:
概念:
如果想要让某台计算机的一个目录内容,能被外面的浏览器通过http协议访问,则步骤如下:
原理的注意事项:
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=”/book”docBase=”e:\test” Debug=”0”/>
注:debug的功能不是必须的,它显示的是在后台输出的多少,0表示少, 1表示多
第二种:在webapps下设置的文件夹里的html就可被自动当成是虚拟的子目录
第三种:把想要发布的html文档达成包,可以对其包进行访问
(1)对压缩包设置虚拟的子目录第一种
在server中设置 <Context path=”/student”docBase=”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>这个标签里是默认的文件
在虚拟的子目录下拷贝一个名为index的html文件,在运行的时候直接在路径下打虚拟的目录就可以访问,就是因为有web.xml默认的文件
第二种:在虚拟的目录中自己建一个Web.xml,web.xml是在WEB_FIN文件夹下
配置虚拟主机
基于主机名的虚拟主机
(1)浏览器访问web资源的过程-------------就是在地址栏上输入路径的过程:
格式:http://IP地址(或主机名):端口号/目录名称/网页文件名称
举例: http://www.csdn.net/book/java.html
(2)虚拟主机及实现原理:
原理:
WEB站点的标识信息:
IP地址、端口号、主机名
详细的实现过程
(1)两个站点:
基于主机名的虚拟主机的设置:
(2)在server中加一对Host标签,因为有两个站点
<Host name=”site1”appBase=”e:virtudlHost1”> <Context path=”” docBase=”.” > </Host> <Host name=”site2”appBase=”e:virtudlHost2”> <Context path=””docBase=”.” > </Host>
(3)http://sitel:8080/test1.html不能访问,因为sitel是域名,在提交请求时必须先添加域名,根据以下路径添加域名
c:\WINDOWS\system32\drivers\hosts添加域名
127.0.0.1 site1
127.0.0.1 site2
(4)http://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>