1.WEB应用的组成结构
开发web应用时,不同类型的文件有严格的存放规则,否则不仅会使web应用无法访问 还会导致web服务器自动报错。
mail:web应用所在目录(该目录自定义)
html,jsp,css,js,文件等一般存在应用根目录下,根目录下文件外界可以直接访问。
WEB-INF目录(Java类,jar包,web应用的配置文件存放在这个目录,该目录外界无法直接访问,由服务器直接调用)
classes目录存放的是Java类
lib目录存放的是Java类运行所需的jar包
web.xml文件 为web应用的配置文件。 web.xml是整个web应用程序最重要的配置文件,可用来配置首页。
2.虚拟目录的映射方式:
1).在配置文件目录下的server.xml添加语句。
具体操作:在该xml的<Host>标签下写<Context path="aa" docBase="E:\apps"/>即可。
说明:aa为映射目录,E:\apps为应用所在的绝对路径。假如应用为1.html
访问方式:在浏览器输入http://localhost:8080/aa/1.html
注意的地方:Context标签需闭合,否则tomcat可能启动不了,一闪而过,标签名,属性名得写对。
2).在配置文件目录下的Catalina目录下localhost目录下新建xml文件
具体操作:在该文件下写<Context docBase="E:\news"/>此时就不需写
path属性了,因为该映射目录就是xml文件名。
访问方式同上。
此种配置不需重启服务器。
3).让tomcat自动映射。
tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚目录。换句话说
webapps目录下的web应用,外界可以直接访问。
访问方式:在浏览器输入http://localhost:8080/apps/1.html
apps:为该应用所在的相对路径,不需要写webapps路径
3.配置虚拟主机
1)tomcat可以配置多个虚拟主机,只要在server.xml的host元素配置就行
<Host name="www.estore.com" appBase="F:\javaWeb\estore"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="WebRoot" />//配置缺省目录,路径用空串表示
</Host>
其中name属性为主机名 appBase属性为工程所在路径
后面加了<Context>标签是因为eclipse会自动生成这个目录,所有的jsp资源都在这个目录下,配置了这个访问资源时就不用写WebRoot了
2)修改本地hosts文件,毕竟这个主机域名没有DNS注册,是不会被访问的,把主机名映射到本机地址
127.0.0.1 www.estore.com
假如在WebRoot下有如下资源,index.jsp,那么我们我们可以在浏览器输入如下地址就可以访问了,配置过主机就不用写工程名了
http://www.estore.com/index.jsp(注意的是tomcat端口要为80,这样才可以省略端口号)
3) 将index.jsp配置为网站欢迎页面,即敲入http://www.estore.com就能访问
有了前面的步骤后,我们只要省略/index.jsp就行了,只需在WEB-INF的xml文件配置下,如下所示,其实这步eclipse会自动生成对于index.jsp
<welcome-file-list>
<welcome-file>资源名</welcome-file>
</welcome-file-list>
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 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"
version="2.5">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
4) 配置缺省虚拟主机
只有缺省虚拟主机才能通过IP地址访问资源,用IP地址来代替主机名
同样在server.xml里修改,具体位置如图所示
通过该博客稍微整理一下笔记