不完全翻译,结合谷歌,一定主观性,还可能有误,原始内容地址: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. 从外部访问 Template (模板)的控件、获取它的属性值

    DataTemplate 和 ControlTemplate 两个类均派生自 FrameWorkTemplate类.这个类有个 FindName方法 供我们查询内部控件.  ControlTempla ...

  2. class 中构造函数与析构函数

    import pymysql class My_sql(): def __init__(self, host, user, passwd, db, port=3306, charset='utf8') ...

  3. std::condition_variable(2)复习

    #include <iostream> // std::cout #include <thread> // std::thread, std::this_thread::yie ...

  4. (四)DIH导入结构化数据

    (四)DIH导入结构化数据 目前大多数的应用程序将数据存储在关系数据库(如oracle.sql server .mysql等).xml文件中.对这样的数据进行搜索是很常见的应用.所谓的DataImpo ...

  5. jQuery之map()和get() map().get().join意思

    jQuery下有个概念叫“类数组”,比如$( " li " ),当取到一个集合的时候,会有数组的一些属性,但是instancseof Array仍然是false.但是var a=$ ...

  6. 距离,margin padding ,width height 用法 ,记录

    margin:0 auto 表示什么意思 margin后面如果只有两个参数的话,第一个表示top和bottom,第二个表示left和right 因为0 auto,表示上下边界为0,左右则根据宽度自适应 ...

  7. 封装AFNetworking

    用了一下AFNetworking感觉比ASIHttprequest 真心好用一些,因为我还是个初学者吧,很多ASIHttprequest 的功能还没有用到,与ASIHttprequest 不用的是AF ...

  8. 基于java mail实现简单的QQ邮箱发送邮件

    刚学习到java邮件相关的知识,先写下这篇博客,方便以后翻阅学习. -----------------------------第一步 开启SMTP服务 在 QQ 邮箱里的 设置->账户里开启 S ...

  9. 【25】session练习

    #用登录练习session html1为首页,html2为登录页面 def session1(request): uname=request.session.get('myname','请登录') # ...

  10. MySQL事件的先后

    今天闲聊之时 提及MySQL事件的执行,发现一些自己之前没有注意的细节 如果在执行事件过程中,如果insert的存储过程发生意外 会如何 USE iot2; CREATE TABLE aaaa (ti ...