JSP是可以内嵌在网页中,由服务器端来执行与解释的程序,是一种动态网页技术标准。

  在传统的HTML文件(*.htm或*.html)中加入Java程序片段和JSP标记,就构成了JSP网页(*.jsp)。

  一、JSP和客户端的交互是通过HTTP协议实现的,一般情况下,JSP的执行过程大致由如下几步构成:

  (1)客户端发出Request(请求)。

  (2)JSP Container 将JSP转译成 Servlet 的源代码。

  (3)将产生的 Servlet 的源代码经过编译后,加载到内存执行。

  (4)把结果 Response (响应)至客户端。

  二、JSP页面的组成元素

  JSP(Java Server Pages),使用“<%”和 "%>"作为程序的区段范围的标记符号。

表1 JSP指令元素和脚本元素主要类型
JSP指令元素和脚本元素 说明
编译器指令:<%@ 编译器指令%> 描述页面的基本信息
声明:<%! 声明 %> 插入到Servlet 类中,但置于所存在的方法之外
表达式:<%= 表达式 %> 包含变量或常量,当页面被请求时,会被计算,用来赋值和插入输出
程序代码:<% 程序代码 %> 包含一个代码片段,当页面被请求时会被执行,插入到Servlet的service方法中
注释:<%-- 注释 --%> 允许内嵌文档注释

 

  1.编译器指令

  1)page指令

  主要功能是设定整个JSP网页的属性和相关功能。

  基本语法如下:

  <%@ page attribute1=”value1” attribute2="value2" ...%>

表2page指令的属性
属性 说明
language="scriptingLanguage" 指定JSP Container 要用什么语言来编译JSP网页,默认值为Java
extends="className" 指定此JSP网页产生的Servlet是继承哪个父类
import="importList" 指定此JSP网页可以使用哪些Java API
session="true|false" 指定此JSP网页是否可以使用session对象,默认值为true
buffer="none|size in kb" 指定输出流是否有缓冲区,默认值为8KB的缓冲区
autoFlash="true|false" 指定输出流的缓冲区是否要自动清除,默认值为true
isThreadSafe="true|false" 用于告诉JSP Container 此JSP网页是否能处理超过一个以上的请求,默认值为true
info="text" 表示此JSP网页的相关信息
errorPage="error_url" 表示如果发生异常错误,网页会被重新指向的URL
isErrorPage="true|false" 表示此JSP网页是否为处理异常错误的网页
contentType="ctinfo" 表示MIME类型和JSP网页的编码方式
pageEncoding="ctinfo" 表示JSP网页的编码方式

 

 

  2)include指令

  主要功能是在JSP编译时插入一个包含文本或代码的文件。包含的文件可以是JSP网页、HTML网页、文本文件或一段Java程序。

  基本语法如下:

  <%@ include file = "relativeURLspec" %>

  relativeURLspec表示此file的路径。

  3)taglib指令

  主要功能是用户自定义新的标签。

  基本语法如下:

  <%@ taglib uri = "tagLibraryURI" prefix="tagPrefix" %>

  其中uri ="tagLibraryURI" 用于说明tagLibrary的存放位置,而prefix="tagPrefix"表示自定义标签的标识符,主要用来区分多个自定义标签。

  2.声明

  声明合法的变量和方法。以<%! 为起始,以%> 为结尾,语法如下:

   <%! delaration; [delaration;] + ... %>

  例如: <%! int a,b,c; %>

  注意!!!

  (1)每一个声明仅在一个页面中有效,如果需要每个页面都用到一些声明,最好写成一个单独的JSP网页,然后用<%@include %>等元素包含进来。

  (2)用<%!  %>声明的为全局变量。

  3.表达式

  基本语法如下:

   <%= expression %>

  这个表达式元素能够包含任何Java语法,有时候也作为其他JSP元素的属性值。表达式在执行后会被自动转化为字符串,然后被直接包括在输出页面之内显示出来。

  4.程序代码

  通常主要的程序就是写在这里啦!

  基本语法如下:

   <% code fragment %>

  包括多个语句、方法、变量、表达式。

  5.注释

  客户端显示的注释: <!--comment [<%=expression %>] -->

  开发程序员专用的注释: <%-- comment --> 或 </** this is a comment **/>

  开发程序员专用的注释在客户端浏览器上看不出来,并且在JSP编译时会被忽略。通常程序员可以用它来调试(Debug)程序。

  学习ing,持续更新中……

转载于:https://www.cnblogs.com/JennyZhang-sharing/p/4419992.html

