不完全翻译,结合谷歌,一定主观性,还可能有误,原始内容地址:https://www.tutorialspoint.com/jsp/jsp_overview.htm

主要内容如下:

  1. 什么是JSP?
  2. 为什么使用JSP?

什么是JSP?

JavaServer Pages (JSP)是一种用于开发支持动态内容的Web页面的技术.开发人员可以通过使用特殊的JSP标签在HTML页面中插入Java代码,这些标签大部分以<%开头,以%>结尾。

JSP事实上是一种Java servlet,旨在方便实现Java Web应用程序的用户界面。Web开发人员将JSP作为一种文本文件(.jsp),将HTML、XHTML代码、XML元素以及嵌入式JSP操作和命令(JSP actions and commands)相结合。

使用JSP,您可以通过网页表单收集用户的输入,从数据库或其他来源呈现记录,并动态创建网页。

JSP标签可以用于各种目的,例如从数据库检索信息或注册用户偏好,访问JavaBeans组件,在页面之间传递控制(control),以及在请求,页面之间共享信息。

【注释】registering user preferences???

Why Use JSP?

JavaServer Pages的用法通常和使用通用网关接口(CGI)实现的程序类似。但与CGI相比,JSP提供了几个优点。

【注释】Common Gateway Interface - Wikipedia 通用网关接口为web服务器执行程序提供了一种标准的协议。什么是协议呢?——协议就是一系列约定俗成的动作,那么web服务器执行程序有什么“约定的动作”呢?——接收响应,动态生成页面。使用通用网关接口(CGI)实现的程序通常被叫做CGI或者CGI脚本。

  • 性能明显更好,因为JSP允许在HTML页面中嵌入动态元素,而不是具有独立的CGI文件。

  • JSP始终在执行之前被编译,不像CGI/Perl需要服务器在每次请求页面时加载解释器和目标脚本。

  • JavaServer Pages构建在Java Servlets API之上,所以像Servlets一样,JSP还可以访问所有强大的Enterprise Java API,包括JDBC,JNDI,EJB,JAXP等。

  • JSP页面可以与处理业务逻辑的servlet,Java servlet模板引擎支持的模型结合使用。

最后,JSP是Java EE的一个组成部分,它是企业级应用程序的完整平台。这意味着JSP不论在最简单的应用程序,还是在最复杂的应用程序中都有一席之地。

JSP的优点

下表列出了使用JSP优于其他技术的其他优势 -

vs. Active Server Pages (ASP)

JSP的优势是双重的。首先,动态部分是用Java编写的,而不是Visual Basic或其他MS特定语言,所以它更强大,更易于使用。其次,它可以移植到其他操作系统和非Microsoft Web服务器。

vs. Pure Servlets

编写(和修改!)常规HTML比编写HTML的println语句更方便。

【注释】这一点应该是显然的。

vs. Server-Side Includes (SSI)

SSI仅仅用于简单的包含,而不是用于使用表单数据,数据库连接等的“真实”程序。

vs. JavaScript

JavaScript可以在客户端上动态生成HTML,但几乎不能与Web服务器进行交互,以执行复杂的任务,如数据库访问和图像处理等。

【注释】Node.js的出现使JavaScript也能用于服务器端编程。JSP 在走向衰落吗?以后是 HTML5、JavaScript 和 CSS 的天下吗?

vs. Static HTML

常规HTML不能包含动态信息!

