你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Java专栏
注释在J2EE5.0中的完美应用(1)
 
随着J2EE进入5.0时代后,J2SE5.0的很多特性也被广泛应用在J2EE程序中。而J2SE5.0的注释(Annotations)特性就是其中应用最广泛的特性之一。

  在以前的J2EE版本中,都是使用大量的配置文件来设置Web程序、EJB等。但这一切在J2SE5.0中得到了彻底的改善。在J2EE5.0的注释中的一些是专门针对Web和EJB程序的。如@Resource, @EJB和@WebServiceRef等。其它的一些注释,如@RunAs和@DeclareRoles则和安全相关。

  虽然我们可以在不同的Web应用组件(Class类)中使用注释,但却不能在JSP中使用注释。不过我们也不用感到遗憾。虽然无法在JSP中使用注释,但Web库却支持注释。这就意味着我们可以在Servlet过滤器和标签(Tag)库或是其它使用Class的地方使用注释。下面将列举几种注释在J2EE5.0中的应用。

  一、在Servlet中使用注释

  首先让我们来看看如何在Servlet中使用注释。在本文的例子中,servlet使用一个本地的接口SlessLocal调用了一个企业Bean(在本例子中是一个无状态的会话Bean)。Servlet将一个message对象作为一个请求属性传入到EJB中,并定向到一个JSP页:display.jsp中。为了演示这一过程,下面是servlet的主要代码:

  @DeclareRoles({"arole"})
  @RunAs("myrole")
  public class TestServlet extends HttpServlet {
    private @EJB SlessLocal slessLocal;
   
    public void service(
      HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
      if (req.isUserInRole("arole")) {
        String message = slessLocal.hello("World");
        req.setAttribute("EJB_MESSAGE", message);
      }
 
      RequestDispatcher rd =
        req.getRequestDispatcher("display.jsp");
      rd.forward(req, resp);
    }
  }

  从上面的代码可以看到,@EJB注释被用来使用适当的接口查询企业Bean,这些Bean最终将被Servlet调用。@DeclareRoles注释定义了被HttpServletRequest.isUserInRole(String role)使用的角色。isUserInRole方法确定了当前用户是否是被指定的角色。在本例中的角色中只有一个用户“arole”将使Servlet获得“message”字符串,并将其赋给HttpServletRequest属性。

(编辑: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