J2EE应用部署:描述符、工具与最佳实践
立即解锁
发布时间: 2025-08-18 00:01:09 阅读量: 2 订阅数: 7 

# J2EE 应用部署:描述符、工具与最佳实践
## 1. 基于表单的认证配置
在 J2EE 应用中,基于表单的认证配置是保障系统安全访问的重要方式。以下是一个基于表单认证配置的示例代码:
```xml
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<description>no description</description>
<role-name>gold_customer</role-name>
<role-name>customer</role-name>
</auth-constraint>
<user-data-constraint>
<description>no description</description>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>default</realm-name>
<form-login-config>
<form-login-page>formbasedloginscreen</form-login-page>
<form-error-page>formbasedloginerrorscreen
</form-error-page>
</form-login-config>
</login-config>
```
在这个配置中,定义了允许访问的 HTTP 方法为 GET,指定了能够访问资源的角色为`gold_customer`和`customer`,并使用基于表单的认证方式,同时配置了登录页面和错误页面。
## 2. 命名约定建议
### 2.1 逻辑名称概述
逻辑名称是组件用于引用外部对象的名称。每个组件对其使用的逻辑名称都有自己的作用域,因此不同组件可以使用相同的逻辑名称来引用不同的对象,且引用不会冲突。每次组件使用相同的名称进行查找时,都会从命名上下文中返回相同的对象(或等效对象)。
### 2.2 命名环境条目
环境条目的名称应使用其配置的组件的子上下文。例如,示例应用中的环境条目`CatalogDAOClass`出现在 JNDI 子上下文`java:comp/env/ejb/catalog`中,因为该环境条目是特定于`Catalog`企业 bean 的。对于全局配置应用或配置多个组件的环境条目,可以放在`java:comp/env`子上下文中。以下是一个环境条目声明的示例代码:
```xml
<env-entry>
<env-entry-name>ejb/catalog/CatalogDAOClass</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>...</env-entry-value>
</env-entry>
```
### 2.3 命名企业 bean 引用
所有 EJB 引用的逻辑名称应使用 JNDI 子上下文`java:comp/env/ejb`。将紧密耦合的 bean 分组到额外的子上下文中可能也很有用。例如,示例应用使用 JNDI 子上下文`java:comp/env/ejb/controller`来分组购物客户端控制器和购物外观 bean,因为这两个 bean 密切相关。以下是声明和命名 EJB 引用的示例代码:
```xml
<ejb-local-ref>
<ejb-ref-name>
ejb/controller/ShoppingClientController
</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>...</local-home>
...
<ejb-link>TheShoppingClientController</ejb-link>
</ejb-local-ref>
<ejb-local-ref>
<ejb-ref-name>ejb/controller/ClientFacade</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>...</local-home>
...
<ejb-link>TheShoppingClientFacade</ejb-link>
</ejb-local-ref>
```
### 2.4 命名连接工厂引用
J2EE 平台规范版本 1.3 为连接工厂资源引用的逻辑名称提供了一些指南。一致的逻辑命名按资源管理器类型对资源进行分组,使应用组装者或部署者清楚每个引用需要配置哪种资源。以下是常见 J2EE 资源连接工厂类型的推荐 JNDI 子上下文表格:
| 资源管理器类型 | 连接工厂类型 | JNDI 子上下文 |
| --- | --- | --- |
| JDBC | javax.sql.DataSource | java:comp/env/jdbc |
| JMS | javax.jms.TopicConnectionFactory<br>javax.jms.QueueConnectionFactory | java:comp/env/jms |
| JavaMail | javax.mail.Session | java:comp/env/m
0
0
复制全文
相关推荐










