我有一些问题。这些是 :
- JSP 和 Servlet 之间有什么关系?
- JSP 是某种 Servlet 吗?
- JSP 和 JSF 之间有什么关系?
- JSF 是某种基于 预构建 UI 的 JSP ,如 ASP.NET-MVC 吗?
原文由 Cheung 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一些问题。这些是 :
原文由 Cheung 发布,翻译遵循 CC BY-SA 4.0 许可协议
参见 http://www.oracle.com/technetwork/java/faq-137059.html
JSP 技术是 Java 技术家族的一部分。 JSP 页面被编译成 servlet,可以调用 JavaBeans 组件(bean)或 Enterprise JavaBeans 组件(enterprise beans)在服务器上进行处理。因此,JSP 技术是基于 Web 的应用程序的高度可扩展架构中的关键组件。
请参阅 https://jcp.org/en/introduction/faq
答:JavaServer Faces 技术是一种用于为 Web 应用程序构建用户界面的框架。 JavaServer Faces 技术包括:
一组 API,用于:表示 UI 组件并管理它们的状态、处理事件和输入验证、定义页面导航以及支持国际化和可访问性。
一个 JavaServer Pages (JSP) 自定义标记库,用于在 JSP 页面中表达 JavaServer Faces 接口。
JSP 是一种特殊的 servlet。
JSF 是一组可以与 JSP 一起使用的标记。
原文由 S.Lott 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
1 回答6.1k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答992 阅读✓ 已解决
2 回答704 阅读✓ 已解决
2 回答824 阅读✓ 已解决
JSP(Java 服务器页面)
JSP 是一种在服务器计算机上运行的 Java 视图技术,它允许您使用客户端语言(如 HTML、CSS、JavaScript 等)编写模板文本。 JSP 支持 taglibs ,它由允许您控制页面流或动态输出的 Java 代码片段支持。一个著名的标签库是 JSTL 。 JSP 还支持 Expression Language ,它可用于访问后端数据(通过页面、请求、会话和应用程序范围中可用的属性),主要与标签库结合使用。
当第一次请求 JSP 或 Web 应用程序启动时,servlet 容器会将其编译成一个扩展类
HttpServlet
并在 Web 应用程序的生命周期中使用它。您可以在服务器的工作目录中找到生成的源代码。例如在 Tomcat 中,它是/work
目录。在 JSP 请求中,servlet 容器将执行已编译的 JSP 类,并将生成的输出(通常只是 HTML/CSS/JS)通过 Web 服务器通过网络发送到客户端,然后客户端将其显示在 Web 浏览器中。小服务程序
Servlet 是运行在服务器机器上的 Java 应用程序编程接口 (API) ,它拦截客户端发出的请求并生成/发送响应。一个著名的例子是
HttpServlet
它提供了使用流行的 HTTP 方法 挂钩 HTTP 请求的方法,例如GET
和POST
您可以配置HttpServlet
s 以侦听特定的 HTTP URL 模式,该模式可在web.xml
中配置,或者最近在 Java EE 6 中使用@WebServlet
当第一次请求 Servlet 时或在 Web 应用程序启动期间,Servlet 容器将创建它的一个实例并在 Web 应用程序的生命周期内将其保存在内存中。对于 URL 与 servlet 的 URL 模式相匹配的每个传入请求,将重复使用同一个实例。您可以通过 — 访问请求数据,并通过
HttpServletResponse
HttpServletRequest
处理响应。这两个对象都可用作HttpServlet
的任何重写方法中的方法参数,例如doGet()
和doPost()
JSF(Java服务器面)
JSF 是一个 基于组件的 MVC 框架,它建立在 Servlet API 之上,并通过标签库提供 组件,这些组件可以在 JSP 或任何其他基于 Java 的视图技术(如 Facelets )中使用。 Facelets 比 JSP 更适合 JSF。它提供了强大的 模板功能,例如 复合组件,而 JSP 基本上只提供
<jsp:include>
用于在 JSF 中进行模板化,因此您不得不使用原始 Java 代码(有点不透明并且很多繁琐的工作)当你想用一个组件替换一组重复的组件时。自 JSF 2.0 以来,JSP 已被弃用为支持 Facelets 的视图技术。注意:JSP 本身并没有被弃用,只是 JSF 与 JSP 的组合被弃用了。
注意:JSP 通过 Taglibs 具有强大的模板化能力,尤其是 ( Tag File ) 变体。缺少结合 JSF 的 JSP 模板。
作为 MVC( 模型-视图-控制器)框架,JSF 提供
FacesServlet
作为唯一的请求-响应 _控制器_。它从您手中接过所有标准和繁琐的 HTTP 请求/响应工作,例如收集用户输入、验证/转换它们、将它们放入模型对象、调用操作和呈现响应。通过这种方式,您基本上可以得到一个用于 View 的 JSP 或 Facelets (XHTML) 页面和一个 JavaBean 类作为 Model 。 JSF 组件用于将视图与模型绑定(例如您的 ASP.NET Web 控件),而FacesServlet
使用 JSF 组件树 来完成所有工作。相关问题