使用servlet , jsp, javabean 调用ejb的方法

今天学习了ejb相关内容,小有收获。初步体验下来发现在使用servlet调用ejb时十分方便,而使用jsp,javabean调用ejb时则需要显示的使用JNDI。下来就来分别说说3种具体调用方法把。

 

首先,建立名为converterBean的本地ejb,然后在bean中添加本地方法toLowerCase()。这样ejb就算建好了。

 

接下来进入正题,使用servlet,jsp,javabean调用ejb方法。

 

1. servlet

    servlet比较简单.只需如下操作。

 

    @EJB
    private ConverterLocal converterBean;

 

    这样我们就可以通过converterBean这个对象直接调用ejb的函数了。

    @EJB这个annotation帮助我们减少了不少工作量。因此这个方法十分简单。

    可惜的是@EJB无法在jsp和javabean中使用。

 

2. jsp

    jsp调用ejb需要用到JNDI。操作如下。

 

    <%@ page import = "javax.naming.*"%> 

    <%@ page import = "com.ejb.*"%>  
    <%@ page import ="java.util.logging.*"%>

    <%
        ConverterLocal converterBean;
       try {
            Context c = new InitialContext();
            converterBean= (ConverterLocal) c.lookup("java:comp/env/ConverterBean");
        } catch (NamingException ne) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
            throw new RuntimeException(ne);
        }

    %〉

 

   此时,我们同样获得了converterBean这个对象。

 

3. javabean

    javabean与jsp的方法一致。如下。

 

import com.ejb.ConverterLocal;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

/**
 *
 * @author dada89007
 */
public class jspBean {
    private ConverterLocal lookupConverterBean() {
        try {
            Context c = new InitialContext();
            return (ConverterLocal) c.lookup("java:comp/env/ConverterBean");
        } catch (NamingException ne) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
            throw new RuntimeException(ne);
        }
    }
}

    通过lookupConverterBean()这个函数得到了ejb的对象。

 

至此我们就可以灵活运用servlet,jsp,javabean调用ejb方法了。

 

ps:新手发帖。。。如有错误请指正。。。

你可能感兴趣的:(JavaEE)