在jsp开发中,为什么使用getServletContext()方法代替隐含对象application?

有比较多的方法可以调出ServletContext,哪一种方式更好些?
使用这种方法是偶然,还是使用这种方法有更多的好处?
代码如下:
<%@ page import="mypack.*" %>
<%@ page import="java.util.Properties" %>
<%@ page errorPage="errorpage.jsp" %>
<%@ page import="javax.ejb.*, javax.naming.*, javax.rmi.PortableRemoteObject, java.rmi.RemoteException" %>
<%!
    private BookDBEJB bookDB;

    public void jspInit() {

      bookDB =
          (BookDBEJB)getServletContext().getAttribute("bookDB");        // 为什么不直接用application?

      if (bookDB == null) {
        try {
          InitialContext ic = new InitialContext();
          Object objRef = ic.lookup("java:comp/env/ejb/BookDBEJB");
          BookDBEJBHome home = (BookDBEJBHome)PortableRemoteObject.narrow(objRef,
              mypack.BookDBEJBHome.class);
          bookDB = home.create();
          getServletContext().setAttribute("bookDB", bookDB);
        } catch (RemoteException ex) {
            System.out.println("Couldn't create database bean." + ex.getMessage());
        } catch (CreateException ex) {
            System.out.println("Couldn't create database bean." + ex.getMessage());
        } catch (NamingException ex) {
            System.out.println("Unable to lookup home: "+ "java:comp/env/ejb/BookDBEJB."+ ex.getMessage());
        }
      }
    }

   public void jspDestroy() {
      bookDB = null;
   }

 public String convert(String s){
    try{
    return new String(s.getBytes("ISO-8859-1"),"GB2312");
    }catch(Exception e){return null;}
   }
%>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值