What is the difference between JSF, Servlet and JSP?
JSP和servlet如何相互关联?JSP是某种servlet吗?JSP和JSF如何相互关联?JSF是否是一种基于预构建UI的JSP,比如ASP.NET-MVC?
JSP(JavaServer页面)
JSP是在服务器机器上运行的Java视图技术,它允许您以客户端语言编写模板文本(如HTML、CSS、JavaScript等)。JSP支持TabLIB,它由Java代码支持,允许您动态地控制页面流或输出。众所周知的taglib是jstl。JSP还支持表达式语言,该语言可用于访问后端数据(通过页面、请求、会话和应用程序范围中的可用属性),主要与taglibs结合使用。
当第一次请求JSP或Web应用启动时,servlet容器会将其编译为扩展
Servlet是在服务器机器上运行的Java应用程序编程接口(API),它拦截客户机发出的请求并生成/发送响应。一个众所周知的例子是
当servlet第一次被请求或在Web应用程序启动期间,servlet容器将创建它的一个实例,并在Web应用程序的生存期内将其保存在内存中。对于URL与servlet的URL模式匹配的每个传入请求,将重用相同的实例。您可以通过
JSF是一个基于组件的MVC框架,它构建在Servlet API之上,并通过TabLIB提供组件,这些组件可以用于JSP或任何其他基于Java的视图技术(如FACELET)。Facelets比JSP更适合JSF。它提供了强大的模板功能,如复合组件,而JSP基本上只为JSF中的模板提供EDCOX1 13,因此当您想用一个单一的组件替换重复的组件时,被迫使用原始Java代码创建自定义组件(这有点不透明和大量繁琐的工作)。NT。自JSF 2.0以来,JSP一直被弃用为视图技术,而倾向于Facelets。
注意:JSP本身并没有被否决,只是JSF和JSP的组合被否决了。
注意:JSP通过标记库,特别是(标记文件)变体,具有很好的模板化能力。缺少与JSF结合使用的JSP模板。
作为一个MVC(模型-视图-控制器)框架,JSF提供了
- 什么是主流的Java替代ASP.NET /PHP?
- JavaEE Web开发,我需要什么技能?
- servlet如何工作?实例化、会话变量和多线程
- 什么是JavaBean,在哪里使用?
- 如何避免JSP文件中的Java代码?
- 什么组件是JSF MVC框架中的MVC?
- 当可以通过jquery和angularjs等JavaScript库实现UI时,JSF的需求是什么?
湖http:/ / / / faq-137059.html www.oracle.com technetwork Java
JSP technology is part of the Java
technology family. JSP pages are
compiled into servlets and may call
JavaBeans components (beans) or
Enterprise JavaBeans components
(enterprise beans) to perform
processing on the server. As such, JSP
technology is a key component in a
highly scalable architecture for
web-based applications.
湖https://jcp.org /恩/介绍/常见问题解答
A: JavaServer Faces technology is a
framework for building user interfaces
for web applications. JavaServer Faces
technology includes:A set of APIs for: representing UI
components and managing their state,
handling events and input validation,
defining page navigation, and
supporting internationalization and
accessibility.A JavaServer Pages (JSP) custom tag
library for expressing a JavaServer
Faces interface within a JSP page.
是一个专业的JSP,Servlet的。
JSF是一个你可以使用的一组JSP标签。
从浏览器/客户端角度
JSP和JSF看起来都一样,根据应用程序的需求,JSP更适合于基于请求-响应的应用程序。
JSF的目标是更丰富的基于事件的Web应用程序。我认为事件比请求/响应更细粒度。
从服务器角度
JSP页面被转换为servlet,它只有最小的行为。
JSF页面被转换为组件树(通过专门的facesservlet),它遵循规范定义的组件生命周期。
Servlets :
The Java Servlet API enables Java developers to write server-side code
for delivering dynamic Web content. Like other proprietary Web server
APIs, the Java Servlet API offered improved performance over CGI;
however, it has some key additional advantages. Because servlets were
coded in Java, they provides an object-oriented (OO) design approach
and, more important, are able to run on any platform. Thus, the same
code was portable to any host that supported Java. Servlets greatly
contributed to the popularity of Java, as it became a widely used
technology for server-side Web application development.JSP :
JSP is built on top of servlets and provides a simpler, page-based
solution to generating large amounts of dynamic HTML content for Web
user interfaces. JavaServer Pages enables Web developers and designers
to simply edit HTML pages with special tags for the dynamic, Java
portions. JavaServer Pages works by having a special servlet known as
a JSP container, which is installed on a Web server and handles all
JSP page view requests. The JSP container translates a requested
JSP into servlet code that is then compiled and immediately executed.
Subsequent requests to the same page simply invoke the runtime servlet
for the page. If a change is made to the JSP on the server, a request
to view it triggers another translation, compilation, and restart of
the runtime servlet.JSF :
JavaServer Faces is a standard Java framework for building user
interfaces for Web applications. Most important, it simplifies the
development of the user interface, which is often one of the more
difficult and tedious parts of Web application development.
Although it is possible to build user interfaces by using foundational
Java Web technologies(such as Java servlets and JavaServer Pages)
without a comprehensive framework designedfor enterprise Web
application development, these core technologies can often lead to
avariety of development and maintenance problems. More important, by
the time the developers achieve a production-quality solution, the
same set of problems solved by JSF will have been solved in a
nonstandard manner. JavaServer Faces is designed to simplify the
development of user interfaces for Java Web applications in the
following ways:
? It provides a component-centric,
client-independent development approach to building Web user
interfaces, thus improving developer productivity and ease of use.
? It simplifies the access and management of application data from the
Web user interface.
? It automatically manages the user interface
state between multiple requests and multiple clients in a simple and
unobtrusive manner.
? It supplies a development framework that is
friendly to a diverse developer audience with different skill sets.
? It describes a standard set of architectural patterns for a web
application.
[来源:完整参考:JSF]
在有些情况下,您可以优先使用JSP而不是JSF。应用性质应是选择技术的决定因素。
如果有丰富的GUI交互,需要大量Java脚本,那么就支持JSF。基本上,如果您的GUI应用程序架构类似于面向组件的,甚至类似于Swing的驱动,那么JSF是最好的。
如果应用程序只是一个简单的表单提交,不需要太多的GUI交互,那么如果学习新技术是一种开销,而且不需要复杂的框架,那么JSP可以做得很好。
Servlet——它是Java服务器端层。
- JSP-它是带有HTML的servlet
- JSF-它的组件基于标记libs
- JSP—当服务器收到请求时,它会转换为servlet一次。
事实上,JSP在执行时被转换成servlet,而JSF是一个全新的东西,因为JSF允许以标记的形式编写所有的编程结构,所以为了使网页更具可读性。
JavaServer页面(JSP)是Java技术,它使Web开发人员和设计人员能够快速开发和维护维护现有业务系统的信息丰富、动态的网页。JSP技术将用户界面与内容生成分离开来,使设计人员能够在不改变底层动态内容的情况下更改整个页面布局。
FACELET是为JSF(Java Server FACTS)设计的第一个非JSP页面声明语言,它为JSF开发人员提供了比JSP更简单和更强大的编程模型。它解决了Web应用程序开发中JSP中出现的不同问题。
下面是一个表格,它比较了屏幕和面板的功能:
来源
Servlet和JSP之间的基本区别是,在servlet中,我们编写Java代码,在其中嵌入HTML代码,而JSP正好相反。在JSP中,我们编写HTML代码,使用JSP提供的标签嵌入Java代码。
1 |
JSP有它自己的生命周期JSPGIN()JSPX服务()JSPY破坏
在第一次请求JSP转换为.java文件之后。我们使用的标签有三种1)无脚本
1 | <% %> |
开发者可以在这里声明所有开发者想要获取数据的东西。
2.)表达式标记
1 | <%= %> |
开发者可以在这里使用一些与打印相关的数据
3)声明
1 | <!% %> |
开发者可以在这里声明一些与方法相关的数据。
1 | Servlet: |
servlet有它自己的生命周期。
1 2 3 | init() service() destroy() |
在第一次请求之后,容器将从web.xml文件读取数据然后,将显示出"欢迎填写"。现在,在执行操作之后,它将搜索URL,在这个过程之后,它将在那里自己搜索特定的servlet。将执行维修操作。
1 | JSF: |
JSF有自己的UI,它的生命周期可以以六种方式执行,
1 2 3 4 5 6 | 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,对于这里的table,我们使用面板网格,并且有不同的面。
1 2 | Rich Faces Prime Faces. |
JSF是一个高级框架,它非常容易为项目实现基于模型-视图-控制器(MVC)的体系结构。与JSP相比,JSF的主要优点是可以根据条件在浏览器上轻松动态地呈现组件,并且可以轻松集成Ajax事件。
JSF应用程序的前端即XHTML文件是通过浏览器向用户显示的文件。这些XHTML文件在内部调用托管bean,例如编写实际应用程序逻辑的控制器。
控制器内部调用与数据库通信的各种服务(使用Hibernate或JPA API)。简而言之,这就是流动的发生方式。
JSF还与RichFaces结合使用,RichFaces是一个为Web应用程序提供丰富外观和感觉的框架。
jsf+richfaces+hibernate/jpa无疑是一种很好的学习技术!
JSP是MVC(模型视图控制器)的视图组件。控制器接受传入的请求并将其传递给模型,该模型可能是执行某些数据库访问的bean。然后,JSP使用HTML、CSS和JavaScript格式化输出,然后将输出发送回请求者。
JSP代表Java服务器页面……JSP不是servlet。JSP本身使用代码和HTML标记,您不需要单独生成HTML和servlet,JSP在Web应用程序中扮演着重要的角色。Servlet是一个Java类,它起到了使HTML页面从静态到动态的作用。
JSP也有内置的servlet代码,不需要任何外部编译,它可以直接运行。更改将在JSP中直接在浏览器中生效。
需要编译servlet(即它将具有特定的类创建)
JSF是MVC框架的视图组件
servlet是在Web容器内部执行的服务器端Java程序。servlet的主要目标是处理从客户机收到的请求。
Java服务器页面用于创建动态网页。介绍了JSP在一个文件中编写JavaPlus HTML代码,这在servlet程序中是不容易实现的。将JSP文件转换为Java servlet。
Java Server FACTS是一个简化了UI开发的MVC Web框架。