我有一些问题。这些是:

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


当前回答

在某些情况下,您可以倾向于JSP而不是JSF。应用性质应是选择技术的决定因素。

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

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

其他回答

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

JSP技术是Java的一部分技术家族。JSP页面是编译成servlet并可以调用JavaBeans组件(bean)或企业JavaBeans组件(企业bean)执行服务器上的处理。因此,JSP技术是高度可扩展的体系结构基于web的应用程序。

看见https://jcp.org/en/introduction/faq

A: JavaServer Faces技术是一种构建用户界面的框架用于web应用程序。JavaServer面技术包括:一组API用于:表示UI组件并管理其状态,处理事件和输入验证,定义页面导航,以及支持国际化和可访问性。JavaServerPages(JSP)自定义标记用于表示JavaServer的库JSP页面中的Faces接口。

JSP是一种专门的servlet。

JSF是一组可以与JSP一起使用的标记。

从浏览器/客户端角度

JSP和JSF看起来都是一样的,根据应用程序需求,JSP更适合于基于请求-响应的应用程序。

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

从服务器角度

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

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

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

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

控制器内部调用与数据库通信的各种服务(使用Hibernate或JPA API)。简而言之,流动就是这样发生的。

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

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

JSP:means HTML+Java Code:

JSP有自己的生命周期jsp_init()jsp_service()jsp销毁

在第一次请求之后,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和这里的table,我们使用面板网格,这是不同的面。

Rich Faces
Prime Faces.

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