一个web应用是由web组件,静态资源文件(如图片)和有关的class类、第三方类库组成的。web容器给web组件提供服务,使他们更容易开发。但是,因为web应用必须考虑以上列出的因素,创建和运行web应用不同于传统单独的基于Java类的应用。
创建,部署,运行一个web应用的过程可以用以下几步来总结:
- 编写web组件代码。
- 编写web应用的部署描述符(web.xml)。
- 编译web组件的代码和相关的类库。
- 可选地,将应用打包成部署单元(WAR包)。
- 将应用部署到web容器(tomcat)。
- 使用浏览器访问这个web应用关联的URL。
- 服务端工具类(数据库beans)。这些类通常以JavaBeans组件架构。
- 客户端类(applets和工具类)。
- web.xml:web应用部署描述符。
- Tag库描述文件。
- classes:存放服务端类的目录,象servlet,工具类,JavaBeans组件。
- tags:包含tag文件的目录,这些tag文件实现了tag类库。
- lib:包含JAR包的目录。
1 定义头元素
<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>
2 部署描述符文件内的元素
icon
| 要素 | 必填 | 描述 |
| <small-icon> | 可选 | 16*16像素的gif或者jpg图像的位置 |
| <large-icon> | 可选 | 32*32像素的gif或者jpg图像的位置 |
display-name
| 要素 | 必填 | 描述 |
| <display-name> | 可选 |
description
| 要素 | 必填 | 描述 |
| <description> | 可选 |
context-param
| 要素 | 必填 | 描述 |
| <param-name> | 必填 | 参数名 |
| <param-value> | 必填 | 参数值 |
filter
| 要素 | 是否可选 | 描述 |
| <icon> | 可选 | 上文已解释。 |
| <filter-name> | 必填 | 定义过滤器的名字,该名字关联web.xml中<filter-mapping/> |
| <display-name> | 可选 | 简称,提供给GUI工具使用 |
| <description> | 可选 | 过滤器的文本描述 |
| <filter-class> | 必填 | 过滤器对应的类,需要包含完整包名。 |
| <init-param> | 可选 | 初始化filter属性的名值对,每一个filter属性对应一个<init-param>标签 |
filter-mapping
| 要素 | 是否可选 | 描述 |
| <filter-name> | 必填 | 映射URL模式或者servlet的过滤器名字,根<filter>要素中的<filter-name>要素关联 |
| <url-pattern> | 必填或者在<servlet>要素中指定 | 描述一个解析URL时的模式。 |
| <servlet-name> | 当<url-pattern>没有时必填 | 一个servlet的名字,该servlet使过滤器执行 |
listener
| 要素 | 是否可选 | 描述 |
| <listener-class> | 可选 | 一个类的名字,关联一个web应用事件 |
servlet
| 要素 | 是否可选 | 描述 |
| <icon> | 可选 | 上面已经解释 |
| <servlet-name> | 必填 | 定义servlet的名字,根<servlet-mapping>中的<servlet-name>关联 |
| <display-name> | 可选 | 简称,GUI工具使用 |
| <description> | 可选 | servlet的文本描述 |
| <servlet-class> | 必填(或者使用<jsp-file>) | servlet对应的类名,在servlet中你只能在<servlet-class>和<jsp-file>中二选一 |
| <jsp-file> | 必填(或者使用<servlet-class>) | web应用中完整路径名的jsp文件,路径名以web应用的根目录开始 |
| <init-param> | 可选 | |
| <load-on-startup> | 可选 | 假如servlet或jsp页面有一个要花很长时间执行的init(servlet)或jspInit(jsp)方法。如查询数据库,这样第一个客户端请求上来第一次装载servelt时会产生较长的延迟,load-on-startup规定服务器在第一次启动时装载servlet,元素体为一个整数,代表次序。 |
| <run-as> | 可选 | |
| <security-role-ref> | 可选 |
servlet-mapping
| 要素 | 是否可选 | 描述 |
| <servlet-name> | 必填 | |
| <url-pattern> | 必填 |
session-config
如果一个session在一段时间内没有调用,服务器就把它丢弃了以节约内存,可以利用HttpSession的setMaxInactiveInterval方法直接设置个别session的超时值。如果不采用这种方法,则缺省的超时值由具体的服务器决定。可利用session-config给出一个明确的超时时间。单位为分钟。
| 要素 | 是否可选 | 描述 |
| <session-timeout> | 可选 |
mine-mapping
| 要素 | 是否可选 | 描述 |
| <extension> | 必填 | |
| <mime-type> | 必填 |
welcome-file-list
假如用户提供了一个http://host/webAppPrefix/directoryName/这样的包含一个目录名但没有包含文件名的URL,会发生什么事情呢?用户得到一个目录表?一个错误?还是标准问及爱你的内容?如果得到标准文件的内容是index.html,index.jsp,default.html,default.htm还是别的什么东西呢?<welcome-file>指出,如果一个URL给出一个目录名但未给出明建明,服务器应该首先试用<welcome-file>中定义的文件,如果没有找到,则结果依赖于应该服务器(如一个目录列表,tomcat需要在配置中打开这个选项)
| 要素 | 是否可选 | 描述 |
| <welcome-file> | 可选 |
error-page
| 要素 | 是否可选 | 描述 |
| <error-code> | 可选 | 指出在给定的http错误代码出现时使用的URL,URL必须以/开始 |
| <exception-type> | 可选 | 指出在出现某个给定的Java异常但未捕捉到时使用的URL,URL必须以/开始 |
| <location> | 必填 | 指出具体页面 |
taglib
| 要素 | 是否可选 | 描述 |
| <taglib-location> | 必填 | |
| <taglib-uri> | 必填 |
resource-env-ref
| 要素 | 是否可选 | 描述 |
| <description> | 可选 | |
| <resource-env-ref-name> | 必填 | |
| <resource-env-ref-type> | 必填 |
resource-ref
| 要素 | 是否必填 | 描述 |
| <description> | 可选 | |
| <res-ref-name> | 必填 | |
| <res-type> | 必填 | |
| <res-auth> | 必填 | |
| <res-sharing-scope> | 可选 |
security-constraint
| 要素 | 是否必填 | 描述 |
| <web-resource-collection> | 必填 | |
| <auth-constraint> | 可选 | |
| <user-data-constraint> | 可选 |
login-config
| 要素 | 是否必填 | 描述 |
| <auth-method> | 可选 | |
| <realm-name> | 可选 | |
| <form-login-config> | 可选 |
security-role
| 要素 | 是否必填 | 描述 |
| <description> | 可选 | |
| <role-name> | 必填 |
env-entry
| 要素 | 是否必填 | 描述 |
| <description> | 可选 | |
| <env-entry-name> | 必填 | |
| <env-entry-value> | 必填 | |
| <env-entry-type> | 必填 |
ejb-ref
ejb相关,不介绍
ejb-local-ref
ejb相关,不介绍
本文介绍了Web应用的基本组成,包括Web组件、静态资源文件等,并详细解析了Web应用的部署过程。从编写代码到最终访问URL,每个步骤都有详细的说明。此外,还深入探讨了Web模块的概念及其内部结构。
6904

被折叠的 条评论
为什么被折叠?



