关于java:JSF,Servlet和JSP有什么区别?

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容器会将其编译为扩展HttpServlet的类,并在Web应用的生存期内使用它。您可以在服务器的工作目录中找到生成的源代码。例如,在Tomcat中,它是/work目录。在JSP请求中,servlet容器将执行编译后的JSP类,并通过网络将生成的输出(通常仅为html/css/js)通过Web服务器发送到客户端,然后客户端将其显示在Web浏览器中。

小服务

Servlet是在服务器机器上运行的Java应用程序编程接口(API),它拦截客户机发出的请求并生成/发送响应。一个众所周知的例子是HttpServlet,它提供了使用流行的HTTP方法(如GETPOST钩住HTTP请求的方法。您可以配置EDCOX1×0的S来侦听某个HTTP URL模式,该模式在EDCOX1、6、或最近使用Java EE 6、EDCOX1和7注释的情况下是可配置的。

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

JSF(JavaServer面)

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提供了FacesServlet作为唯一的请求-响应控制器。它需要您手上的所有标准和冗长的HTTP请求/响应工作,例如收集用户输入、验证/转换它们、将它们放入模型对象、调用操作和呈现响应。这样,您最终得到的基本上是一个JSP或Facelets(XHTML)页面作为视图,一个JavaBean类作为模型。JSF组件用于将视图与模型绑定(例如您的ASP.NET Web控件),FacesServlet使用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中出现的不同问题。

下面是一个表格,它比较了屏幕和面板的功能:

enter image description here来源


Servlet和JSP之间的基本区别是,在servlet中,我们编写Java代码,在其中嵌入HTML代码,而JSP正好相反。在JSP中,我们编写HTML代码,使用JSP提供的标签嵌入Java代码。


1
JSP:means HTML+Java Code:

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框架。