【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页面,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
文件可以提前读取到内存中的.

时间: 2024-08-04 08:42:58

【java】itoo项目实战之java Web 中web的作用的相关文章

【java】itoo项目实战之大数据查询之使用 new map 优化hibernate之级联查询

在我的上一篇博客<[java]itoo项目实战之hibernate 懒加载优化性能>中,我曾提到过学生数据有2万条,查询数据十分的慢,这是让人很受不了的事情,看着页面进度条一直转着圈圈,那种着急的感觉真的没法形容.最开始考虑着使用lazy 来优化,因为前台框架的原因,lazy 优化并没有起到什么左右,后来就想着有select new map 优化.我先来画画关于查询学生的级联树 这个树的意思就是查询学生的时候它的深度是4级. 在没有优化之前,使用的是hibernate的hql 语句:From

【java】itoo项目实战之优化后具体代码

在我的前一篇博客中<<itoo项目实战之减少IO读写的导入思路>>,我介绍了如何完成减少IO读写的Excel导入,在这里我就把具体的代码实现分享给大家: 我就按照这张图的顺序给大家分享. 检查Excel 数据是否重复的代码: <span style="font-family:Times New Roman;font-size:18px;">// 2.从指定列中寻找重复行 for (int i = 1; i < realRows - 1; i++

JAVA Drp项目实战—— Unable to compile class for JSP 一波三折

交代下背景,电脑系统是64位的,用的是64位的Tomcat,安装是32位的Myeclipse10,java环境也是32位的,Tomcat在开始启动时会报这样一个错误,"Can't load IA 64-bit .dll on a AMD32-bit platform",但是不耽误使用,最近在敲Drp项目中用到了底层接口的几个方法,这个错误导致项目不能正常运行了,所以就将64位的Tomcat换成了与java环境一样的32位的Tomcat,上面的问题就顺利解决了,于是继续自己的开发,但是当

Java Drp项目实战——Drp知多少

是什么 Drp是Distribution Resource Planning的缩写,意思是分销资源计划,它是用来管理企业的运行于Internet上的分销网络的系统,是以商业流程优化为基础,它的核心是销售和库存总和控制.这个分销系统或者说是分销体系,它的使用者包括一个大型企业的内部.各个分公司.各级分销商等,它的作用就在于即时的掌握各地的销售信息流.财务资金流.库存信息等一些功能. 产生背景是什么 知道了Drp是什么,我们还需要了解下它的开发背景是什么,为什么要开发这样的一个系统呢. 这个原因还是

Java Drp项目实战——Web应用服务器

引言 Web应用服务器现在很多人都在用,可是到底什么是Web应用服务器呢,它与Web服务器有什么关系,它与应用服务器又是什么关系,它是他们两种中的其中一种,还是简单的两种服务器的组合呢? 要搞明白这个问题,我们得先知道什么是Web服务器以及什么是应用服务器,现在我们就来看下这两个服务器. Web服务器 Web服务器(WebServer)可以解析(handles)HTTP协议.当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),比如送回一个HTML页

Java注解项目实战即模拟Hibenernate生成sql语句

整理了近期学习java注解的部分代码 ,借助java注解模拟Hibenernate ORM模型建立对象与sql语句的映射 Table 注解的创建 package com.imooc.test; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.

Java Drp项目实战——Web应用server

引言 Web应用server如今非常多人都在用,但是究竟什么是Web应用server呢,它与Webserver有什么关系,它与应用server又是什么关系,它是他们两种中的当中一种,还是简单的两种server的组合呢? 要搞明确这个问题,我们得先知道什么是Webserver以及什么是应用server,如今我们就来看下这两个server. Webserver Webserver(WebServer)能够解析(handles)HTTP协议.当Webserver接收到一个HTTP请求(request)

【java】itoo项目实战之常被忽视的性能优化

Itoo V3.0很快就要结束了,功能上基本上开发完成了,但是放到jboss中部署的时候,使用时感觉特别的慢,如果是数据量多的话,就把慢这个词发挥到了极致.这个慢的问题有大部分是因为基础系统中使用了JPA级联导致的,每次查询的时候,只要有关联的表,都会全部查询出来,一下发出一大版的HQL 语句,看着也是挺吓人的.出来优化JPA级联问题,还可以从代码中下手,从以下的几个方面考虑. (1)减少对象生命周期 对象的生命周期有这么一个计算公式:对象生命周期=销毁时间-创建时间 实际上减少对象生命周期有2

【java】itoo项目实战之百万数据查询优化收集与实践

1.对查询进行优化,应考虑在where 及 order by 涉及的列上建立索引. 2.应尽量避免在where 子句中对字段进行 null值判断,如:        select id from t wherenum is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select idfrom t where num=0 3.应尽量避免在where 子句中使用!=或<>操作符. 4.应尽量避免在where 子句中使用 or 来连接条件,如: selec