ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ejb3.1 cookbook学习系列2

ejb3.1 cookbook学习系列2

原创 Linux操作系统 作者:MagicProgram 时间:2011-08-22 15:07:16 0 删除 编辑

使用依赖注入访问会话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”字样。



原理

为了能在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

2011-8-18 19-07-56.jpg

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

下一篇: gsoap使用
请登录后发表评论 登录
全部评论

注册时间:2011-02-24

  • 博文量
    29
  • 访问量
    124424