当前位置: 首页 > 面试题库 >

Java-JSF,Servlet和JSP有什么区别?

孔俊爽
2023-03-14
问题内容

JSP和Servlet之间如何关联?JSP是某种Servlet吗?JSP和JSF如何相互关联?JSF是某种基于ASP.NET-MVC的基于预构建UI的JSP吗?


问题答案:

JSP是在服务器计算机上运行的Java视图技术,它使你可以用客户端语言(例如HTML,CSS,JavaScript等)编写模板文本。JSP支持taglibs,这些标签库由Java代码片段支持,可让你动态控制页面流或输出。著名的taglib是JSTL。JSP还支持Expression Language,该语言可用于访问后端数据(通过页面,请求,会话和应用程序范围中可用的属性),通常与taglib结合使用。

当首次请求JSP或Web应用程序启动时,Servlet容器会将其编译为一个扩展类,HttpServlet并在Web应用程序的生存期内使用它。你可以在服务器的工作目录中找到生成的源代码。例如在Tomcat中,它是/work目录。根据JSP请求,servlet容器将执行已编译的JSP类,并将生成的输出(通常只是HTML / CSS / JS)通过网络服务器通过网络发送到客户端,客户端再将其显示在网络浏览器中。

小程序

Servlet是在服务器计算机上运行的Java应用程序编程接口(API),可拦截客户端发出的请求并生成/发送响应。一个著名的示例是,HttpServlet它提供了使用流行的HTTP方法(例如和)来挂接HTTP请求的方法。你可以将进行配置以侦听特定的HTTP URL模式,该模式可以在中进行配置,或者在Java EE 6中通过注解进行更新。GETPOSTHttpServletweb.xml@WebServlet

当首次请求Servlet或在Web应用程序启动期间,Servlet容器将创建它的一个实例,并将其在Web应用程序的生存期内保存在内存中。URL匹配servlet的URL模式的每个传入请求都将重用同一实例。你可以通过访问数据HttpServletRequest并通过处理响应HttpServletResponse。这两个对象都可以用作方法的参数HttpServlet,例如doGet()和的任何覆盖方法doPost()

JSF(JavaServer Faces)

JSF是基于组件的MVC框架,该框架建立在Servlet API之上,并通过可在JSP或任何其他基于Java的视图技术(例如Facelets)中使用的标记库提供组件。Facelets比JSP更适合JSF。它即提供了强大的模板功能,例如复合组件,而JSP基本上仅提供JSF中的for模板功能,因此,当你使用原始Java代码(这有点不透明且繁琐的工作)时,你不得不创建自定义组件。你想要用单个组件替换重复的组件组。从JSF 2.0开始,已弃用JSP作为支持Facelets的视图技术。 <jsp:include>

注意:不建议不要使用JSP本身,仅建议不要使用JSF和JSP的组合。

注意:JSP通过Taglib(特别是(Tag File)变体)具有强大的模板功能。缺少与JSF结合使用的JSP模板。

作为MVC(模型-视图-控制器)框架,JSF提供了FacesServlet作为唯一的请求-响应控制器。它需要你完成所有标准且繁琐的HTTP请求/响应工作,例如收集用户输入,验证/转换它们,将它们放入模型对象,调用操作并呈现响应。这样,你最终获得了View的JSP或Facelets(XHTML)页面以及Java的Model类。JSF组件用于将视图与模型绑定(例如ASP.NET Web控件所做的工作),并且FacesServlet使用JSF组件树来完成所有工作。



 类似资料:
  • 问题内容: 我有一些疑问。这些是 : JSP和Servlet之间如何关联? JSP是某种Servlet吗? JSP和JSF如何相互关联? JSF是某种基于ASP.NET-MVC的基于预构建UI的JSP吗? 问题答案: JSP(JavaServer页面) JSP是在服务器计算机上运行的一种Java视图技术,使你可以用客户端语言(例如HTML,CSS,JavaScript等)编写模板文本。JSP支持t

  • 本文向大家介绍JSP 和 servlet 有什么区别?相关面试题,主要包含被问及JSP 和 servlet 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 JSP 是 servlet 技术的扩展,本质上就是 servlet 的简易方式。servlet 和 JSP 最主要的不同点在于,servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 html 里分离开来,而 JSP 的

  • 我只是JSF的初学者,所以我不知道这是不是正确的问题。有没有可能,如果我用JSF标记/组件制作一个表单,并为action属性定义一个servlet(即可以形成提交给servlet的数据),如果有可能,那么我如何实现这一点,如何在servlet中获取表单参数。它与方法的request.getParameter()相同吗?请解释。我将为自己的实践制作一个项目,并希望将JSF、SERVLET和JSP一起

  • 问题内容: 我被要求在portlet和门户网站上工作。 我想知道portlet和servlet之间的区别吗? Portlet与Servlet有何不同之处(可能在功能上)? 问题答案: Portlet是JSR-168标准的一部分,该标准规范门户容器和组件。这与Web容器(和Servlet)的标准不同。尽管这两个标准之间肯定有很强的相似之处,但是它们在容器,API,生命周期,配置,部署等方面有所不同。

  • (1)servlet是服务器端的Java程序,它担当客户端和服务端的中间层。 (2)jsp全名为Java server pages,中文名叫Java服务器页面,其本质是一个简化的servlet设计。JSP是一种动态页面设计,它的主要目的是将表示逻辑从servlet中分离出来。 (3)JVM只能识别Java代码,不能识别JSP,JSP编译后变成了servlet,web容器将JSP的代码编译成JVM能

  • 问题内容: 我正在从Spring 2.5迁移到Spring 3。 他们介绍了一些黑魔法。预期仅在servlet配置文件中声明。 在Spring 2.5中,我刚刚使用,并且在分发服务器servlet配置XML中声明了标记,并使用了要扫描的基本包。 所以,我不知道是什么样的区别,并在servlet配置标签和我有什么可以消除在Spring3配置文件? 问题答案: 声明一般注释,比如支持,等等。 声明了注