ejb3.1 cookbook学习系列2

使用依赖注入访问会话Bean

一个会话Bean对自己来说,只有有限的数值而已;想变得有价值,就需要由诸如servletJSF页面之类的客户端访问。在本节中,我们将看到如何使用依赖注入在servlet中使用会话Bean


准备工作

使用依赖注入访问会话Bean主要由以下步骤构成:

1. 使用@EJB注解插入EJB

2. 访问需要的类方法。

首先,我们需要一个会话Bean。简便起见,我们使用前一节创建的Salutation会话Bean,并在SalutationApplication中添加servlet


实现

我们创建名为SalutationServletservlet,该servlet将使用Salutation会话Bean中的方法,并将返回结果展示出来。在SalutationApplication-war模块中创建一个包名为servlet,类名为SalutationServletservlet。该servlet包括一个类声明和三个方法:

doGet - 标准servlet方法

doPost - 标准servlet方法

processRequest - doGetdoPost调用

servlet@WebServlet开头,然后声明Servlet EJB实例,并在processRequest方法中使用。

package servlet;

import javax.ejb.EJB;

import packt.Salutation;

@WebServlet(urlPatterns = {/SalutationServlet})

public class SalutationServlet extends HttpServlet {

@EJB

private Salutation salutation;

protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType(text/html;charset=UTF-8);

PrintWriter out = response.getWriter();

try {

        out.println(Servlet SalutationServlet);

out.println(

);

        out.println(salutation.getFormalSalutation(Sherlock Holmes) );

        out.println();

} finally {

        out.flush();

    out.close();

}

}

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse, response) throws ServletException, IOException {

    processRequest(request, response);

}

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    processRequest(request, response);

}

}

在浏览器中输入下图所示的网址,将在页面上出现“Dear Sherlock Holmes”字样。

bb


原理

为了能在servlet中引用EJB对象,我们使用了@EJB注解来注入一个Bean,然而,要使用该注解需要引入如下两个包:

import javax.ejb.EJB;

import packt.Salutation;

servlet要以@WebServlet注解开头。这是类级别的注解,用以标注该类是个HTTP servlet。其中,urlPatterns参数代表了servlet的映射地址,即指明了用户如何在服务器上定位该servlet

@WebServlet(urlPatterns = {/SalutationServlet})

public class SalutationServlet extends HttpServlet {

salutation变量被声明为该servlet类的成员变量,使用@EJB注解将EJB容器中的对象赋予该变量。

@EJB

private Salutation salutation;

HTTP Servlets响应doGetdoPost命令,至于调用哪个方法主要看客户端是采用HTTP GET方法还是HTTP POST方法。在本例中,两种方法都调用了processRequest方法。该方法使用标准servlet代码生成HTML响应返还给浏览器。我们比较关注的是,如何使用salutation对象,并调用getFormalSalutation方法返回结果给浏览器。

        out.println(salutation.getFormalSalutation(Sherlock Holmes) );

    


更多

下一节将接受如何使用JNDI来访问EJB

fj.png2011-8-18 19-07-56.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25432352/viewspace-705548/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25432352/viewspace-705548/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值