标签:
在ITOO中,每个war包下的web.xml都是一样的.它的结构如下:
itoo中含有多个war包,而且每个war包中web.xml都和上图的结构一样,而且配置内容都是一样的.
在Javaweb 应用中可以包含HTML 文档,Servlet,JSP和相关java类等,为了Servlet容器能够顺利地找到javaWeb 应用中的各个组件,Servlet规范规定,javaWeb应用必须采取固定的目录结构,即每种类型的组件在Web应用中都有固定的存放目录.Servlet规范还规定,javaWeb应用的配置信息存放在WEB-INF/web.xml文件中,Servlet 容器从该文件中读取配置信息.
WEB应用的组成结构:
qrc工程名
|
|----index.html,jsp....【根目录下的文件外界可以直接访问】
|
|----WEB-INF目录【该目录下的文件外界无法直接访问,有web服务器负责调用】
| |---classes目录(java类)
| |---lib目录(java类运行所需要的jar)
| |---web.xml文件(web应用的配置文件)
每一个javaWeb工程都有一个web.xml配置文件,那么他到底有什么作用呢?它是每一个web工程都必的必须的吗?
web.xml文件是用来初始化工程配置信息的,比如说welcome页面,filter,listener,servlet,servlet-mapping,启动加载级别等等,web.xml 文件是javaWeb应用的XML格式的配置文件,存放于WEB-INF子目录下.Web.xml文件由开发人员编写,供Servlet 容器访问.Web.xml文件也称为javaWeb应用发布描述文件,Servlet容器在加载和启动javaWeb应用时会读取它的web.xml文件,从中获得关于当前web应用的发布信息.当你的web工程中没用到这些当然也就不需要这个xml文件来配置你的apllication了
每一个xml文件都有定义他书写规范的schema文件,web.xml所对应的xml Schema文件中定义了多少种标签元素,web.xml中就可以出现它所定义的标签元素,也就具备哪些特定的功能。web.xml的模式文件是由Sun 公司定义的,每个web.xml文件的根元素为<web-app>中,必须标明这个web.xml使用的是哪个模式文件。
所以,web.xml文件是web应用中不可缺少的配置文件。他本身是一个XML文件。遵守XML文件的语法。在web.xml文件中
可包含以下配置信息:
.Servlet定义.
.servlet的初始化参数
.servlet及JSP的映射
.安全域配置参数
.welcome文件清单.
.资源引用
.环境变量的定义.
Servlet2.5版本的web.xml采用了XMLSchema来定义XML元素;
web.xml的元素说明:
<span style="font-family:FangSong_GB2312;font-size:18px;"><web-app> <description> <description>描述当前web应用的,这是一个描述性的信息,可有可无</description> <display-name> <display-name>在web应用中显示在web应用管理页面的名字,可有可无</display-name> <distributable> <distributable/> <!--负载平衡,应用是分布的--> <filter> <filter> <filter-name>AuthenticationFilter</filter-name> <filter-class>webbook.guestbook.AuthenticationFilter</filter-class> <init-param> <param-name>url</param-name> <param-value>/admin/login.jsp</param-value> </init-param> </filter> <filter-mapping> <filter-mapping> <filter-name>AuthenticationFilter</filter-name> <url-pattern>/admin/secure/*</url-pattern> <url-pattern>/admin/manage/*</url-pattren> </filter-mapping> <context-param> <context-param> <param-name>pageSize</param-name> <param-value>30</param-value> </context-param> <listener> <listener> <listener-class>webbook.user.OnlineUserListener</listener-class> </listener> <servlet> <servlet> <servlet-name>AddMessageServlet</servlet-name> <servlet-class>webbook.guestbook.AddMessageServlet<servlet-class> <init-param> <param-name>type</param-name> <param-value>text</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-mapping> <servlet-name>AddMessageServlet</servlet-name> <url-pattern>/servlet/AddMessage</url-pattern> </servlet-mapping> <session-config> <session-config> <session-timeout>60</session-timeout> </session-config> <mime-mapping> <mime-mapping> <extension>xls</extension> <mime-type>application/vnd.ms-excel</mime-type> </mime-mapping> <welcome-file-list> <welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>addMessage.jsp</welcome-file> </welcome-file-list> <error-page> <error-page> <error-code>404</error-code> <location>/error404.htm</location> </error-page> <error-page> <exception-type>java.io.IOException</exception-type> <location>/error500.jsp</location> </error-page></span>
--------------------------------------------------------------------------
web应用初始化
1、首先,把在web.xml文件中<listener>元素所申明的那些监听器进行实例化;
2、然后,调用那些实现了ServletContextListener接口的监听器的contextInitialized()方法;
3、实例化<filter>元素中所申明的过滤器类,调用过滤器类的init()方法;
4、最后,如果<servlet>元素中使用了<load-on-startup>子元素,则按照数值有小到大依次对
servlet进行实例化,同时调用对应的servlet的init()方法;
说了这么多,用以下两张图来解释以下web.xml在javaweb中的作用:
Web 服务器与Web应用这两个不同的软件系统协作,需要一个中介Servlet容器来处理.
Web.xml中配置实现servlet接口的实现.
Web服务器在加载Web应用时,就会把相应的web.xml文件中的数据读入到内存中,因此当web服务器需要参考web.xml文件时,实际上只需要从内存中读取相关数据就酷刑了,无需再到文件系统中读取Web.xml文件.
所以,web 文件可以提前读取到内存中的.
【java】itoo项目实战之java Web 中web的作用
标签:
原文地址:http://blog.csdn.net/tang_huan_11/article/details/46580689