JSP笔记02——概述(转)的更多相关文章

  1. Redis:学习笔记-02

    Redis:学习笔记-02 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 4. 事物 Redis 事务本 ...

  2. 软件测试之loadrunner学习笔记-02集合点

    loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行 ...

  3. 《30天自制操作系统》笔记(02)——导入C语言

    <30天自制操作系统>笔记(02)——导入C语言 进度回顾 在上一篇,记录了计算机开机时加载IPL程序(initial program loader,一个nas汇编程序)的情况,包括IPL ...

  4. 《The Linux Command Line》 读书笔记02 关于命令的命令

    <The Linux Command Line> 读书笔记02 关于命令的命令 命令的四种类型 type type—Indicate how a command name is inter ...

  5. jsp动作标签概述

    *Jsp动作标签概述: >动作标签的作用是用来简化java脚本 >jsp动作标签是JavaWeb内置的动作标签,它们是已经定义好的动作标签,我们可以拿来直接使用. >JavaWeb一 ...

  6. 强化学习读书笔记 - 02 - 多臂老O虎O机问题

    # 强化学习读书笔记 - 02 - 多臂老O虎O机问题 学习笔记: [Reinforcement Learning: An Introduction, Richard S. Sutton and An ...

  7. JS自学笔记02

    JS自学笔记02 1.复习 js是一门解释性语言,遇到一行代码就执行一行代码 2.查阅mdn web文档 3.提示用户输入并接收,相比之下,alert只有提示的作用: prompt(字符串) 接收: ...

  8. 机器学习实战(Machine Learning in Action)学习笔记————02.k-邻近算法(KNN)

    机器学习实战(Machine Learning in Action)学习笔记————02.k-邻近算法(KNN) 关键字:邻近算法(kNN: k Nearest Neighbors).python.源 ...

  9. CS229 笔记02

    CS229 笔记02 公式推导 $ {\text {For simplicity, Let }} A, B, C \in {\Bbb {R}}^{n \times n}. $ ​ $ {\bf {\t ...

随机推荐

  1. Erlang 和 Elixir 互相调用 (转)

    lixr设计目标之一就是要确保兼容性,可以兼容Erlang和其生态系统.Elixir和Erlang 都是运行同样的虚拟机平台(Erlang Virtual Machine).不管是在Erlang使用E ...

  2. Servlet 点击计数器

    网页点击计数器 很多时候,您可能有兴趣知道网站的某个特定页面上的总点击量.使用 Servlet 来计算这些点击量是非常简单的,因为一个 Servlet 的生命周期是由它运行所在的容器控制的. 以下是实 ...

  3. GoogleMap-------manifest文件配置

    前言:在使用GoopleMap之前需要配置manifest文件 1.这个可有可无,com.xhm.meishi是项目的包名 <!-- 声明调用这个应用需要的权限 --> <permi ...

  4. Laravel5.1 模型--ModelFactory

    今天要说的是模型工厂,它是可以快速生成一些测试数据的东西,之前我们介绍过Seeder,当我们使用模型访问数据时 可以用模型工厂搭配Seeder使用. 1 编写一个ModelFactory ModelF ...

  5. JEECMS 2.4.2 之添加新的可扩展的ftl模版文件、自定义方法

    Demo: <@cms.CfgList isPage='1' league='0' recommend='0' lala='0' hot='1' memberId='0' pageNo=page ...

  6. hibernate 懒加载图解

  7. 深入理解line

    什么是行间距? 古时候我们使用印刷机来出来文字.印刷出来的每个字,都位于独立的一个块中. 行间距,即传说中控制两行文字垂直距离的东东.在CSS中,line-height被用来控制行与行之间垂直距离. ...

  8. Docker学习(2Docker基本命令 )

    1.首先我们需要明确在docker中需要了解的一些基础知识 Docker虚拟化有三个概念需要理解,分别镜像.容器.仓库. 1) 镜像:docker的镜像其实就是模板,跟我们常见的ISO镜像类似,是一个 ...

  9. 【BZOJ2506】calc 分段+vector+莫队

    [BZOJ2506]calc Description          给一个长度为n的非负整数序列A1,A2,…,An.现有m个询问,每次询问给出l,r,p,k,问满足l<=i<=r且A ...

  10. 什么是 C++ 11 原始字符串?

    std::string path = "C:\\VulkanSDK";//需要转义 std::string path = R"(C:\VulkanSDK)";/ ...