你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Java专栏
注释在J2EE5.0中的完美应用(2)
 
@RunAs注释指定了角色"myrole"可以访问企业Bean方法SlessLocal.hello(String message)。

  二、在企业Bean中使用注释

  下面是上述的无状态企业Bean的主要代码:

  @Stateless
  @Local({SlessLocal.class})
  public class SlessBean implements SlessLocal {
    @RolesAllowed(value={"myrole"})
    public String hello(String message) {
      return "Hello, " + message + ", " + new Date();
    }
  }

  从上面的代码我们可以注意到hello方法通过使用@RolesAllowed注释被保护了起。这个注释指定了只有用户"myrole"才能访问hello方法。

  三、在JSP和标签库中使用注释

  在显示业display.jsp中,调用了JSP标签库中的一个动作,并将属性EJB_MESSAGE作为一个参数传入HttpServletRequest。下面是display.jsp的部分代码:

  <%@taglib prefix="di"
    uri="http://java.sun.com/techtip/webann/test-taglib"%>
  ...
   <di:displayInfo ejbMessage="${requestScope.EJB_MESSAGE}"/>
  ...

  上面所使用的标签将从ejbMessage参数中读取值,并将这个值显示在HTML中。而且它会这数据源打印出登录超时。下面是标签处理类似部分代码:

  public class DisplayInfoTagHandler extends SimpleTagSupport {
 
   private @Resource(name="jdbc/__default") DataSource ds;
   ...
   public void doTag() throws JspException, IOException {
     try {
       JspWriter out = getJspContext().getOut();
       int timeout = ds.getLoginTimeout();
       if (ejbMessage != null && ejbMessage.length() > 0)
       {
         out.println(
           "<li> Ejb Message: " + ejbMessage);
      }
       out.println(
         "<li> DataSource login timeout: " + timeout);
     ...
   }
   public void setEjbMessage(String ejbMessage) {
     this.ejbMessage = ejbMessage;
   }
  }

  上面代码中的@Resource注释在标签类中使用JNDI"jdbc/__default"来查询DataSource。这个JNDI名对应于默认的数据库。如果我们想访问数据库连接,可以在tag处理类中加入ds.getConnection()。

(编辑:aniston)

  推荐精品文章

·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 
·2023年7月目录
·2023年6月目录 
·2023年5月目录
·2023年4月目录 
·2023年3月目录 
·2023年2月目录 
·2023年1月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089