第2讲JSP语法
脚本段 <%
声明 <%! 表达式 <%=
%>
%> >
脚本段
在<% %>中可以定义变量、编写语句 范例 编写数字累加的操作,从1~100累加
声明
可以直接在<%! %>中定义变量和方法, 该变量为全局变量,相当于Java类变量, 静态变量,在当前JSP页面中有效。
在脚本段中可以声明本地变量,在后面的 脚本段中可以使用该变量
动作元素
JSP2.0规范定义了一些标准的动作。标 准动作时一些标签,它们影响JSP运行时 的行为和客户端请求的响应,这些动作由 JSP容器来实现。 从效果上来说,一个标准动作是嵌入到 JSP页面中的一个标签,在页面被转换为 Servlet期间,当JSP容器遇到这个标签, 就用预定义的对应于该标签的Java代码来 代替它。语法是基于XML的。
<jsp:forward>
跳转指令,当执行到此指令的时候,程序会无 条件立刻跳转,并终止当前页面的执行。 语法一: <jsp:forward page=“页面”/> 语法二: <jsp:forward page=“页面”> <jsp:param name=“参数名 称”value=“值”/> …… </jsp:forward> 属于服务器跳转
<jsp:include>
这个动作元素用于在当前页面中包含静态 和动态的资源,一旦被包含的页面执行完 毕,请求处理将在调用页面继续进行。 如果被包含的页面时JSP,则先处理之后再 将结果包含,而如果包含的是非*.jsp文件, 则只是把文件内容静态包含进来,功能与 @include类似 语法一: <jsp:include page=“页面”/> 语法二: <jsp:include page=“页面”> <jsp:param name=“参数名 称”value=“值”/>
第2单元JSP基本语法
主要内容: 1、JSP页面的注释 2、JSP的脚本元素 3、JSP的指令元素 4、JSP的动作元素
简介
JSP页面--在HTML元素中嵌入Java脚本 代码和JSP标记。
第一次执行jsp文件时,需转换为 .java文 件,经过编译之后,形成 .class文件,最 终服务器执行.class文件;第二次执行时 不需要转换和编译过程,直接执行。
include指令
include指令用于在JSP页面中静态包含一 个文件,该文件可以是JSP页面、HTML 网页、文本文件或一段Java代码。使用了 include指令的JSP页面在转换时,JSP容 器会在其中插入所包含的文本或代码。 <%@ include file=“relativeURLspec” %>
ห้องสมุดไป่ตู้
指令元素
指令元素主要用于为转换阶段提供整个JSP页 面的相关信息,指令不会产生任何的输出到当 前的输出流中,只是告诉容器如何处理其JSP 页面。
<%@
%>
page指令
page指令作用于整个JSP页面,定义了许 多与页面相关的属性,这些属性将用于和 JSP容器通信。 语法 <%@ page attr1=“value1” attr2=“value”…%>
JSP页面四部分
JSP指令元素 JSP脚本元素:在JSP页面中插入的Java代码 JSP动作元素 注释
JSP中的注释
显式注释
直接使用HTML风格的注释:<!-- -->
隐式注释
直接使用JAVA的注释:// 、 /* .. */ JSP自己的注释:<%---%>
脚本元素
表达式输出
等效于JSP预定义的对象out的print()方法
可以使用<%=表达式%>形式输出一个变 量或一个具体的内容 表达式是Java语言中完整的表达式,在请 求处理时计算这些表达式,计算的结果将 会转换为字符串,插入到当前的输出流中。 out.println与<%=%>的功能一样,哪一种 好呢?
第2章 JSP语法
五、Java控制结构
• 顺序结构 • 选择结构 • 循环结构
顺序结构
• 按设计时所确定的次序,一个一个语句的顺序执行 • 一般程序主体采用顺序结构,其中嵌套选择和循环结构。
选择结构控制
单选if、 双选if„else、 多选switch
if语句
if (条件表达式) 语句
条件?
True
例:
String x="男",s=""; if(x=="男") s="不能进入";
实践环节: 上机实战,验证结果
• 例3:利用Switch语句编程实现分数和等级的对应 • 0~59:E 60~70:D 70~80:C • 80~90:B 90~100:A
实践环节: 编写网页 exa2_14.jsp:表单页面,输入学生的成绩 exa2_15.jsp:根据成绩值显示成绩的等级
二、循环结构控制
知识点介绍
• 乱码问题: • ex9.jsp页面获取的信息可能是乱码(由很多?组 成),此时必须对含有汉子的字符进行特殊的处 理。
• 解决方案:在获取表单信息之前设置统一编码 • request.setCharacterEncoding("GBK");
• 例1写出程序 • • y= •
-1 0 1
案例
例1: int x=6, y=10, k=5; switch( x%y ) { case 0: k=x*y; break; case 6: k=x/y; break; case 12: k=x-y; break; default: k=x*y-x; break; } 例2: char ch='A'; int r=6; switch( ch+5 ) { case 'A': r=r+3; break; case 'B': r=r+5; break; case 'C': r-=6; break; default : } r/=2;
JSP技术方法及语法
出处:《Thinking in Java》William GibsonJSP的技术方法为了快速方便地进行动态网站的开发,JSP在以下几个方面做了改进,使其成为快速建立跨平台的动态网站的首选方案。
1.将内容的生成和显示进行分离用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等)。
生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。
由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。
在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。
这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。
2.可重用组件绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者Enterprise JavaBeans 组件)来执行应用程序所要求的复杂的处理。
开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。
基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
3.采用标识Web页面开发人员不会都是熟悉脚本语言的编程人员。
JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。
标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。
4.适应平台几乎所有平台都支持Java,JSP+JavaBeans几乎可以在所有平台下通行无阻。
js使用手册
js使用手册JavaScript(简称JS)是一种脚本语言,用于在网页上实现交互效果和动态内容。
它是目前使用最广泛的编程语言之一,因为它可以用于开发网页应用、游戏、桌面应用等各种类型的程序。
本文将为你提供一份简明的JavaScript使用手册,介绍了JavaScript的基本语法、数据类型、函数、控制流和常见的操作等内容。
一、基本语法:1.注释:可以使用双斜杠(//)进行单行注释,或使用斜杠和星号(/*...*/)进行多行注释。
2.变量和常量:使用var关键字声明变量,使用const关键字声明常量。
JavaScript使用弱类型,所以变量可以在不同的数据类型之间进行转换。
3.数据类型:JavaScript包含了多种数据类型,包括数字、字符串、布尔值、数组、对象等。
可以使用typeof操作符来检查变量的数据类型。
4.运算符:JavaScript支持常见的算术运算符(例如+、-、*、/)和逻辑运算符(例如&&、||、!),以及比较运算符(例如==、>、<)。
5.字符串操作:可以使用+运算符来连接字符串,也可以使用字符串模板(`${...}`)来创建格式化的字符串。
二、数据类型:1.数字类型:JavaScript中的数字包括整数和浮点数。
可以进行基本的算术运算,也可以使用内置的Math对象来进行高级的数学计算。
2.字符串类型:JavaScript中的字符串以单引号('...')或双引号("...")括起来。
可以使用一系列内置的字符串方法来操作和处理字符串。
3.布尔类型:JavaScript中的布尔类型只有两个值,true和false。
可以通过逻辑运算符和比较运算符来进行布尔运算。
4.数组类型:JavaScript中的数组可以存储多个值,并根据索引进行访问。
可以使用一系列内置的数组方法来操作和处理数组。
5.对象类型:JavaScript中的对象是一种复合数据类型,可以存储键值对。
JSP基本语法
JSP脚本JSP通用语法规则JSP通用语法规则包括:JSP的标记规则、JSP元素中的相对路径规则、JSP元素中的转义规则。
JSP的标记规则每一个JSP元素都有一个起始标记和一个结束标记。
起始标记为“<%”或“<jsp:”,结束标记为“%>”或“/>”。
比如:<jsp:include page=”/index.jsp”/><%if(sum>0) sum=sum+42;%>注起始标记和结束标记一定要在同一个JSP页面中,且成对出现JSP元素中的相对路径规则在JSP中可以使用相对路径,相对路径是以字符“/“开头的。
比如:/test/testChinese.jsp——说的实际路径是“C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\test\testChinese.jsp “JSP元素中的转义规则我们已经知道,“<%”和“%>”是JSP中的标记字符,那么如果我们想在程序中用到这两个字符,该怎么区分呢?这就要用到转移规则了。
这里的转义规则包括:“’”被转义为“\’”“””被转义为“\””“\”被转义为“\\”“<%”被转义为“<\%”“%>”被转义为“%\>”下面我们通过一个小例子来看看。
其显示结果如图2-2所示。
图2-2 JSP转义规则示例上面显示结果,可以看到,本来是JSP标记语言的字符,也都显示出来了,实现这样功能的程序代码是怎么样的呢?02-02.jsp文件源代码:<html><head><title>JSP转义规则的例子</title></head><%@page contentType="text/html;charset=gb2312" %><body><p><%out.print("测试要避免冲突的字符串1:\'");%><p><%out.print("测试要避免冲突的字符串2:\"");%><p><%out.print("测试要避免冲突的字符串3:\\");%><p><%out.print("测试要避免冲突的字符串4:%\>");%></p></body></html>JSP脚本元素语法讲了语法规则以后,我们来看看脚本元素,JSP中的脚本元素有四种:注释、声明、表达式和程序段。
《JSP教程JSP语法》课件
JSP优点
• 简单易学,与HTML结合紧密 • 快速开发,可重用的组件 • 强大的数据处理能力 • 利用Java生态系统,拥有丰富的类库
JSP语法基础
• JSP文件结构 • 标记和指令 • 变量声明和赋值 • 表达式和脚本片段
JSP注释
JSP注释用于向开发者提供有关代码的说明和解释,增加代码可读性和维护性。
JSP的安全性问题
介绍JSP开发中的常见安全问题,并提供相应的防范措施,确保网页的安全性。
输出文本
使用JSP可以将文本内容输出到客户端浏览器上,实现动态网页的生成。
输出HTML标记
除了输出纯文本,JSP还可以输出HTML标记,使网页更加丰富和交互。
声明变量
在JSP中,可以声明和使用变量,方便存储和操作数据。
引入JAVA类
JSP可以通过引入Java类的方式,使用Java的功能和类库,增强网页的处理能力。
条件语句
使用条件语句,可以根据条件判断执行不同的代码块,实现网页的不同展示效果。
ห้องสมุดไป่ตู้
循环语句
循环语句可以重复执行特定的代码块,适用于展示数据列表、遍历集合等场景。
跳转语句
通过跳转语句,可以实现页面间的跳转和传递数据,提供更好的用户体验。
JSP表达式
JSP表达式可以在网页中嵌入动态的Java代码和变量,实现动态的数据展示和计算。
JSP脚本片段
通过JSP脚本片段,可以编写更复杂的Java代码,实现业务逻辑和数据处理。
JSP内置对象
JSP提供了一些内置的对象,如request、response、session等,方便在网页中访问和操作数据。
JSP中的EL表达式
EL(Expression Language)是一种用于简化表达式和变量操作的语法,提高JSP代码的可读性。
js入门基础教程
js入门基础教程JavaScript(简称JS)是一种轻量级的脚本语言,广泛应用于Web开发中。
它可以与HTML和CSS一起使用,通过在网页中嵌入js代码,使页面具有更多的交互性和动态效果。
本文将为大家介绍Javascript的入门基础知识。
1. JavaScript的历史JavaScript是在1995年由网景公司的布兰登·艾奇(BrendanEich)设计和开发的。
最初的目的是作为网页脚本语言,用来实现网页的动态效果和交互功能。
之后,它逐渐发展成一个独立的编程语言,可用于服务器端开发、桌面应用开发和移动应用开发等众多领域。
2. JavaScript的语法JavaScript的语法与Java语言类似,但它并不是Java的简化版。
它是一种解释性语言,不需要经过编译,而是由浏览器直接解释执行。
JavaScript的语法包括变量的声明、条件语句、循环语句、函数的定义等基本元素。
下面是一个简单的JavaScript程序示例:```javascript// 声明一个变量var message = "Hello, world!";// 输出变量的值console.log(message);```3. 数据类型JavaScript支持多种数据类型,包括字符串、数值、布尔值、数组、对象等。
其中,字符串用于表示文本,数值用于表示数字,布尔值用于表示真假值。
数组用于存储一组有序的值,对象用于存储键值对。
JavaScript还具有动态类型的特性,即同一个变量可以在不同的上下文中表示不同的数据类型。
4. 控制流程JavaScript中的控制流程包括条件语句和循环语句。
条件语句用于根据不同的条件执行不同的代码块,包括if语句和switch 语句。
循环语句用于重复执行一段代码,包括while循环、do-while循环和for循环。
5. 函数在JavaScript中,函数是一段可重复使用的代码块,用于实现特定的功能。
2JSP的基础语法PPT课件
本章将详细介绍什么是JSP,JSP具有哪些特点。还将介绍 JSP的运行机制以及JSP的脚本元素。通过本讲的学习,应该能够 完成如下几个目标。 • 了解JSP的基本特点。 • 理解JSP的运行机制 • 熟练使用JSP声明语句 • 熟练使用JSP Scriptlets • 熟练使用JSP表达式
04
</head>
05
<body>
06
<%
07
String str = "Hello"; //声明字符串str
08
%>
09
<%= str%>
10
</body>
11
</html>
2.4 注释
JSP的注释分为两类,一类为可以在客户端显示的注释,即HTML注释;一 类是不能在客户端显示的注释,即JSP注释。
<html>
02
<head>
03
<title>JavaScriptletsDemo</title>
04
</head>
05
<body>
06
<%
07
String str = "Java Scriptlets Demo"; //声明字符串str
08
out.println(str); //输出字符串str
09
HTML注释使用<!--作为开始,以-->作为结束,中间包含的代码即为注释部 分。
JSP注释使用<%- -作为开始,以--%>作为结束,中间包含的代码即为注释 部分。
第2章 JSP语法基础 2.3 JSP指令元素、2.4 JSP动作元素
第2章 JSP语法基础
2.3 JSP指令元素 2.4 JSP动作元素
JSP开发案例教程
本章内容
01 脚本元素 03 JSP指令元素
02 案例ch2.2_datetime: 时间格式化
04 JSP动作元素
05 案例ch2.5_include: 框架类型网页
06 小结与练习
2.3 JSP指令元素
指定在当前页
4
session
中是否允许 10 isThreadSafe 指定是否线程安全
session操作
5
buffer
指定处理页面 输出内容时的 11 缓冲区大小
autoFlush
是定当缓冲区满时是 否自动清空
指定当前页面
说明当前页面是否为
6
errorPage 运行异常时调 12 isErrorPage 其他页面的异常处理
该JSP动作表示获取或创建一个名称为guess的、属于类com.GuessNumber的、生命周期 为session的对象,详见本书案例ch5.4_guessNumber(猜数游戏)。
JSP开发案例教程
所有的动作元素需要两个属性:
id属性
id属性是动作元素的唯一标识,可以在 JSP页面中被引用。动作元素创建的id值 可以通过PageContext来调用。
可以使用绝对或相对URL。 ✓ tagDir属性指示前缀将被用于标识在WEB-INF/tags目录下的标签文件。
2.4 JSP动作元素
JSP开发案例教程
2.4 JSP动作元素
JSP动作元素
➢ JSP动作利用XML语法格式的标记,来控制JSP容器Servlet引擎的行为。 ➢ 利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件
实验三 JSP基本语法
《Java Web开发》实验三JSP基本语法学号:___________________ 姓名:____________________实验目的:1,熟悉和理解MyEclipse下的创建JSP的方法及模板的基本内容2,掌握JSP程序段、JSP表达式、JSP声明等基本JSP元素及其综合应用3,熟悉常见JSP错误的修改方法及调试JSP的方法实验内容和步骤:1,在配置好Tomcat基础上(假设解压在d:\tomcat6.x下),MyEclipse中创建Web Project,项目名为project3,并部署(也称为发布,Deploy)该Web项目,并打开浏览器测试该项目。
然后按照如下Step 1-1到1-4的要求创建JSP。
Step 1-1,在WebRoot下创建一个jiecheng1.jsp,显示10的阶乘的运算结果。
提示:1)用JSP程序段(JSP Scriptlet)即可,用out.print()方法来显示Step 1-2,在WebRoot下创建一个jiecheng2.jsp,显示10行,分别显示从1到10的阶乘的运算结果。
提示:1)用JSP程序段(JSP Scriptlet)来运算,用JSP表达式(JSP Expression)来显示。
Step 1-3,在WebRoot下创建一个jiecheng3.jsp,显示10行,用随机的不同颜色显示从1到10的阶乘的运算结果。
提示:1)实现不同颜色,可以用JSP声明(JSP Declaration)中编写自定义方法。
2)实现随机颜色,可以用JDK提供的Math.random()方法结合HTML标记<font color=”rgb(xxx,xxx,xxx)”>来创建。
Step 1-4,在WebRoot下创建jiecheng4.jsp,用表格显示1到10的阶乘的运算结果。
提示:1)混合使用JSP程序段、JSP表达式、HTML标记。
2,在src下创建一个类Student.java,它具有姓名、性别、年龄、班级等不同的成员变量,例如:package model.student;public class Student {String name; // 姓名boolean sex; // 性别,true表示男,false表示女int age; // 年龄String className; // 班级public Student { } // 默认无参构造函数public Student(String name, boolean sex,int age, String className) { // 有参构造函数 = name;this.sex = sex;this.age = age;this.className = className;}}6, 在WebRoot下创建studentList.jsp,用程序段创建5个上述学生类型的个人信息,并用表格显示出来。
Jsp详解
Jsp详解1.简介2.Jsp的运行原理3.Jsp的语法1.Jsp模板元素2.Jsp中的脚本表达式3.Jsp中的脚本片段4.Jsp的声明5.Jsp注释6.Jsp指令1.首先我们来看一下page指令的用法2.下面在来看一下include指令3.最后来看一下taglib指令7.Jsp中内置的9个隐式对象8.JSP标签库1.jspinclude标签2.jspforward标签3.jspparam或者jspparams标签4.jspuseBean标签jspsetProperty标签jspgetProperty标签9.Jsp中怎么排查错误简介:JSP全称是JavaServer Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。
JSP这门技术的最大的特点在于,写jsp就像在写html,但:它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。
相比servlet而言,servlet很难对数据进行排版,而jsp除了可以用java代码产生动态数据的同时,也很容易对数据进行排版。
不管是JSP还是Servlet,虽然都可以用于开发动态web资源。
但由于这2门技术各自的特点,在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用。
其原因为,程序的数据通常要美化后再输出:让jsp既用java代码产生动态数据,又做美化会导致页面难以维护。
让servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。
因此最好的办法就是根据这两门技术的特点,让它们各自负责各的,servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做。
Jsp的运行原理:目标:Web服务器是如何调用并执行一个jsp页面的?Jsp页面中的html排版标签是如何被发送到客户端的?Jsp页面中的java代码服务器是如何执行的?Web服务器在调用jsp时,会给jsp提供一些什么java对象?思考:JSP为什么可以像servlet一样,也可以叫做动态web资源的开发技术?其实Jsp就是一个Servlet,所以我们要先介绍Servlet的相关技术,当我们第一次访问Jsp 的时候,Jsp引擎都会将这个Jsp翻译成一个Servlet,这个文件存放在Tomcat中的work目录中,这里,我们新建一个MyJsp.jsp页面,然后访问以下,我们看一下翻译后的源码:1.<%@ page language="java"import="java.util.*"pageEncoding="utf-8"%>2.3.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN">4.<html>5.<head>6.7.<title>My JSP 'MyJsp.jsp' starting page</title>8.9.</head>10.11.<body>12. This is my JSP page. <br>13.</body>14.</html>1.package org.apache.jsp;2.3.import javax.servlet.*;4.import javax.servlet.http.*;5.import javax.servlet.jsp.*;6.import java.util.*;7.8.public final class MyJsp_jsp extends org.apache.jasper.runtime.HttpJspBase9.implements org.apache.jasper.runtime.JspSourceDependent {10.11.private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();12.13.private static java.util.List _jspx_dependants;14.15.private javax.el.ExpressionFactory _el_expressionfactory;16.private org.apache.AnnotationProcessor _jsp_annotationprocessor;17.18.public Object getDependants() {19.return _jspx_dependants;20. }21.22.public void _jspInit() {23. _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();24. _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class .getName());25. }26.27.public void _jspDestroy() {28. }29.30.public void _jspService(HttpServletRequest request, HttpServletResponse response)31.throws java.io.IOException, ServletException {32.33. PageContext pageContext = null;34. HttpSession session = null;35. ServletContext application = null;36. ServletConfig config = null;37. JspWriter out = null;38. Object page = this;39. JspWriter _jspx_out = null;40. PageContext _jspx_page_context = null;41.42.43.try {44. response.setContentType("text/html;charset=utf-8");45. pageContext = _jspxFactory.getPageContext(this, request, response,46.null, true, 8192, true);47. _jspx_page_context = pageContext;48. application = pageContext.getServletContext();49. config = pageContext.getServletConfig();50. session = pageContext.getSession();51. out = pageContext.getOut();52. _jspx_out = out;53.54. out.write("\r\n");55. out.write("\r\n");56. out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n");57. out.write("<html>\r\n");58. out.write(" <head>\r\n");59. out.write(" \r\n");60. out.write(" <title>My JSP 'MyJsp.jsp' starting page</title>\r\n");61. out.write(" \r\n");62. out.write(" </head>\r\n");63. out.write(" \r\n");64. out.write(" <body>\r\n");65. out.write(" This is my JSP page. <br>\r\n");66. out.write(" </body>\r\n");67. out.write("</html>\r\n");68. } catch (Throwable t) {69.if (!(t instanceof SkipPageException)){70. out = _jspx_out;71.if (out != null && out.getBufferSize() != 0)72.try { out.clearBuffer(); } catch (java.io.IOException e) {}73.if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);74. }75. } finally {76. _jspxFactory.releasePageContext(_jspx_page_context);77. }78. }79.}我们看到,这个类继承了org.apache.jasper.runtime.HttpJspBase,要想看到这个类的源码,我1./*2. * Licensed to the Apache Software Foundation (ASF) under one or more3. * contributor license agreements. See the NOTICE file distributed with4. * this work for additional information regarding copyright ownership.5. * The ASF licenses this file to You under the Apache License, Version 2.06. * (the "License"); you may not use this file except in compliance with7. * the License. You may obtain a copy of the License at8. *9. * /licenses/LICENSE-2.010. *11. * Unless required by applicable law or agreed to in writing, software12. * distributed under the License is distributed on an "AS IS" BASIS,13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.14. * See the License for the specific language governing permissions and15. * limitations under the License.16. */17.18.package org.apache.jasper.runtime;19.20.import java.io.IOException;21.22.import javax.servlet.ServletConfig;23.import javax.servlet.ServletException;24.import javax.servlet.http.HttpServlet;25.import javax.servlet.http.HttpServletRequest;26.import javax.servlet.http.HttpServletResponse;27.import javax.servlet.jsp.HttpJspPage;28.import javax.servlet.jsp.JspFactory;29.30.import piler.Localizer;31.32./**33. * This is the super class of all JSP-generated servlets.34. *35. * @author Anil K. Vijendran36. */37.public abstract class HttpJspBase38.extends HttpServlet39.implements HttpJspPage40.41.42.{43.44.protected HttpJspBase() {45. }46.47.public final void init(ServletConfig config)48.throws ServletException49. {50.super.init(config);51. jspInit();52. _jspInit();53. }54.55.public String getServletInfo() {56.return Localizer.getMessage("");57. }58.59.public final void destroy() {60. jspDestroy();61. _jspDestroy();62. }63.64./**65. * Entry point into service.66. */67.public final void service(HttpServletRequest request, HttpServletResponse response)68.throws ServletException, IOException69. {70. _jspService(request, response);71. }72.73.public void jspInit() {74. }75.76.public void _jspInit() {77. }78.79.public void jspDestroy() {80. }81.82.protected void _jspDestroy() {83. }84.85.public abstract void _jspService(HttpServletRequest request,86. HttpServletResponse response)87.throws ServletException, IOException;88.}好吧,看到了,继承了HttpServlet类,所以说其实Jsp就是一个ServletJsp的语法:1.JSP模版元素2.JSP表达式3.JSP脚本片段4.JSP注释5.JSP指令6.JSP标签7.JSP内置对象8.如何查找JSP页面中的错误Jsp模板元素JSP页面中的HTML内容称之为JSP模版元素。
