总觉得j2ee tutorial书写的很好,但是很零散,令初学者不得要领。
本文就笔者研习一段时间的j2ee并结合这本书写一些东西。
1.国际化
比如我有名叫Messages_*.properties的资源包。
管理客户端:
public BankAdmin(Locale currentLocale)
messages = ResourceBundle.getBundle("Messages",currentLocale);
web客户端:
从请求中提取区域信息(由浏览器的语言偏好设置),打开对应的资源包,然后把该包作为一个会话的属性存储起来:
ResourceBundle messages = (ResourceBundle)session.getAttribute("messages");
if(messages==null){
Locale locale = request.getLocale();
messages = ResourceBundle.getBundle("Messages",locale);
session.setAttribute("messages",messages);
}
注意:为显示中文,程序里部件需选择指定字体,如在显示中文时使用"MS Song"不然界面会有方框。
2.Context是接口(所有命名操作都与其有关),initialContext是类,直接继承于Object
3.RequestDispather
接受客户端请求并发送到任何服务器上资源,能包装servlets但是servlet容器能生成RequestDispatcher封装任何类型的资源。
4.deploytool中的几个重要的选项卡
首先注意的是不是所有选项卡都是对于每个组件都有用。
1).Env. Enties 环境入口,设置环境变量(和程序逻辑无关且经常变动的内容),调用环境变量通过JNDI Naming方式,
ic.lookup("java:comp/env/变量名").存储在企业Bean的配置描述符中,允许定制企业Bean的业务逻辑而无需改动源码的名字值对。
2).Ejb Refs 在coded name中输入企业Bean的应用名字。是JNDI查找Client的逻辑名字。如果在JNDI的lookup中查找企业Bean的应用象这样
:
java:comp/env/ejb/OtherBean
则输入ejb/OtherBean
3).Resource Refs
resource reference name是JNDI查找的资源的逻辑名称。有六种类型:
DataSource是jdbc/
Session mail/
URL url/
QueueConnectionFactory和TopicConnectionFactory jms/
ConnectionFactory env/
注:QueueConnectionFactory和TopicConnectionFactory,ConnectionFactory 需要用户名和密码请写到用户名和密码域中,
Cloudscape 不需要用户名和密码。
4).Resource Environment Refs
对于在代码中出现jms/的
5.如果组件应用了本地实体Bean,则需要在Enterprise Bean Name域中给出来被引用Bean的名字。
6.传递企业Bean的对象引用
例如你可以通过引用使企业Bean可以调用另一个企业Bean的方法。你无法访问this引用因为它指向在EJB容器中运行的Bean实例,只有容器可
以直接调用Bean实例的方法。客户端通过远程接口实现对象间接调用Bean的方法,通过这些对象(远程接口实现对象)的引用企业Bean可以互
相访问。
会话Bean调用SessionContext接口定义的getEJBObject方法获得它的远程接口对象引用。
实体Bean调用的是EntityContext接口定义的getEJBObject方法。
这两个借口提供企业Bean访问EJB容器管理的上下文对象。
典型情况下,企业Bean通过setSessionContext方法保存它的上下文对象。下面的代码片断说明了会话Bean如何使用这些方法:
public class WagonBean implements SessionBean {
SessionContext context;
...
public void setSessionContext(SessionContext sc) {
this.context = sc;
}
...
public void passItOn(Basket basket) {
...
basket.copyItems(context.getEJBObject());
}
7.META-INF必须用大写。
8.include(request,response) 目的:加入一个资源。
从web组件中返回的响应包含,如:版权信息和标示信息
资源分为:静态和web组件
9.service服务方法通常模式
从请求中提取信息---访问外部资源---然后基于这些信息发布响应
发布响应步骤:1.响应头 2.从响应得到输出流 3.输出流中写入响应体
10.对一个不懂的工具看他的帮助是最直接的手段,别的什么也比不上。
总觉得j2ee tutorial书写的很好,但是很零散,令初学者不得要领。
本文就笔者研习一段时间的j2ee并结合这本书写一些东西。
1.国际化
比如我有名叫Messages_*.properties的资源包。
管理客户端:
public BankAdmin(Locale currentLocale)
messages = ResourceBundle.getBundle("Messages",currentLocale);
web客户端:
从请求中提取区域信息(由浏览器的语言偏好设置),打开对应的资源包,然后把该包作为一个会话的属性存储起来:
ResourceBundle messages = (ResourceBundle)session.getAttribute("messages");
if(messages==null){
Locale locale = request.getLocale();
messages = ResourceBundle.getBundle("Messages",locale);
session.setAttribute("messages",messages);
}
注意:为显示中文,程序里部件需选择指定字体,如在显示中文时使用"MS Song"不然界面会有方框。
2.Context是接口(所有命名操作都与其有关),initialContext是类,直接继承于Object
3.RequestDispather
接受客户端请求并发送到任何服务器上资源,能包装servlets但是servlet容器能生成RequestDispatcher封装任何类型的资源。
4.deploytool中的几个重要的选项卡
首先注意的是不是所有选项卡都是对于每个组件都有用。
1).Env. Enties 环境入口,设置环境变量(和程序逻辑无关且经常变动的内容),调用环境变量通过JNDI Naming方式,
ic.lookup("java:comp/env/变量名").存储在企业Bean的配置描述符中,允许定制企业Bean的业务逻辑而无需改动源码的名字值对。
2).Ejb Refs 在coded name中输入企业Bean的应用名字。是JNDI查找Client的逻辑名字。如果在JNDI的lookup中查找企业Bean的应用象这样
:
java:comp/env/ejb/OtherBean
则输入ejb/OtherBean
3).Resource Refs
resource reference name是JNDI查找的资源的逻辑名称。有六种类型:
DataSource是jdbc/
Session mail/
URL url/
QueueConnectionFactory和TopicConnectionFactory jms/
ConnectionFactory env/
注:QueueConnectionFactory和TopicConnectionFactory,ConnectionFactory 需要用户名和密码请写到用户名和密码域中,
Cloudscape 不需要用户名和密码。
4).Resource Environment Refs
对于在代码中出现jms/的
5.如果组件应用了本地实体Bean,则需要在Enterprise Bean Name域中给出来被引用Bean的名字。
6.传递企业Bean的对象引用
例如你可以通过引用使企业Bean可以调用另一个企业Bean的方法。你无法访问this引用因为它指向在EJB容器中运行的Bean实例,只有容器可
以直接调用Bean实例的方法。客户端通过远程接口实现对象间接调用Bean的方法,通过这些对象(远程接口实现对象)的引用企业Bean可以互
相访问。
会话Bean调用SessionContext接口定义的getEJBObject方法获得它的远程接口对象引用。
实体Bean调用的是EntityContext接口定义的getEJBObject方法。
这两个借口提供企业Bean访问EJB容器管理的上下文对象。
典型情况下,企业Bean通过setSessionContext方法保存它的上下文对象。下面的代码片断说明了会话Bean如何使用这些方法:
public class WagonBean implements SessionBean {
SessionContext context;
...
public void setSessionContext(SessionContext sc) {
this.context = sc;
}
...
public void passItOn(Basket basket) {
...
basket.copyItems(context.getEJBObject());
}
7.META-INF必须用大写。
8.include(request,response) 目的:加入一个资源。
从web组件中返回的响应包含,如:版权信息和标示信息
资源分为:静态和web组件
9.service服务方法通常模式
从请求中提取信息---访问外部资源---然后基于这些信息发布响应
发布响应步骤:1.响应头 2.从响应得到输出流 3.输出流中写入响应体
10.对一个不懂的工具看他的帮助是最直接的手段,别的什么也比不上。