与JSP的初次邂逅……相关推荐

  1. vue 多选自动触发_Vue,初次邂逅(二)

    一.前言 二.Vue常用指令 2.1 什么是指令? 指令 (Directives) 是带有 v- 前缀的特殊特性.指令特性的预期值是:单个 JavaScript 表达式.指令的职责是,当表达式的值改变 ...

  2. 深度学习炼丹术 —— 与神经网络的初次邂逅:熟悉基本结构、设计和实现

    在正式介绍神经网络之前,我们先对上篇文章中的感知器内容做个简短的回顾: 我们首先介绍了什么是感知器,直观上看到了感知器的基本结构以及能做些什么.其次,通过感知器详细讲解了与门的实现原理,并通过数学公式 ...

  3. JSP 编译原理:JSP 是 Servlet?如何用 Eclipse 查看 JSP 编译生成的 Servlet 源文件?

    文章目录 前言 一.JSP 文件编译流程原理 二.创建并运行待测试 JSP 页面 三.查找 JSP 编译文件输出位置 3.1.打开动态项目运行配置 3.2.查看 JSP 编译文件输出位置 3.3.查看 ...

  4. java毕业设计——基于java+JSP+sqlserver的Smart系统-题库及试卷管理模块设计与实现(毕业论文+程序源码)——学生信息管理系统模板2

    基于java+JSP+sqlserver的Smart系统-题库及试卷管理模块设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+JSP+sqlserver的Smart系统-题库及试卷 ...

  5. 【笔记-java】java工程师-入门必学

    路径 目录 子目录 重点 课程名 备注 java工程师 入门必学 语法基础 环境搭建.开发工具使用.基础语法 java入门第一季 面向对象 继承.封装.多态 java入门第二季 常用工具类 异常.字符 ...

  6. Gut:人体最初的微生物起源与生殖健康

    宏基因组按:上个月我们报导了赵方庆团队近期发表在Gut (IF = 16.658) 杂志上关于 <妊娠期糖尿病与孕妇及其新生儿微生物菌群失调有关>的研究.6月24日参加中科院微生物所王军研 ...

  7. 一作解读Gut:人体最初的微生物起源与生殖健康

    本文同步"宏基因组"公众号,作者为文章第一作者王金锋博士. 宏基因组按:上个月我们发布了赵方庆团队近期发表在Gut (IF = 16.658) 杂志上关于 <妊娠期糖尿病与孕 ...

  8. 2011让人蛋疼的签名

    1: 太阳升起的瞬间 对于昨天来说 就已是永远 2:我不是坏人,如果伤害到你,对不起,借过 3:穿着西服我是良好市民,但甩掉领带,我一样可以做B社会,人动我手,我拿他命!! 4:其实,我们都还是孩子, ...

  9. 数据分析-R语言资料整理

    独家分享--48页PPT解密数据可视化! Excel图表快捷操作小技巧 基于随机森林的分类与回归 R语言制作网页 ggplot2:可视化设计师的神器,了解一下 [译]R包介绍:Online Rando ...

最新文章

  1. php 多人游戏_「谁会是下一个王者农药」云服务器如何搭建游戏服务器?
  2. 卷积核的数量是不是越多越好?-分类0,5
  3. MySql学习19-----用户管理
  4. javascript篇-知道value值,返回对象中的key值
  5. Linux 适用硬件平台/系统架构(i386 / i586 / i686 / x86 / x86_64)名词理解和区别
  6. axios异步请求数据的简单使用
  7. 算法训练和模型部署如何避免多次重写数据预处理代码
  8. 算法不归路之最大子序列(C++版)
  9. 安川机器人如何注释化指令_安川机器人 命令介绍 内部版
  10. 经典常用判断字符串是否有值
  11. spyder替换_Spyder快捷键
  12. 如何在word中找到标准偏差σ、α、β、δ等数学公式符号和物理公式符号
  13. Fiddler - IOS 开启证书(描述文件与设备管理 / 证书信任设置)
  14. python实现英文新闻摘要自动提取_自然语言处理之自动摘要
  15. 第一篇:零基础入门金融风控之风控指标体系清单
  16. python自定义标识符的使用区分大小写吗_Python中的标识符是不区分大小写的
  17. 百度搜索引擎对站长越来越嚣张,已经放弃做什么百度优化咯
  18. win10专业版使用vmware安装虚拟机时“出现此主机支持Intel VT-x,但Intel VT-x处于禁用状态”。
  19. NLP预训练模型综述
  20. 纯干货,linux内存管理——内存管理架构(建议收藏)

热门文章

  1. /etc/services
  2. web 网页截取图片
  3. Copy List with Random Pointer
  4. C#中Bitmap类实现对图像操作的一些方法(转)
  5. c# 从一个大图里截取图形
  6. C#中容器控件GroupBox、Panel、TabControl
  7. 超级马里奥游戏像素素材_《超级马里奥3D世界+库巴之怒》游戏文件尺寸相当小...
  8. 信息收集——DNS域名系统
  9. mysql 事务 for update_mysql事务,select for update,及数据的一致性处理
  10. python脚本根据cookies自动登录网站_Python爬虫如何使用Cookies登录网站