logo资料库

TongWeb7应用开发手册.pdf

第1页 / 共151页
第2页 / 共151页
第3页 / 共151页
第4页 / 共151页
第5页 / 共151页
第6页 / 共151页
第7页 / 共151页
第8页 / 共151页
资料共151页,剩余部分请下载后查看
TongTech ®
第1章 web应用
1.1 Servlet
1.1.1 Servlet3.0规范的新特性
1.1.2 Servlet3.1规范的新特性
1.1.3 调用Servlet的URL
1.1.4 ServletMapping
1.1.5 init-param
1.1.6 Filter
1.1.6.1 编写Filter类
1.1.6.2 Filter的声明
1.1.7 安全角色映射
1.1.8 编写HTTP Servlet的基本步骤
1.2 JSP
1.2.1 JSP指令
1.2.2 JSP动作
1.2.3 JSP用例
1.3 JSF
1.3.1 JSF中主要概念
1.3.2 JSF的生命周期
1.3.2.1 恢复视图
1.3.2.2 应用请求值
1.3.2.3 处理验证
1.3.2.4 更新模型值
1.3.2.5 调用应用程序
1.3.2.6 显示响应
1.3.3 JSF用例
1.4 配置资源引用
1.4.1 支持环境条目(env-entry)
1.4.2 支持资源引用(resource-ref)
1.4.2.1 web.xml中resource-ref的说明
1.4.2.2 示例
1.4.3 支持资源环境引用(resource-env-ref)
1.4.3.1 web.xml中resource-env-ref的说明
1.4.3.2 示例
1.4.4 支持EJB引用(ejb-ref)
1.4.4.1 web.xml中的片断
1.4.4.2 示例
1.5 Session 管理
1.5.1 URLReWriting
1.6 其他
1.6.1 Listener组件的开发
1.6.2 class loader delegate
1.6.3 使用WEB-INF下资源
1.6.4 编写自定义Valve
第2章 EJB2.0
2.1 EJB应用结构
2.2 SessionBean
2.3 访问ejb应用
2.3.1 同一个JVM中对EJB的访问
2.3.2 不同JVM中对EJB访问
2.3.3 通过Local接口访问EJB应用
2.4 配置数据源
2.4.1 在SessionBean中配置数据源
2.5 对weblogic-ejb-jar.xml的支持
2.6 Entity Bean
2.6.1 配置CMR
2.6.1.1 一对一
单向一对一
双向一对一
2.6.1.2 一对多
单向一对多
双向一对多
2.6.1.3 多对一
单向多对一
双向多对一
2.6.1.4 多对多
单向多对多
双向多对多
2.6.1.5 数据源配置
第3章 EJB3.0
3.1 SessionBean
3.1.1 StatelessBean
3.1.2 StatefulBean
3.2 定时服务
3.3 拦截器
3.4 依赖注入
3.4.1 引用EJB
3.4.2 引用Resource
3.5 Pool和Cache
3.6 配置资源引用
第4章 EJB3.1
4.1 EJB3.1的新特性
4.2 Session Bean
4.3 Singleton Bean
4.4 定时服务
4.5 拦截器
第5章 EJB3.2
5.1 EJB3.2的新特性
第6章 JPA
6.1 容器托管EntityManager对象
6.1.1 通过@PersistenceContext注入
6.1.2 通过JNDI方式获取
6.2 应用托管EntityManager对象
6.2.1 EJB容器中获得
6.2.2 Web容器中获得
6.2.3 J2SE中获得
6.3 使用EntityManager
6.4 persistence.xml
6.5 在JavaEE环境中使用JPA
6.5.1 使用过程
6.5.2 示例
6.6 在J2SE环境中使用JPA
6.6.1 使用过程
6.6.2 示例
6.7 JPA中EntityManger的事务控制
6.8 JPA常用Annotation
6.9 JPA常用功能属性
6.10 JPA2.0新增功能
6.11 JPA2.1新增功能
第7章 Dependency Inject
7.1 DI的使用
7.1.1 @inject
7.1.2 @Qualifier
7.1.3 Provider
7.1.4 @Named
7.1.5 @Scope
第8章 CDI
8.1 CDI的使用
8.1.1 @Qualifier的补充
8.1.2 @Scope
8.1.3 @Produces与@Dispose
8.1.4 @Alternative与@Specialize
8.1.5 @Alternative
8.1.6 @Specialize
8.1.7 @Decorator
8.1.8 event
8.2 CDI新特性
第9章 CommonAnnotation
9.1 @ManagedBean
9.2 @DataSourceDefinition(s)
第10章 Interceptor
10.1 @interceptor
10.2 @AroundTimeout
10.3 @InterceptorBinding
第11章 Validation
11.1 Bean Validation 1.0
11.1.1 内置约束
11.1.2 自定义约束
11.2 Bean Validation 1.1新特性
第12章 资源应用
12.1 UserTransaction的使用
第13章 JMX
13.1 通过JMX获取TongWeb7.0的监视量
13.2 JMX对象ObjectName接口对应表
第14章 REST调用
14.1 httpclient方式
14.1.1 HttpClient3
14.1.2 HttpClient4
14.2 各模块的REST接口
14.2.1 WEB容器
14.2.1.1 web容器配置
14.2.1.2 访问日志
14.2.1.3 虚拟主机管理
14.2.1.4 http通道管理
14.2.1.5 AJP通道管理
14.2.2 JDBC
14.2.3 EJB容器
14.2.4 应用管理
14.2.5 部署服务配置
14.2.6 诊断
14.2.6.1 系统日志
14.2.6.2 SQL日志
® TongTech TongWeb 7.0 应用开发手册 东方通科技 1
TongTech ® .................................................................................. 1 第 1 章 web 应用 ................................................................................... 6 1.1 1.2 1.3 1.4 1.5 1.6 Servlet ....................................................................................................................... 6 Servlet3.0 规范的新特性.................................................................................. 6 1.1.1 Servlet3.1 规范的新特性.................................................................................. 7 1.1.2 1.1.3 调用 Servlet 的 URL ...................................................................................... 11 ServletMapping ............................................................................................... 11 1.1.4 1.1.5 init-param ........................................................................................................ 12 1.1.6 Filter ................................................................................................................ 12 1.1.7 安全角色映射 ................................................................................................. 15 1.1.8 编写 HTTP Servlet 的基本步骤 ..................................................................... 16 JSP ........................................................................................................................... 17 JSP 指令 .......................................................................................................... 18 JSP 动作 .......................................................................................................... 19 JSP 用例 .......................................................................................................... 21 JSF ........................................................................................................................... 22 JSF 中主要概念 .............................................................................................. 22 JSF 的生命周期 .............................................................................................. 23 JSF 用例 .......................................................................................................... 25 配置资源引用 ......................................................................................................... 29 1.4.1 支持环境条目(env-entry) ............................................................................... 30 1.4.2 支持资源引用(resource-ref) ........................................................................... 30 1.4.3 支持资源环境引用(resource-env-ref) ............................................................ 31 1.4.4 支持 EJB 引用(ejb-ref) ................................................................................... 32 Session 管理 .......................................................................................................... 33 URLReWriting ................................................................................................ 33 其他 ......................................................................................................................... 34 Listener 组件的开发 ....................................................................................... 34 1.6.1 1.6.2 class loader delegate ........................................................................................ 34 1.6.3 使用 WEB-INF 下资源 .................................................................................. 34 1.6.4 编写自定义 Valve ........................................................................................... 34 1.3.1 1.3.2 1.3.3 1.2.1 1.2.2 1.2.3 1.5.1 第 2 章 EJB2.0 .................................................................................... 36 2.1 2.2 2.3 2.4 2.5 EJB 应用结构 ......................................................................................................... 36 SessionBean ............................................................................................................ 36 访问 ejb 应用 .......................................................................................................... 38 2.3.1 同一个 JVM 中对 EJB 的访问 ...................................................................... 38 2.3.2 不同 JVM 中对 EJB 访问 .............................................................................. 39 2.3.3 通过 Local 接口访问 EJB 应用 ..................................................................... 39 配置数据源 ............................................................................................................. 40 2.4.1 在 SessionBean 中配置数据源 ...................................................................... 40 对 weblogic-ejb-jar.xml 的支持 ............................................................................. 41 2
2.6 Entity Bean .............................................................................................................. 43 2.6.1 配置 CMR ....................................................................................................... 43 第 3 章 EJB3.0 .................................................................................... 60 3.1 3.2 3.3 3.4 3.5 3.6 3.1.1 3.1.2 SessionBean ............................................................................................................ 60 StatelessBean................................................................................................... 60 StatefulBean .................................................................................................... 62 定时服务 ................................................................................................................. 64 拦截器 ..................................................................................................................... 65 依赖注入 ................................................................................................................. 67 3.4.1 引用 EJB ......................................................................................................... 68 3.4.2 引用 Resource ................................................................................................. 69 Pool 和 Cache ......................................................................................................... 70 配置资源引用 ......................................................................................................... 71 第 4 章 EJB3.1 .................................................................................... 71 4.1 4.2 4.3 4.4 4.5 EJB3.1 的新特性 .................................................................................................... 71 Session Bean ........................................................................................................... 72 Singleton Bean ........................................................................................................ 73 定时服务 ................................................................................................................. 74 拦截器 ..................................................................................................................... 75 第 5 章 EJB3.2 .................................................................................... 75 5.1 EJB3.2 的新特性 .................................................................................................... 75 第 6 章 JPA ......................................................................................... 77 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 容器托管 EntityManager 对象 ............................................................................... 79 6.1.1 通过@PersistenceContext 注入 ...................................................................... 80 6.1.2 通过 JNDI 方式获取 ...................................................................................... 80 应用托管 EntityManager 对象 ............................................................................... 80 EJB 容器中获得 ............................................................................................. 81 6.2.1 6.2.2 Web 容器中获得............................................................................................. 81 J2SE 中获得.................................................................................................... 82 6.2.3 使用 EntityManager ................................................................................................ 83 persistence.xml ........................................................................................................ 84 在 JavaEE 环境中使用 JPA.................................................................................... 85 6.5.1 使用过程 ......................................................................................................... 85 6.5.2 示例 ................................................................................................................. 85 在 J2SE 环境中使用 JPA ....................................................................................... 94 6.6.1 使用过程 ......................................................................................................... 94 6.6.2 示例 ................................................................................................................. 94 JPA 中 EntityManger 的事务控制 ......................................................................... 98 JPA 常用 Annotation .............................................................................................. 98 JPA 常用功能属性 ............................................................................................... 100 3
6.10 6.11 JPA2.0 新增功能 .................................................................................................. 109 JPA2.1 新增功能 .................................................................................................. 110 第 7 章 Dependency Inject .............................................................. 114 7.1 DI 的使用 ............................................................................................................. 114 7.1.1 @inject .......................................................................................................... 114 7.1.2 @Qualifier ..................................................................................................... 115 7.1.3 Provider ......................................................................................................... 115 7.1.4 @Named ....................................................................................................... 116 7.1.5 @Scope ......................................................................................................... 116 第 8 章 CDI ....................................................................................... 117 8.1 8.2 CDI 的使用 ........................................................................................................... 117 8.1.1 @Qualifier 的补充 ........................................................................................ 117 8.1.2 @Scope ......................................................................................................... 118 8.1.3 @Produces 与@Dispose ............................................................................... 119 8.1.4 @Alternative 与@Specialize ........................................................................ 120 8.1.5 @Alternative ................................................................................................. 120 8.1.6 @Specialize ................................................................................................... 122 8.1.7 @Decorator ................................................................................................... 122 event .............................................................................................................. 124 8.1.8 CDI 新特性 ........................................................................................................... 124 第 9 章 CommonAnnotation ........................................................... 127 9.1 9.2 @ManagedBean .................................................................................................... 127 @DataSourceDefinition(s) .................................................................................... 128 第 10 章 Interceptor ..................................................................... 129 10.1 10.2 10.3 @interceptor .......................................................................................................... 129 @AroundTimeout ................................................................................................. 130 @InterceptorBinding ............................................................................................. 130 第 11 章 Validation ............................................................................. 131 11.1 11.2 Bean Validation 1.0 ............................................................................................... 131 11.1.1 内置约束 ....................................................................................................... 131 11.1.2 自定义约束 ................................................................................................... 132 Bean Validation 1.1 新特性 .................................................................................. 133 第 12 章 资源应用 .............................................................................. 137 12.1 UserTransaction 的使用 ....................................................................................... 137 第 13 章 JMX ................................................................................ 138 13.1 13.2 通过 JMX 获取 TongWeb7.0 的监视量............................................................... 138 JMX 对象 ObjectName 接口对应表 .................................................................... 139 4
第 14 章 REST 调用 ..................................................................... 142 14.1 14.2 14.3 httpclient 方式 ....................................................................................................... 142 14.1.1 HttpClient3 .................................................................................................... 142 14.1.2 HttpClient4 .................................................................................................... 143 ajax 方式 ................................................................................... 错误!未定义书签。 各模块的 REST 接口 ........................................................................................... 144 14.3.1 WEB 容器 ..................................................................................................... 144 JDBC ............................................................................................................. 147 14.3.2 EJB 容器 ....................................................................................................... 149 14.3.3 14.3.4 应用管理 ....................................................................................................... 149 14.3.5 部署服务配置 ............................................................................................... 150 14.3.6 诊断 ............................................................................................................... 151 5
第1章 web 应用 1.1 Servlet TongWeb7.0 应用服务器支持 Servlet3.1 规范。本章节介绍了 HTTP Servlet 的基本概念, 概述了如何在 TongWeb7.0 应用服务器上进行 HTTP Servlet 的开发。 Servlet 是基于 Java 技术的 Web 组件,由容器管理并产生动态的内容。Servlet 引擎作为 Web 服务器的扩展提供支持 Servlet 的功能。Servlet 与客户端通过 Servlet 容器实现的请求/ 响应模型进行交互。 具体开发过程中使用的 Java Servlet API 可参考 Oracle 公司提供的相关文档。 本 小 节 中 所 有 提 到 “ 参考 TongWeb7.0 样 例 ”的 地 方 , 都 是 指 位 于 TongWeb7.0/ samples/servletjsp-samples/servlet3Jsp22-new-feature 目录下的应用 Servlet3Jsp22Sample.ear, 可将其部署到 TongWeb7.0 之后,访问其各个子模块,了解相应的特性及用法。 1.1.1 Servlet3.0 规范的新特性 1. 新增的注解支持 @WebServlet @WebFilter @WebListener @WebInitParam @MultipartConfig 具体的注解使用可以参考 TongWeb7.0 的样例 Servlet3Annotation.war。 2. 可插性(pluggability)设计 使用该特性,现在我们可以在不修改已有 Web 应用的前提下,只需将按照一定格式打 包的 JAR 文件放到 WEB-INF/lib 目录下,即可实现新功能的扩充,不需要额外的配置。 Servlet 3 引入了称之为“Web 模块部署描述符片段”的 web-fragment.xml 部署描述文 件,该文件必须存放在 JAR 文件的 META-INF 目录下,该部署描述文件可以包含一切可 以在 web.xml 中定义的内容。JAR 包通常放在 WEB-INF/lib 目录下,除此之外,所有该 模块使用的资源,包括 class 文件、配置文件等,只需要能够被容器的类加载器加载上即可。 具体参考 TongWeb7.0 样例 Servlet3WebFragment.war。 3. 异步处理的支持 Servlet 接收到请求之后,可能会对数据进行一些预处理;之后 Servlet 线程将请求转交 给一个异步线程来执行业务处理,线程本身返回,此时 Servlet 还没有生成响应数据,异步 6
线 程 处 理 完 业 务 以 后 , 可 以 直 接 生 成 响 应 数 据 ( 异 步 线 程 拥 有 ServletRequest 和 ServletResponse 对象的引用),或者将请求继续转发给其它 Servlet。如此一来, Servlet 线 程不再是一直处于阻塞状态以等待业务逻辑的处理,而是启动异步线程之后可以立即返回。 异步处理特性可以应用于 Servlet 和 Filter 两种组件。异步处理特性默认并没有开启, 如果希望使用该特性,则必须按照如下的方式启用: 在 web.xml 中配置时,Servlet 3.0 为标签增加了子 标签,该标签的默认取值为 false,要启用异步处理支持,则将其设为 true 即可。以 Servlet 为例,其配置方式如下所示: DemoServlet com.tongweb.servlet.Demo Servlet true 使用 Servlet 3.0 提供的 @WebServlet 和 @WebFilter 注解 进行 Servlet 或 Filter 配置 的情况,这两个注解都提供了 asyncSupported 属性,默认该属性的取值为 false,要启用异 步处理支持,只需将该属性设置为 true 即可。以 @WebFilter 为例,其配置方式如下所示: @WebFilter(urlPatterns = "/demo",asyncSupported = true) public class DemoFilter implements Filter{...} 此处,Servlet3 还为异步处理提供了一个监听器,使用 时只需要实现 AsyncListener 接 口即可,可以捕获异步处理的成功、失败、超时等事件。 具体可以参考 TongWeb7.0 的样例 Servlet3Async.war。 4. ServletContext 的性能增强 ServletContext 对象支持在运行时动态部署 Servlet、Filter 和监听器,以及为 Servlet 和 Filter 增加 URL 映射等。参见 TongWeb7.0 的样例 Servlet3Programmatic.war。 5. HttpServletRequest 对文件上传的支持 HttpServletRequest 提供了两个方法用于从请求中获取上传的文件: Part getPart(String name) Collection getParts() 第一个方法用于获取请求中给定名称的文件,第二个用于获取所有文件,每一个文件用 一个 javax.servlet.http.Part 对象来表示。另外,可以结合前面提到的@MultipartConfig 注解来 对上传操作进行自定义配置,比如限制上传文件的大小,设置保存路径等,请自行查阅相关 文档。 1.1.2 Servlet3.1 规范的新特性 1. 非阻塞 IO Servlet 3.0 中引入了 Async Servlet,然而虽然 servlet 的执行过程可以是异步的了,但 是从 request 读取和向 response 写入的过程,依然是同步的 IO。而 Servlet 3.1 在 Async Servlet 7
的基础上,引入了 Non-blocking IO Servlet,Web 容器中的非阻塞请求处理有助于提高对改 善 Web 容器可扩展性不断增加的需求, 增加 Web 容器可同时处理请求的连接数量。 servlet 容器的非阻塞 IO 允许开发人员在数据可用时读取数据或在数据可写时写数据。IO 的 过程是通过 WriteListener 和 ReadListener 来实现的,类似于 event driven 的过程。 非阻塞 IO 仅对在 Servlet 和 Filter 中的异步请求处理和升级处理有效。否则,当调用 ServletInputStream.setReadListener 或 ServletOutputStream.setWriteListener 方 法 时 将 抛 出 IllegalStateException。 ReadListener 为非阻塞 IO 提供了下面的回调方法: ReadListener ■ onDataAvailable() 当可以从传入的请求流中读取数据时 ReadListener 的 onDataAvailable 方法被调用。 当数据可读时容器初次调用该方法。当且仅当下面描述的 ServletInputStream 的 isReady 方 法返回 false,容器随后将调用 onDataAvailable 方法。 ■ onAllDataRead() 当读取完注册了此监听器的 ServletRequest 的所有数据时调用 onAllDataRead 方法。 ■ onError(Throwable t). 处理请求时如果有任何错误或异常发生时调用 onError 方法。 容器必须线程安全的访问 ReadListener 中的方法。 除了上述 ReadListener 定义的方法外,下列方法已被添加到 ServletInputStream 类中。 ■ boolean isFinished() 与 ServletReader/ServletInputStream 相关的请求的所有数据已经读取完时 isFinished 方 法返回 true。否则返回 false。 ■ boolean isReady() 如果可以无阻塞地读取数据 isReady 方法返回 true。如果没有数据可以无阻塞地读取 该方法返回 false。如果 isReady 方法返回 false,调用 read 方法是非法的,且必须抛出 IllegalStateException。 ■ void setReadListener(ReadListener listener) 设置上述定义的 ReadListener,调用它以非阻塞的方式读取数据。一旦把监听器与给定 的 ServletInputStream 关联起来,当数据可以读取,所有的数据都读取完或如果处理请求时 发生错误,容器调用 ReadListener 的方法。注册一个 ReadListener 将启动非阻塞 IO。在 那时切换到传统的阻塞 IO 是非法的, 且必须抛出 IllegalStateException。 在当前请求范 围内, 随后调用 setReadListener 是非法的且必须抛出 IllegalStateException。 WriteListener 提供了如下适用于容器调用的回调方法: ■ WriteListener ■ void onWritePossible() 当 一 个 WriteListener 注 册 到 ServletOutputStream 时 , 当 且 仅 当 下 边 描 述 的 ServletOutputStream 的 canWrite 方法被调用并返回 false,该容器将回调该方法。 ■ onError(Throwable t). 当处理响应过程中出现错误时回调。 除了 WriteListener 外,还有如下方法被添加到 ServletOutputStream 类并允许开发人员运 行时检查是否可以写数据发送到客户端。 ■ ServletOutputStream ■ boolean canWrite() 8
分享到:
收藏