`

使用JavaEE 5构建web项目解读

 
阅读更多

一个web应用是由web组件,静态资源文件(如图片)和有关的class类、第三方类库组成的。web容器给web组件提供服务,使他们更容易开发。但是,因为web应用必须考虑以上列出的因素,创建和运行web应用不同于传统单独的基于Java类的应用。

创建,部署,运行一个web应用的过程可以用以下几步来总结:

 

  1. 编写web组件代码。
  2. 编写web应用的部署描述符(web.xml)。
  3. 编译web组件的代码和相关的类库。
  4. 可选地,将应用打包成部署单元(WAR包)。
  5. 将应用部署到web容器(tomcat)。
  6. 使用浏览器访问这个web应用关联的URL。
web模块
在JavaEE架构中,web组件和静态资源文件(如图片)被称为web资源。web模块是web资源中最小的可部署的并且可用的单元。web应用中的一个JavaEE web模块在Java Servlet规范中定义了。
web模块除了包含web组件和web资源,还包含其他文件:
  • 服务端工具类(数据库beans)。这些类通常以JavaBeans组件架构。
  • 客户端类(applets和工具类)。
web模块的结构的给定的。web模块的顶层目录就是应用的文档根(document root)。文档根就是JSP文件,客户端的类和文档,静态web资源(如图片)存放的地方。
根文档包含一个子文件夹WEB-INF,它包含以下文件和目录:
  • web.xml:web应用部署描述符。
  • Tag库描述文件。
  • classes:存放服务端类的目录,象servlet,工具类,JavaBeans组件。
  • tags:包含tag文件的目录,这些tag文件实现了tag类库。
  • lib:包含JAR包的目录。
如果你的web模块不包含任何servlet,filter,listener组件,那么你就不需要web应用部署描述符。换句话说,如果你的web模块仅仅包含JSP文件和静态文件,那么你不需要web.xml文件。
你也可以创建自己的子目录放在文档根或者WEB-INF/classes/目录下。
web模块通过不打包的结构部署,也可以打成一种JAR包形式的WAR包部署。因为WAR包里面的内容不同于JAR包,所以WAR包使用.war作为后缀名来区分,但压缩原理同JAR的一样的。web模块是partable(便携的)的,你可以将它部署在任何web容器中,只要这个web容器实现了Java Servlet规范(tomcat,jetty,weblogic,jboss等等)。

下面我们来详细解读一下部署描述符(web.xml)

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

icon要素指定了web应用下的一个路径,这个路径对应一个小图像或者大图像,GUI工具可以感知到这个路径并使用这个图像表示web应用。(servlet要素也有个子要素叫icon要素,GUI工具可以用来表示一个servlet)。
要素 必填 描述
<small-icon> 可选 16*16像素的gif或者jpg图像的位置
<large-icon> 可选 32*32像素的gif或者jpg图像的位置






display-name

dispaly-name要素是可选的,指定web应用的显示名字,GUI工具用它来表示web应用的简称。
要素 必填 描述
<display-name> 可选




description

可选的要素,使用文本描述web应用。
要素 必填 描述
<description> 可选




context-param

可选的context-param要素声明了web应用的servlet上下文初始化参数。任何servlet或者JSP页面借助ServletContext的getInitParameter方法都可以读取到这些初始化参数。
要素 必填 描述
<param-name> 必填 参数名
<param-value> 必填 参数值






filter

filter要素定义了一个过滤器类和它的初始属性值。
要素 是否可选 描述
<icon> 可选 上文已解释。
<filter-name> 必填 定义过滤器的名字,该名字关联web.xml中<filter-mapping/>
<display-name> 可选 简称,提供给GUI工具使用
<description> 可选 过滤器的文本描述
<filter-class> 必填 过滤器对应的类,需要包含完整包名。
<init-param> 可选 初始化filter属性的名值对,每一个filter属性对应一个<init-param>标签












filter-mapping

filter-mapping和filter配置使用。
要素 是否可选 描述
<filter-name> 必填 映射URL模式或者servlet的过滤器名字,根<filter>要素中的<filter-name>要素关联
<url-pattern> 必填或者在<servlet>要素中指定 描述一个解析URL时的模式。
<servlet-name> 当<url-pattern>没有时必填 一个servlet的名字,该servlet使过滤器执行







listener

应用事件监听器程序是建立或修改servlet环境或者session对象时通知的类(怎么读怎么拗口)。
要素 是否可选 描述
<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相关,不介绍

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    JavaEE 文档

    6. **JSF(JavaServer Faces)**:一种用于构建Web用户界面的MVC(Model-View-Controller)框架,简化了前端开发。 7. **CDI(Contexts and Dependency Injection)**:提供依赖注入和上下文管理,简化了组件之间的...

    JavaEE基础实例源程序

    - Servlet:Servlet是JavaEE中处理HTTP请求的核心组件,可能会介绍Servlet生命周期、部署描述符(web.xml)的配置、Servlet API的使用,如`doGet()`和`doPost()`方法。 2. **第2章:JSP与EL表达式** - JSP(Java...

    JavaEE6规范中文版(CHM)

    JavaEE6,全称为Java Platform, Enterprise Edition 6,是Oracle公司推出的用于构建企业级Web应用的框架标准。这个版本的发布对Java开发者来说是一次重大的更新,它引入了许多新特性和改进,旨在简化开发流程,提高...

    pmx_security javaee 工程。

    1. **JavaEE架构**:项目基于JavaEE平台,使用面向服务、模块化的开发方式。 2. **Struts框架**:用于处理HTTP请求,管理业务逻辑,实现MVC模式。 3. **Tiles框架**:增强Struts,提供可重用的页面布局,便于构建...

    JavaEE Servlet2.1说明文档

    JavaEE Servlet API 是Java平台上的核心组件,主要用于构建Web应用程序。该API包含两个主要的软件包,一个是针对HTTP协议的,另一个则是通用的,不局限于HTTP。这种设计使得Servlet API具有高度的可扩展性,能够适应...

    《JavaEE编程课程设计》期末项目报告书.pdf

    《JavaEE编程课程设计》期末项目报告书详细解读 该项目是一项基于JavaEE技术的旅游信息管理系统,旨在构建一个用户与旅行社交互的平台,提供旅游信息查询、发布、交流等功能。以下将从项目计划、系统需求分析与功能...

    ssm+vue的奖学金管理系统(有报告) Javaee项目,ssm vue前后端分离项目

    "vue.js 范文/模板/素材" 这个标签指出项目在前端使用了Vue.js,这是一个流行的轻量级JavaScript框架,用于构建用户界面。"范文/模板/素材"可能意味着该项目包含可复用的代码片段、设计模板或者开发资源,适合开发者...

    JavaEE电费管理系统

    在JavaEE平台上,开发者可以使用Servlet、JSP、EJB(Enterprise JavaBeans)、JPA(Java Persistence API)等技术进行Web应用开发。 在【描述】中提到的功能实现,我们可以详细解读以下几个关键知识点: 1. **增删...

    基于JavaEE的人力资源管理系统设计与实现.pdf

    JavaEE包含了如Servlet、JavaServer Pages(JSP)、Enterprise JavaBeans(EJB)、Java Persistence API(JPA)等组件和服务,这些组件为构建可伸缩、安全、多层的企业级应用提供了基础。 2. 人力资源管理系统设计...

    轻量级JAVAEE企业应用实战第三版_code_ch06

    5. **JPA(Java Persistence API)**:JPA是JAVAEE中处理数据持久化的标准,通常配合Hibernate等ORM(对象关系映射)工具使用。这部分可能包括实体类的定义、数据库的交互以及事务管理。 6. **RESTful API设计**:...

    基于SSM的企业订单跟踪管理系统(有报告) Javaee项目

    2. **SpringMVC**:SpringMVC是Spring框架的一部分,专为构建Web应用而设计。它负责处理HTTP请求,将请求分发到对应的控制器,控制器再调用业务逻辑处理,最后返回视图进行展示。在本项目中,SpringMVC起到了协调...

    JavaEE学生选课系统实验报告.docx

    JavaEE学生选课系统实验报告概述了如何使用JavaEE技术栈,特别是Struts2、Hibernate、Spring三大框架,来构建一个学生信息管理系统。系统的主要功能包括用户登录、学生信息查询、增删改操作。以下是对实验报告内容的...

    JavaEE源码动漫论坛源码数据库sql文档

    - **Struts**:是一个MVC框架,用于构建Web应用程序的模型层、视图层和控制器层。 - **Hibernate**:是一个持久化框架,用于简化对象到关系数据库的映射过程。 ### 二、MVC模式 Model-View-Controller(MVC)是一种...

    Maven精品教程 零散笔记

    整体来看,文档内容涉及了使用Maven构建、测试、部署Java Web应用的多个方面,包括基本的项目结构创建、依赖管理、构建配置、编译和运行时环境设置,以及与IDE的集成。这些知识点对于Java开发人员来说是必备的,有助...

    基于JavaEE的网络云盘系统-毕业论文.pdf

    JavaEE提供了JAX-RS(Java API for RESTful Web Services)来构建RESTful Web服务,实现系统各模块之间的通信。 6. 性能优化:网络云盘系统的性能关乎用户体验。可能需要对系统进行性能测试,然后通过JavaEE的异步...

    JavaEE企业级框架开发实战教程-教案-第3章-Spring Boot.docx

    Spring Boot正是为了解决这一问题而生,它通过提供预构建的“starter”(启动器),允许我们在项目中简单地引入所需的依赖,即可完成框架的集成。 **3. Spring Boot的自动配置** Spring Boot的自动配置机制是其核心...

    Javaee_ajax的影视创作论坛BS_sql server(源码+数据库sql+论文+视频齐全)【JAVA】.zip

    总结起来,这个项目是一个完整的JavaEE和AJAX技术结合的实战案例,适合于学习和掌握Web应用开发,特别是对于影视创作论坛这样的社交平台的开发流程和技术要点。通过研究源码,实践数据库设计,观看视频教程,可以...

    Java EE 5解读

    ### Java EE 5 技术全面解读 #### Java EE 5 概览 Java EE 5(Java Platform, Enterprise Edition 5)是Sun Microsystems在2006年发布的Java企业级平台的重要版本之一。该版本引入了众多重要的改进和新特性,旨在...

    JavaEE源码银行设备系统无数据库sql源码文档

    “JavaEE源码3.7JAVAEE_SSM_MYSQL银行设备管理系统”是一个典型的Java EE项目案例,它不仅涵盖了常见的企业级应用开发要素,还针对银行业务特点进行了定制化设计。通过对该项目的源码和开发文档进行深入研究,不仅...

Global site tag (gtag.js) - Google Analytics