首页 文章

JSF,Servlet和JSP有什么区别?

提问于
修改于
浏览 1133
757

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

15 回答

  • 1133

    JSP是MVC(模型视图控制器)的View组件 . Controller接收传入的请求并将其传递给Model,该Model可能是一个执行某些数据库访问的bean . 然后,JSP使用HTML,CSS和JavaScript格式化输出,然后将输出发送回请求者 .

  • 72

    JSP代表JAVA SERVER PAGE ........ jsp不是servlet . Jsp本身使用代码和HTML标记,你不需要分别制作HTML和servlet.Jsp在Web应用程序中扮演着重要的角色 . Servlet是一个java类,它使您的HTML页面从静态变为动态 .

  • 29

    在某些情况下,您可以支持JSP而不是JSF . 应用性质应该是选择技术的决定性因素 .

    如果你有一个丰富的GUI交互和大量的Java脚本需要,那么赞成JSF . 基本上,如果您的GUI应用程序架构像面向组件甚至像Swing一样驱动,那么JSF是最好的 .

    如果应用程序只是一个简单的表单提交,而不是需要很多GUI交互,那么如果学习新技术是一种开销而且复杂的框架是不必要的,那么JSP可以做得很好 .

  • 20

    Servlet:Java Servlet API使Java开发人员能够编写用于提供动态Web内容的服务器端代码 . 与其他专有Web服务器API一样,Java Servlet API提供了比CGI更高的性能;但是,它还有一些关键的额外优势 . 因为servlet是用Java编写的,所以它们提供了面向对象(OO)设计方法,更重要的是,它们能够在任何平台上运行 . 因此,相同的代码可移植到任何支持Java的主机 . Servlet极大地促进了Java的普及,因为它成为服务器端Web应用程序开发的一种广泛使用的技术 . JSP:JSP构建于servlet之上,提供了一种更简单的基于页面的解决方案,可为Web用户界面生成大量动态HTML内容 . JavaServer Pages使Web开发人员和设计人员能够简单地编辑带有动态Java部分特殊标记的HTML页面 . JavaServer Pages通过一个称为JSP容器的特殊servlet来工作,该容器安装在Web服务器上并处理所有JSP页面查看请求 . JSP容器将请求的JSP转换为servlet代码,然后编译并立即执行 . 对同一页面的后续请求只是调用页面的运行时servlet . 如果对服务器上的JSP进行了更改,则查看它的请求将触发另一个转换,编译和重新启动运行时servlet . JSF:JavaServer Faces是用于为Web应用程序构建用户界面的标准Java框架 . 最重要的是,它简化了用户界面的开发,这通常是Web应用程序开发中比较困难和繁琐的部分之一 . 虽然可以通过使用基础Java Web技术(例如Java servlet和JavaServer Pages)来构建用户界面,而无需为企业Web应用程序开发设计全面的框架,但这些核心技术通常会导致各种开发和维护问题 . 更重要的是,当开发人员实现 生产环境 质量解决方案时,JSF解决的同一组问题将以非标准方式解决 . JavaServer Faces旨在通过以下方式简化Java Web应用程序用户界面的开发:•它提供了一种以组件为中心,独立于客户端的开发方法来构建Web用户界面,从而提高了开发人员的工作效率和易用性 . •它简化了Web用户界面对应用程序数据的访问和管理 . •它以简单且不引人注目的方式自动管理多个请求与多个客户端之间的用户界面状态 . •它提供了一个开发框架,该框架对于具有不同技能的不同开发人员是友好的 . •它描述了Web应用程序的一组标准体系结构模式 .

    [来源:Complete reference:JSF]

  • 15

    Jsp也有内置的servlet代码,不需要任何外部编译就可以直接运行 . 更改将直接在浏览器中在jsp中生效 .

    需要编译Servlet(即它将具有特定的类创建)

    Jsf是MVC框架的视图组件

  • 12

    Servlet和JSP之间的基本区别在于,在Servlet中我们编写了java代码,并且我们嵌入了HTML代码,而JSP则只是反向的 . 在JSP中我们编写HTML代码,并且我们使用JSP提供的标记嵌入java代码 .

  • 10

    确实,JSP在执行时被转换为servlet,而JSF是一个全新的东西,以使网页更具可读性,因为JSF允许以标记的形式编写所有编程结构 .

  • 5

    Java Server Pages (JSP) 是Java技术,它使Web开发人员和设计人员能够快速开发和轻松维护利用现有业务系统的信息丰富的动态Web页面 . JSP技术将用户界面与内容生成分开,使设计人员能够在不改变底层动态内容的情况下更改整体页面布局 .

    Facelets 是第一个为 JSF (Java Server Faces) 设计的非JSP页面声明语言,与JSP相比,它为JSF开发人员提供了一种更简单,更强大的编程模型 . 它解决了JSP中用于Web应用程序开发的不同问题 .

    这是一个比较scriplets和facelets功能的表:

    enter image description here
    Source

  • 4
    JSP:means HTML+Java Code:
    

    JSP拥有自己的生命周期jsp_init()jsp_service()jsp_destroy

    首先请求JSP转换为.java文件 . 我们正在使用三种类型的标签
    1.)无脚本

    <%  %>
    

    在这里,开发人员可以声明开发人员想要获取数据的所有内容

    2.)表达标签

    <%=  %>
    

    这里开发人员可以使用一些打印相关数据

    3)声明

    <!% %>
    

    这里开发人员可以声明一些方法相关数据 .

    Servlet:
    

    Servlet拥有自己的生命周期 .

    init()
    service()
    destroy()
    

    第一个请求容器将从web.xml文件读取数据然后在欢迎填充后将显示 .
    在执行动作之后,它将搜索url,在此过程之后,它将自动搜索特定的servlet . 服务操作将执行 .

    JSF:
    

    JSF拥有它自己的ui,它的生命周期可以以六种方式执行,

    A)Restore view phase
    B)Apply request values phase
    C)Process validations phase
    D)Update model values phase
    E)Invoke application phase
    F)Render response phase
    

    对于ui这里的表格,我们使用面板网格,这是不同的面孔 .

    Rich Faces
    Prime Faces.
    
  • -1

    JSP(JavaServer页)

    JSP是在服务器机器上运行的 Java view technology ,它允许您使用客户端语言(如HTML,CSS,JavaScript等)编写模板文本 . JSP支持taglibs,它们由Java代码支持,可以让您动态控制页面流或输出 . 一个着名的taglib是JSTL . JSP还支持Expression Language,它可用于访问后端数据(通过页面中可用的属性,请求,会话和应用程序范围),主要与taglib结合使用 .

    当第一次请求JSP或Web应用程序启动时,servlet容器会将其编译为扩展HttpServlet的类,并在Web应用程序's lifetime. You can find the generated source code in the server's工作目录中使用它 . 例如Tomcat,它是 /work 目录 . 在JSP请求中,servlet容器将执行已编译的JSP类,并通过网络将生成的输出(通常只是HTML / CSS / JS)通过网络发送到客户端,然后客户端将其显示在Web浏览器中 .

    Servlets

    Servlet是在服务器机器上运行的 Java application programming interface (API) ,它拦截客户端发出的请求并生成/发送响应 . 一个众所周知的例子是 HttpServlet ,它提供了使用流行的HTTP methods(例如 GETPOST )挂钩HTTP请求的方法 . 您可以将 HttpServlet 配置为侦听某个HTTP URL模式,该模式可在 web.xml 中配置,或者最近使用Java EE 6配置 @WebServlet 注释 .

    首次请求Servlet或在Web应用程序启动期间,servlet容器将创建它的实例并在Web应用程序的URL模式中将其保留在内存中 . 您可以通过HttpServletRequest访问请求数据并按HttpServletResponse处理响应 . 这两个对象都可用作 HttpServlet 的任何重写方法内的方法参数,例如 doGet()doPost() .

    JSF(JavaServer Faces)

    JSF是 component based MVC framework ,它构建在Servlet API之上,并通过taglibs提供components,可以在JSP或任何其他基于Java的视图技术(如Facelets)中使用 . Facelets比JSP更适合JSF . 它提供了很好的templating capabilities,例如composite components,而JSP基本上只提供jsp:include用于模板化,因此你被迫使用原始Java代码创建自定义组件(这在JSF中有点不透明和很多繁琐的工作)当你想要用单个组件替换重复的组件组 . 从JSF 2.0开始,JSP已被弃用为视图技术,而不支持Facelets .

    作为MVC(Model-View-Controller)框架,JSF提供FacesServlet作为唯一的请求 - 响应控制器 . 它需要您手中的所有标准和繁琐的HTTP请求/响应工作,例如收集用户输入,验证/转换它们,将它们放入模型对象,调用操作和呈现响应 . 这样,最终基本上是View的JSP或Facelets(XHTML)页面和作为Model的JavaBean类 . JSF组件用于将视图与模型绑定(例如ASP.NET Web控件), FacesServlet 使用JSF组件树完成所有工作 .

    相关问题

  • -1

    http://www.oracle.com/technetwork/java/faq-137059.html

    JSP技术是Java技术系列的一部分 . JSP页面被编译为servlet,可以调用JavaBeans组件(bean)或Enterprise JavaBeans组件(企业bean)来在服务器上执行处理 . 因此,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一起使用的标记 .

  • -1

    Servlet - 它是java服务器端层 .

    • JSP - 它是带有html的Servlet

    • JSF - 它的组件基于标签库

    • JSP - 当服务器收到请求时,它被转换为servlet .

  • -1

    JSF是一个高级框架,其中非常容易实现基于模型 - 视图 - 控制器(MVC)的项目架构 . JSF优于JSP的主要优点是可以根据条件轻松动态呈现浏览器上的组件,并轻松集成ajax事件 .

    JSF应用程序的前端即xhtml文件是通过浏览器向用户显示的文件 . 这些xhtml文件在内部调用托管bean,例如控制器,其中写入实际应用逻辑 .

    控制器在内部调用与数据库通信的各种服务(使用Hibernate或JPA API) . 这就是流程如何发生 .

    JSF还与RichFaces结合使用,RichFaces是一个为Web应用程序提供丰富外观的框架 .

    JSF RichFaces Hibernate / JPA是一个很好的学习技术!

  • -1

    从浏览器/客户端角度

    JSP和JSF看起来都一样,按照应用程序要求,JSP更适合基于请求 - 响应的应用程序 .

    JSF针对更丰富的基于事件的Web应用程序 . 我认为事件比请求/响应更精细 .

    从Server Perspective

    JSP页面转换为servlet,它只有最小的行为 .

    JSF页面转换为组件树(通过专门的FacesServlet),它遵循spec定义的组件生命周期 .

  • -1
    • JSF是一个Web应用程序,用于简化基于Web的用户界面的开发集成; JSP是一种基于Java的技术,专门用于帮助软件开发人员创建动态网页 .

    • JSF包含多个核心功能,包括但不限于Managed Beans,基于模板的组件系统和两个基于XML的标记库;必须使用Java字节码编译JSP才能正常运行 .

相关问题