网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Robocode 高手的秘诀:圆周瞄准.
.Java编程语言基础 JSP基本语法的.
.Java 技巧:用 Java 保存位图文件.
.java exe 程序.
.《java与模式》----创建模式系列.
.Jakarta Struts学习之应用实践.
.Java能够成为完美的技术平台吗?.
.用J2SE 1.4进行Internet安全编程.
.Tomcat+Mysql入门实例:滚动横幅广.
.java的线程安全四种方式五个等级.
.Jive论坛与Spring框架.
.基于范型的java函数式编程(一).
.java中动态执行一段代码.
.基于weblogic 的ejb 学习笔记(二.
.Leopard新问题 不能用最新版Java.
.关于java.util.regex 包中新增字.
.Java Socket编程(二).
.破除Java神话之参数按传址方式传.
.MagicDraw UML 11.0&n.
.Java曝漏洞 应立即打补丁防被黑客.

循速渐进学用Session Bean(三)

发表日期:2008-1-5


  创建无状态的Session Bean

  从编程的角度看,创建无状态的Session Bean和创建有状态的是一样简单的。除了在配置工具里修改一个设置外,仅有的一点不同是在bean的初始设计阶段,无状态的Session Bean并不记得方法调用之间的任何东西,bean需要的任何消息都必须由客户端获得。虽然无状态的Session Bean并不记得面向session的数据,不过可以在一个无状态的session bean中存放数据,只是不能存放与客户端相关的数据。

  在HelloWorldSession的例子中,该bean在方法调用之间仍记得一个问候的字符串。例如,你调用setGreeting来修改欢迎词,当你调用getGreeting时,该session会记得保存的欢迎词。

  列表6.5“Hello World”session bean Remote 接口(无状态版本)

Listing 6.5 Source Code for StatelessHello.Java
package usingj2ee.hello;

import java.rmi.*;
import javax.ejb.*;

/** Defines the methods you can call on a StatelessHello object */

public interface StatelessHello extends EJBObject
{

/** Returns a greeting for the named object */
public String greet(String thingToGreet) throws RemoteException;

}

  在这个例子中,Remote接口仅提供了一个greet方法,该方法接收一个参数并且返回一个欢迎词。例如,假如传送“World”参数给greet,greet方法将返回“Hello World!”。

  列表6.6展示了StatelessHello bean的Home接口。

Listing 6.6 Source Code for StatelessHelloHome.java
package usingj2ee.hello;

import java.rmi.*;
import javax.ejb.*;

/** Defines the methods for creating a StatelessHelloWorld */

public interface StatelessHelloHome extends EJBHome
{

/** Creates a StatelessHello session bean. A stateless session bean
can't have a create method that takes parameters. */
public StatelessHello create() throws RemoteException, CreateException;

}

进入讨论组讨论。

  无状态的session bean仅拥有一个create方法,而且该方法不能接受任何参数。这看起来有些希奇,不过假如考虑到无状态session bean的含义你就会明白了。这种bean不能记住某个客户的任何信息,实际上,为了性能上的原因,容器也许会不时地让不同的session处理某个客户的方法调用。由于session并不需要记住某个客户的信息,因此使用另一个bean来处理负载并不会带来任何问题。

  假如bean的create方法接受任何的参数,session bean实例之间的行为将会有所不同,因为你为create方法提供不同的值。

  实现无状态session bean与有状态的session bean是一样简单的。列表7中的是StatelessHelloImpl类,它实现了Remote和Home接口。

Listing 6.7 Source Code for StatelessHelloImpl.java
package usingj2ee.hello;

import java.rmi.*;
import java.util.*;
import javax.ejb.*;

/** The implementation class for the StatelessHello bean */

public class StatelessHelloImpl implements SessionBean
{
/** The session context provided by the EJB container. A session bean must
hold on to the context it is given. */
private SessionContext context;

/** An EJB must have a public, parameterless constrUCtor */

public StatelessHelloImpl()
{
}

/** Called by the EJB container to set this session's context */

public void setSessionContext(SessionContext aContext)
{
context = aContext;

上一篇:谈谈TCP和UDP的一些简单应用 人气:713
下一篇:2004开发技术年度综述之Java世界 人气:487
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