JSP笔记02——概述(译)

不完全翻译,结合谷歌,一定主观性,还可能有误,原始内容地址: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也能用于服务器端编程。

vs. Static HTML

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

时间: 2024-12-24 06:38:22

JSP笔记02——概述(译)的相关文章

【OpenGL 学习笔记02】宽点画线

我们要知道,有三种绘图操作是最基本的:清除窗口,绘制几何图形,绘制光栅化对象. 光栅化对象后面再解释. 1.清除窗口 比如我们可以同时清除颜色缓冲区和深度缓冲区 glClearColor (0.0, 0.0, 0.0, 0.0);//指定颜色缓冲区清除为黑色 glClearDepth(1.0);//指定深度缓冲区的清除值为1.0 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//指定要清除的缓冲区并清除 2.绘制几何图形 先要设置绘制颜色,

SWIFT学习笔记02

1.//下面的这些浮点字面量都等于十进制的12.1875: let decimalDouble = 12.1875 let exponentDouble = 1.21875e1 let hexadecimalDouble = 0xC.3p0//==12+3*(1/16) 2.//类型别名,用typealias关键字来定义类型别名 typealias AudioSample = UInt16 var maxAmplitudeFound = AudioSample.min 3.//元组 let ht

Blender学习笔记 | 02 | 操作

Shift 点击不同图层 同时显示多图层物件 z 切换 Solid / Wireframe 视图模式 点选物件后M 移动到图层选项 Ctrl + 鼠标左键拖动 自由全选物件 B 方形区域圈选物件 Tab Object / Edit Mode 切换 T 开 / 关 侧栏 Ctrl + Tab 编辑状态下切换编辑对象 E Extrude Region 推挤区域.以发现为轴线. X 删除物件菜单 Blender学习笔记 | 02 | 操作,布布扣,bubuko.com

学习笔记-性能测试-概述

性能测试的目的,什么是性能测试? 目的主要有四点:1评估系统能力,2寻找系统弱点(瓶颈),3系统调优,4验证系统可靠性,稳定性. 通俗的来说,性能测试的目的就是验证系统好不好用,就像功能测试验证系统是否可以用. 比较官方点的定义是: 是指在某个特定的硬件.软件.网络环境下通过自动化的测试工具模拟多种正常.峰值以及异常负载条件来对系统的各项性能指标进行测试. 性能测试的步骤? 设计测试方案 选择测试工具 搭建测试环境 设计测试场景 执行测试 分析测试结果 性能选择的标准? 达到客户的需求 新系统至

《构建之法》阅读笔记02

<架构之美>阅读笔记02 今天,我读了<架构之美>第三.四章,第三章主要讲伸缩性架构设计,书中说设计系统架构时,要确保系统在伸缩时的弹性,根据书中的介绍我对系统伸缩性的理解是每个网站在不同时期都会有不同的访问量,有时会很多,有时会较少,当较多的人访问你的系统时,你可能需要数量较多的设备来满足用户与系统的交互,但当访问的用户越来越少时,系统伸缩性如果不够好,很多设备就会被浪费,不能够与系统分离,这对于软件开发者是不可取的.Darkstar项目就是由Sun公司实验室承担的一个将在架构的

《用户故事与敏捷开发》阅读笔记02

 <用户故事与敏捷开发>阅读笔记02       这周读了<用户故事与敏捷开发>的第四至七章,第四章讲述的是如何搜集故事,也就是如何正确的去找到用户需求.作者明确指出"引用"和"捕捉"是不合用的.所谓"引用"和"捕捉",我想是通过用户对功能的表述,开发人员从中获取需求信息吧.如果是这种方法来获取需求,正如作者所说,用户不会知道所有的需求,所以只靠着这方法是远远不够的.对于故事编写的数量以及程度,作者认为

mongodb 学习笔记 02 -- CURD操作

mongodb 学习笔记 02 – CURD操作 CURD代表创建(Create).更新(Update).读取(Read)和删除(Delete)操作 创建库 直接 use 库名 然后创建collection 就可以创建库 创建collecion db.createCollection("collectionName") 隐式创建collection db.collectionName.insert({xxxxxx}) 删除collection db.collectionName.dro

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

loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行随着时间的推移,并不能完全达到同步.这个时候需要手工的方式让用户在同一时间点上进行操作来测试系统并发处理的能力,而集合点函数就能实现这个功能. 可通过将集合点插入到 Vuser 脚本来指定会合位置.在 Vuser 执行脚本并遇到集合点时,脚本将暂停执行,Vuser 将等待 Controller 或控

css通用小笔记02——浮动、清除(三个例子)

css中通常会用到浮动与清除,也是一个必须掌握的知识点,概念性的东西不多说,下面举几个例子,来说明它的用法:1.文字环绕效果  2.多个div并排显示 3.清除浮动(默认显示) 一.文字环绕效果: html代码如下: 1 <body> 2 3 <style type="text/css"> 4 #big img {float: left;padding: 10px;border: 1px solid red;} 5 #big span {font-size: 2