【java】itoo项目实战之java Web 中web的作用

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页面,filterlistenerservletservlet-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的初始化参数

.servletJSP的映射

.安全域配置参数

.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进行实例化,同时调用对应的servletinit()方法;

 

说了这么多,用以下两张图来解释以下web.xmljavaweb中的作用:


 Web 服务器与Web应用这两个不同的软件系统协作,需要一个中介Servlet容器来处理.


Web.xml中配置实现servlet接口的实现.

 

     Web服务器在加载Web应用时,就会把相应的web.xml文件中的数据读入到内存中,因此当web服务器需要参考web.xml文件时,实际上只需要从内存中读取相关数据就酷刑了,无需再到文件系统中读取Web.xml文件.

所以,web 文件可以提前读取到内存中的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弯_弯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值