<b>注释在J2EE5.0中的完善操纵</b>[Java编程]
本文“<b>注释在J2EE5.0中的完善操纵</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
随着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中的利用.
1、在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属性.
@RunAs注释指定了角色"myrole"可以拜候企业Bean办法SlessLocal.hello(String message).
2、在企业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办法.
以上是“<b>注释在J2EE5.0中的完善操纵</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |