Web应用(重点)
静态网站:
- 在webapps目录下创建一个目录(命名必须不包含中文和空格),这个目录称之为项目目录;
- 在项目目录下创建一个html文件;
动态网站:
- 在webpass目录下创建一个项目目录;
- 在项目目录下创建如下内容:
- WEB-INF目录;
-
在WEB-INF目录下创建web.xml文件
-
- 创建静态或动态页面
- WEB-INF目录;
1 创建静态应用
- 在webapps下创建一个hello目录;
- 在webapps\hello\下创建index.html;
- 启动tomcat;
- 打开浏览器访问http://localhost:8080/hello/index.html
index.html
<html>
<head>
<title>hello</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
2 创建动态应用
- 在webapps下创建hello1目录;
- 在webapps\hello1\下创建WEB-INF目录;
- 在webapps\hello1\WEB-INF\下创建web.xml;
- 在webapps\hello1\下创建index.html。
- 打开浏览器访问http://localhost:8080/hello/index.html
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
</web-app>
完整的Web应用还需要在WEB-INF目录下创建:
- classes;
- lib目录;
webapps
|- hello
|-index.html
|-WEB-INF
|-web.xml
|-classes
|-lib
- hello:应用目录,hello就是应用的名称;
- index.html:应用资源。应用下可以有多个资源,例如css、js、html、jsp等,也可以把资源放到文件夹中,例如:hello\html\index.html,这时访问URL为:http://localhost:8080/hello/html/index.html;
- WEB-INF:这个目录名称必须是大写,这个目录下的东西是无法通过浏览器直接访问的,也就是说放到这里的东西是安全的;
- web.xml:应用程序的部署描述符文件,可以在该文件中对应用进行配置,例如配置应用的首页:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
- classes:存放class文件的目录;
- lib:存放jar包的目录;
3 配置外部应用(了解)
原来我们的项目放到webapps下,现在我放到外面,也希望tomcat可以找到它!
也可以把应用放到Tomcat之外,这就是外部应用了。例如我们把上面写的hello应用从webapps目录中剪切到C盘下,即C:/hello。现在hello这个Web应用已经不在Tomcat中了,这时我们需要在tomcat中配置外部应用的位置,配置的方式一共有两种:
- conf/server.xml:打开server.xml文件,找到元素,在其中添加元素,代码如下:
server.xml
1)path:指定当前应用的名称;
2)docBase:指定应用的物理位置;
3)浏览器访问路径 http://localhost:8080/itcast_hello/index.html。
- conf/catalana/localhost:在该目录下创建itcast_hello.xml文件,在该文件中编写元素,代码如下:
1)文件名:指定当前应用的名称;
2)docBase:指定应用的物理位置;
3)浏览器访问路径:http://localhost:8080/itcast_hello/index.html。
4 理解server.xml(了解)
<Server>
<Servier>
<Connector>
<Engine>
<Host>
<Context>
我们可以把看作是一个大酒店:
< Service>:酒店的服务部门;
< Connector>:服务员;
< Engine>:后厨;
< Host>:后厨中的一个区,例如川菜区是一个、粤菜区是一个;
:后厨的一个厨师。
用户发出一个请求:http://localhost:8080/hello/index.jsp。发现是http/1.1协议,而且还是8080端口,所以就交给了处理这一请求的“服务员(处理HTTP请求的)”,“服务员”再把请求交给了“后厨()”,因为请求是要一盘水煮鱼,所以由“川菜区()”负责,因为“大老王师傅< Context>”做水煮鱼最地道,所以由它完成。
< Connector>:关心请求中的http、和8080;
< Host>:关心localhost;
< Context>:关心hello
5 映射虚拟主机(了解)
我们的目标是,在浏览器中输出:http://www.itcast.cn就可以访问我们的项目。
完成这一目标,我们需要做三件事:
修改端口号为80,这一点应该没有问题吧;
在本机上可以解析域名为127.0.0.1,这需要修改C:\WINDOWS\system32\drivers\etc\hosts文件,添加对http://www.itcast.cn和127.0.01的绑定关系;
在server.xml文件中添加一个(主机)。
1)修改端口号为80
2)绑定http://www.itcast.cn和127.0.01的绑定关系
3)server.xml文件中添加一个
-
name=”www.itcast.cn”:指定虚拟主机名为www.itcast.cn;
-
appBase=”F:/itcastapps”:指定当前虚拟主机的应用程序存放目录为F:/itcastapps。
-
在itcastapps目录下创建名为ROOT的应用,因为一个主机只可以有一个名为ROOT的应用,名为ROOT的应用在浏览器中访问是可以不给出应用名称。