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,持续更新中……

与JSP的初次邂逅……的更多相关文章

  1. CMS3.0——初次邂逅express

    前言: 刚接手cms3.0的工作,似乎对一切都那么的不熟悉,于是在开始新需求之前,先做一个简单的登录系统. 项目目录: 1.使用webstroms建expreess项目,非常方便简单,建好的项目目录就 ...

  2. Java Web1

    Java Web应用的核心技术是Java Server Page和Servlet.此外,开发一个完整的Java Web应该涉及一下几种概念及技术. 1.Servlet组件       Servlet响 ...

  3. Java眼中的XML--文件读取--1 应用DOM方式解析XML

    初次邂逅XML: 需要解析的XML文件: 这里有两个book子节点. 1.如何进行XML文件解析前的准备工作,另外解析先获取book节点. 这个我后来看懂了: 这个Node的ELEMENT_NODE= ...

  4. Java眼中的XML--------文件读取

     XML 的初次邂逅 初次邂逅XML 如何进行XML文件解析前的准备工作 在Java程序中如何获取xml文件的内容 在Java程序中读取xml文件的过程也成为----解析xml文件 解析的目的:获取节 ...

  5. Java Web入门必知

    Java Web应用的核心技术是Java Server Page和Servlet.此外,开发一个完整的Java Web应该涉及一下几种概念及技术. 1.Servlet组件           Serv ...

  6. Java——关于static关键字的那些事总结

    前言: 先说说今天为啥要谈这个东西,虽然学Java已经有两年了,但是今天,本着温故而知新的态度,仔细的第三次翻看了<Head Firt Java>这本书,虽然这本书介绍的很多东西都特别基础 ...

  7. [转] C++ try catch() throw 异常处理

    原文地址 其它很多程序员一样,本书的主人公阿愚也是在初学C++时,在C++的sample代码中与异常处理的编程方法初次邂逅的,如下:   // Normal program statements  . ...

  8. 《Machine Learning in Action》—— 剖析支持向量机,单手狂撕线性SVM

    <Machine Learning in Action>-- 剖析支持向量机,单手狂撕线性SVM 前面在写NumPy文章的结尾处也有提到,本来是打算按照<机器学习实战 / Machi ...

  9. “知疫”疫情防控可视化平台——NABCD分析

    "知疫"疫情防控可视化平台 项目 内容 这个作业属于那个课程 2021春季学期软件工程(罗杰.任健) 这个作业的要求在哪里 初次邂逅,需求分析 1 NABCD分析 NEED 目前多 ...

随机推荐

  1. .NET Task揭秘(一)

    Task为.NET提供了基于任务的异步模式,它不是线程,它运行在线程池的线程上.本着开源的精神, 本文以解读基于.NET4.5 Task源码的方式来揭秘Task的实现原理.   Task的创建 Tas ...

  2. JSON帮助类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. 流行ORM产品优缺点分析--EntityFramework、NHibernate、PetaPoco

    什么是ORM? ORM的全称是Object Relational Mapping,即对象关系映射.它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操 ...

  4. cron表达式详解[转]

    Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth Month ...

  5. 基于CkEditor实现.net在线开发之路(3)常用From表单控件介绍与说明

    上一章已经简单介绍了CKEditor控件可以编写C#代码,然后可以通过ajax去调用,但是要在网页上面编写所有C#后台逻辑,肯定痛苦死了,不说实现复杂的逻辑,就算实现一个简单增删改查,都会让人头痛欲裂 ...

  6. 背水一战 Windows 10 (26) - XAML: x:DeferLoadStrategy, x:Null

    [源码下载] 背水一战 Windows 10 (26) - XAML: x:DeferLoadStrategy, x:Null 作者:webabcd 介绍背水一战 Windows 10 之 XAML ...

  7. float包裹性与破坏性及清除浮动几种方法

    1. “清除浮动” ??准确的描述应该是“清除浮动造成的影响”  学习视频录制推荐的教程<CSS深入理解之float浮动> 2.如何清除浮动造成的影响??? 栗子 块级div元素包含一个内 ...

  8. git mv 命令 移动或重命名

    最基本的代码: git mv file_old file_new 手册: NAME git-mv - Move or rename a file, a directory, or a symlink ...

  9. HTML5进阶段内联标签汇总(小篇)

    内联元素,与别人公用一行,但是设置宽高无效.其特点: ①和其他元素都在一行上: ②高,行高及外边距和内边距不可改变: ③宽度就是它的文字或图片的宽度,不可改变 ④内联元素只能容纳文本或者其他内联元素 ...

  10. iOS 多线程GCD简介

    一.简介 1.1 GCD (Grand Central Dispatch )是Apple开发的一个多核编程的解决方法. Grand 含义是“伟大的.宏大的”,Central含义“中央的”,Dispat ...