JavaWeb应用的定义
JavaWeb应用由一组Servlet/JSP,HTML,JAVA类,以及其它可绑定的资源构成,它可以在任何实现Servlet规范的Servlet容器上运行。
从定义中可以看到JavaWeb包含了如下内容:
1 Servlet组件: Servlet接口实现类,包含了可以被服务器调用运行的代码
2 JSP组件: 包含Java程序的HTML文档,但客户端请求一个JSP文档时,它会被先转换成一个Servlet
3 JAVA类: 开发人员定义的与web应用相关的类
4 静态文档: 存放于服务器的文件系统中,如:HMTL
5 客户端类: 由客户端来运行,如Applet
6 web.xml文件:JavaWeb应用的配置文件,该文件必须位于web应用的WEB-INF文件下
JavaWeb应用的目录结构
假定开发一个helloapp的web应用,其目录结构如下:
WEB-INF目录下的classes目录和lib目录都可以存放java类文件,但是classes的优先级大于lib
在Tomcat中发布JavaWeb应用
1 Tomcat 6.x中的目录结构
Tomcat目录中的lib和WEB-INF中的lib都可以存放jar文件,但二者有区别:
Tomcat目录中lib存放的jar不仅可以被Tomcat访问,还可以被JavaWeb访问,而WEB-INF中lib存放的jar只能被JavaWeb访问
Tomcat 6.x和Tomcat 5.x的不同:
2 Tomcat如何加载类
Tomcat的类加载器负责加载Tomcat本身以及JavaWeb所需的类,假定Tomcat要为avaWeb加载一个Simple类,其加载顺序为:
(1) 到WEB-INF/classes中寻找Simple.class
(2) 到WEB-INF/lib中的jar文件中寻找Simple.class
(3) 到Tomcat中的lib目录中寻找Simple.clsss
(4) 到Tomcat中lib目录中的jar文件中寻找
3 按照默认的方式发布JavaWeb应用
将JavaWeb应用的所有文件复制到Tomcat的<CATALINA_HOME>/webapps目录下,这是发布的最快捷方式。这些web应用会运行在默认的"localhost"虚拟主机上,虚拟主机运行在默认的"Catalina"Engine组件上。
Tomcat既可以运行开放式的web应用目录,也可以运行打包的web应用(.war文件)
4 web组件的URL
无论是开放式的目录,还是打包的情况,web应用默认的URL都是web应用的根目录。比如有一个叫helloapp的web应用,那么URL入口为/helloapp。
对于HTML或者JSP,他们的URL和文件路径之间存在对应关系,如一个login.html的文件路径为helloapp/login.html,那么它的URL为http://localhost:8080/helloapp/login.html.
而对于Servlet,必须在配置文件web.xml中对其映射url