`
bsr1983
  • 浏览: 1117340 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Servlet3.1标准学习笔记五

 
阅读更多
61.属于Java EE实现的分布式servlet容器必须支持其他Java EE对象从一个JVM迁移到另一个JVM所必需的机制。
Java EE定义了一个命名的环境,允许应用程序在没有明确的知道外部信息是如何命名和组织的情况下轻松地访问资源和外部信息。
Servlet容器是一个Java EE产品的一部分,不应该允许应用程序重写Java SE或Java EE平台的类,比如那些在Java.*和javax.*命名空间中的类,Java SE或Java EE不允许被修改。
Java EE定义了一个命名的环境,允许应用程序在没有明确的知道外部信息时如何命名和组织的情况下轻松地访问资源和外部信息。
由于servlet是Java EE技术的一个完整的组件类型,已经在Web应用程序部署文件中规定了允许servlet获取引用资源和企业bean的指定信息。
Java EE平台规范定义了一个标准化的全局JNDI命名空间和一系列相关的命名空间映射到不同的Java EE应用程序范围。应用程序可以使用这些命名空间可移植地检索组件和资源的引用。
为一个Web应用程序上下文根目录预定义的java.net.URL资源的名称的语法如下:
全局命名空间中java:global[/<app-name>/]<module-name>!ROOT,应用程序指定的命名空间中java:app/<module-name>!ROOT。
只有当Web应用打包成一个.ear文件时才适合使用<app-name>。
java:app前缀允许一个组件内执行的Java EE应用程序来访问特定于应用程序的命名空间。java:app名称允许一个企业应用程序中的模块引用同一个企业应用程序中其他模块的上下文根目录。<module-name>是java:app url语法的必要组成部分。
62.必须始终提供一个安全标识或主体(principal),用于调用一个企业bean。从Web应用程序中调用企业Bean的默认模式是为把Web用户的安全标识传播到EJB容器。
在其他情况下,Web容器必须允许不了解Web容器或EJB容器的web用户进行调用:
(1)Web容器必须支持未把自己授权给容器的用户访问Web资源。这是在互联网上访问Web资源场景的模式。
(2)应用程序代码可以是单点登录和基于调用者标识的定制化数据的唯一处理器。
在这些情况下,Web应用程序部署描述文件可以指定一个run-as元素。当为Servlet指定了一个run-as角色时,Servlet容器必须传播主要的映射到该角色,作为任何从Servlet到EJB调用的安全标识,包括从Servlet的init和destory方法进行原始调用。安全角色名必须是为Web应用程序定义的安全角色名称之一。
由于Web容器作为Java EE平台的一部分运行,在同一个Java EE应用程序中调用EJB组件,以及调用部署在其他JavaEE中的应用程序都必须支持run-as元素的使用。
Web容器可以选择支持运行实现JAX-PRC和/或JAX-WS规范定义的Web服务端点(endpoint)编写的组件。需要Web容器嵌入一个Java EE符合的实现来支持JAX-RPC和JAX-WS Web Service组件。
JSR-109定义了用于打包Web service接口与它关联的WSDL描述和关联的类的模型。它定义了一种机制用于启用了JAX-WS和JAX-RPC的容器链接到一个实现了这个Web service的组件。一个JAX-WS或JAX-RPC Web service实现组件使用JAX-WS和/或JAX-RPC规范定义的API,其定义了它与启用了JAX-WS和/或JAX-RPC的Web容器之间的契约。它被打包到WAR文件。Web service开发人员使用平常的<servlet>来声明这个组件。
由开发人员定义等于这个组件的任何Servlet初始化参数可能被容器忽略。此外,启用了JAX-WS和JAX-RPC的Web组件继承了用于定义如下信息的传统Web组件机制。
(1)使用Servlet映射技术映射组件到Web容器的URL命名空间
(2)使用安全约束在Web组件上授权约束
(3)能够使用servlet过滤器提供底层(low-level)字节流支持,用于使用过滤器映射技术操纵JAX-WS和/或JAX-RPC消息
(4)任何与组件关联的HTTP会话的超时特性
(5)链接到存储在JNDI命名空间的Java EE对象
63.在JavaEE中,注解用于声明对外部资源的依赖和在Java代码中的配置数据而无需再配置文件中定义该数据。
在一个web应用中,使用资源注入的类只有当它们位于WEB-INF/classes目录,或如果它们被打包到位于WEB-INF目录的jar文件中,它们的注解将被处理。容器可以选择性地为在其他地方的应用类路径中找到的类处理资源注入注解。
Web 应用部署描述符的web-app 元素上包含一个metadata-complete 属性。metadata-complete 属性定义了web.xml 描述符是否是完整的,或是否应考虑部署过程中使用的其他资源的元数据。元数据可能来自web.xml 文件、web-fragment.xml 文件、WEB-INF/classes 中的类文件上的注解、和WEB-INF/lib 目录中的jar文件中的文件上的注解。如果metadata-complete 设置为“true”,部署工具仅检查web.xml 文件且必须忽 略如出现在应用的类文件上的@WebServlet、@WebFilter、和@WebListener注解,且必须也忽略WEB-INF/lib中的打包在jar 文件的任何web-fragment.xml 描述符。如果metadata-complete 没有指定或设置为“false”,部署工具必须检查类文件和web-fragment.xml文件的元数据,就像前面指定的那样。
64.@DeclareRoles用于定义由应用安全模型组成的安全角色。该注解指定在类上,且它用于定义能从注解的类的方法内测试(即,通过调用isUserInRole)的角色。由于用在@RoleAllowed而隐式声明的角色,不必使用@DeclareRole注解尽可以定义在实现了javax.servlet.Servlet接口或他的一个子类的类中。
企业级JavaBean组件可以从一个web组件使用@EJB注解引用。@EJB注解提供了与部署描述符中声明ejb-ref或ejb-local-ref元素等价的功能。
@EJBs注解允许在单个资源上声明多于一个@EJB注解。
@Resource注解用于声明到资源的引用,如一个数据源、Java消息服务目的地、或环境项。该注解等价于在部署描述符中声明resource-ref、message-destination-ref、或env-ref或resource-env-ref元素。
@Resource注解指定在一个类、方法或字段上。容器负责注入到由@Resource注解声明的资源的引用和映射到适当的JNDI资源。
@PersistenceContext注解指定容器管理的用于引用持久化单元(persistence unit)的实体管理器(entity manager)。
@PersistenceContexts注解允许在一个资源上声明多于一个@PersistentContext。
@PersistenceUnit注解提供声明在servlet中的企业级JavaBean组件实体管理器工厂(entity manmager factory)的引用。实体管理器工厂绑定到一个单独的persistence.xml配置文件。
@PersistenceUnits该注解允许在一个资源上声明多于一个@PersistentUnit.
@PostConstruct注解声明在一个无参的方法上,且必须不抛出任何受查异常。返回值必须是void。该方法必须在资源注入完成之后被调用且在组件的任何声明周期方法之前被调用。
@PreDestroy注解声明在容器管理组件的一个方法上。该方法在容器移除该组件之前调用。
由于Java元数据规范不允许在相同的注解目标以相同名字使用多个注解,因此@Resources注解充当容器的多个@Resource注解。
@RunAs注解等价于部署描述符中的run-as注解。@RunAs注解可能仅定义在javax.servlet.Servlet接口或它的子类的类实现上。
@WebServiceRef注解在一个web组件中使用可能在部署描述符中的resource-ref相同的方式提供一个到web service的引用。
@WebServiceRefs注解允许在单个资源上声明多于一个的@WebServiceRef注解。
分享到:
评论

相关推荐

    servlet学习笔记

    综上,【01】Servlet学习笔记(5天)可能涵盖了这些概念的详细讲解,包括基础理论、实践案例以及常见问题的解决。通过深入学习,开发者可以更好地理解和运用Servlet,实现高效、稳定的后端服务。

    良葛格JspServlet学习笔记.pdf

    ### 良葛格JspServlet学习笔记 #### 一、引言 在现代Web开发领域,特别是Java EE平台中,JSP (JavaServer Pages) 和 Servlet 技术扮演着非常重要的角色。这两种技术共同构成了Java Web应用的基础,分别侧重于用户...

    Servlet学习笔记

    ### Servlet学习笔记 #### 一、JavaWeb 开发环境搭建 **1.1 JDK的安装与配置** - **下载并安装JDK**:首先需要访问Oracle官网或采用其他可信渠道下载对应版本的JDK。 - **配置Java环境变量**:在安装完JDK后,...

    Java-Web学习笔记.docx

    Java Web 学习笔记是 Java 语言在 Web 开发方面的学习笔记,涵盖了 Java Web 项目目录结构、Servlet、JSP 等核心知识点。本笔记旨在帮助读者快速掌握 Java Web 开发的基础知识。 一、概述 Java Web 项目目录结构是 ...

    2023年JavaWeb学习笔记.docx

    Java Web学习笔记 Java Web学习笔记是Java Web开发的入门级教程,旨在帮助读者快速掌握Java Web开发的基本概念和技术。本笔记涵盖了Java Web开发的基本概念、Servlet、JSP等核心技术,并对Java Web项目目录结构、...

    springMVC学习笔记

    ### SpringMVC学习笔记 #### 一、SpringMVC概述 **1.1 什么是SpringMVC** SpringMVC作为Spring Framework的一个重要组成部分,主要针对Web应用开发提供了一个功能全面的MVC(Model-View-Controller)框架。它是...

    软件工程师学习笔记大全(C++ JAVA)

    《软件工程师学习笔记大全》是针对C++和JAVA这两门编程语言的学习资源集合,涵盖了从基础知识到高级技术的广泛内容。这份压缩包包含了多个不同主题的笔记文档,旨在帮助学习者深入理解和掌握软件开发的核心技能。 ...

    struts2学习笔记.doc

    ### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...

    servlet笔记

    ### Servlet基础知识与核心技术详解 #### 一、Servlet简介与Web服务器配置 ...通过以上知识点的学习,我们可以深入理解 Servlet 的工作原理和技术细节,这对于开发高质量的 Web 应用程序至关重要。

    Spring学习笔记.doc

    ### Spring学习笔记知识点详解 #### 一、Spring框架概述 **1.1 什么是Spring** Spring框架是一个开源的轻量级应用框架,主要用于简化企业级应用程序的开发过程。它的核心特性在于提供了一种灵活的方式来组织和...

    Apache_cxf_学习笔记.docx

    ### Apache CXF 学习笔记知识点汇总 #### 一、CXF简介 ##### 1.1 CXF概述 - **背景介绍**:Apache CXF 是一个高性能、功能丰富的开源框架,用于构建和消费 Web 服务。它融合了 Celtix 和 XFire 两个开源项目的...

    JSP自定义标签学习笔记

    本篇学习笔记将深入探讨JSP自定义标签的相关概念、创建方法以及实际应用。 一、概述 1.1 使用简单标签机制 JSP自定义标签提供了类似HTML标签的语法结构,通过自定义标签,开发者可以封装复杂的Java代码,使得页面...

    APACHE BIRT图表学习笔记

    ### Apache BIRT 图表学习笔记知识点详解 #### 一、Apache BIRT 概述 Apache BIRT(Business Intelligence and Reporting Tools)是一款开源的商务智能工具,由Eclipse基金会发起并维护。它为开发者提供了创建数据...

    Tomcat学习笔记

    《Tomcat学习笔记》 Tomcat是一款开源的Java Servlet容器,是Apache软件基金会下的Jakarta项目中的核心项目,主要用于运行Java Web应用程序。本笔记将详细阐述Tomcat的安装、配置、虚拟主机设置、JDBC数据库连接池...

    j2ee学习笔记

    **J2EE学习笔记概述** J2EE(Java 2 Platform, Enterprise Edition)是Java平台的一个版本,专为开发和部署企业级应用而设计。它提供了丰富的组件模型、服务和工具,以支持分布式多层应用的构建。顾志凌的学习笔记...

    struts2框架学习笔记整理

    ### Struts2框架学习笔记整理 #### 一、Struts2框架概述 ##### 1.1 Struts2框架定义 Struts2是一个基于MVC(Model-View-Controller)架构模式的开源Java web应用框架,它能够帮助开发者构建可扩展且易于维护的...

    Ajax和jQuery学习笔记

    ### Ajax和jQuery学习笔记 #### 一、Ajax基础与原理 **1.1 什么是Ajax?** Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)是一种用来创建快速动态网页的技术,通过在后台与服务器进行少量数据...

    java学习笔记整理

    ### Java学习笔记整理 #### 1. Java简介 ##### 1.1 计算机编程和开发语言 计算机系统由硬件系统和软件系统组成。软件系统又进一步细分为系统软件和应用软件。其中,系统软件包括操作系统、编译系统、数据库系统等...

    struts2 学习重点笔记

    ### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

Global site tag (gtag.js) - Google Analytics