JSF托管bean如何比普通的Java Servlet更有用

时间:2015-02-10 11:45:15

标签: java jsf java-ee jsf-2

在java ee 7中,建议使用jsf作为默认表示技术。正如他们所说,JSP已被弃用。

因此,从jsf开始,我发现它使用了managedbean,它可以处理事件并为视图提供数据。它还管理页面流。

所以我的问题是:

  1. 是否真的建议在java ee中使用jsf模型而不是使用servlet?
  2. 根据我的理解,managedbean在某种程度上扩展了servlet功能。

    1. 如果我想在基于jsf的应用程序中使用servlet,我该怎么办?
    2. 我可以在JSF托管bean中使用请求和响应对象吗? 我想像Servlet那样根据请求和响应周期手动发送响应。

1 个答案:

答案 0 :(得分:1)

是的,Java EE从特定的专用类开始。只是在那里出现了一个POJO趋势,使用了注释。 Servlet构成了最早的Java EE技术,但它们仍然非常相关。此外,JSF需要一个servlet容器,提供与servlet相关的类,但JSF的耦合程度较低,并且在传统的Web应用程序之外也有使用。

  1. MVC模型:用于Model的bean,用于View的JSF和用于Controller的servlet。在准备数据(bean)之后,servlet可能会forward到某个apt view / JSF。对于特殊用例,servlet可能更适合或至少更直接,PDF生成,图表。不要忘记 servlet过滤器

  2. 让URL映射到servlet上。可以使用注释。有准备bean,您可以在任何范围内设置和保存,请求范围是最轻和单向的。然后前进:

    request.getRequestDispatcher("/contact.jsf")
        .forward(request, response);
    

    或者来自ServletContext:

    context.getRequestDispatcher("/context/contact.jsf")
        .forward(request, response);
    
  3. 由于网络应用程序有很多技术,你找到了一个很好的起点;尝试其他框架也可能令人耳目一新。