当前课程知识点:Web后端开发技术 >  第4章 JSP基础 >  4.2 脚本元素 >  4.2.1 脚本元素

返回《Web后端开发技术》慕课在线视频课程列表

4.2.1 脚本元素在线视频

下一节:4.3.1 指令元素

返回《Web后端开发技术》慕课在线视频列表

4.2.1 脚本元素课程教案、知识点、字幕

欢迎大家回来继续学习web后端开发技术

在这一小节当中

我们将学习脚本元素

脚本元素是JSP中的代码部分

它是去使用Java语言来编写的

它的语法形式是这样的

有一个开始标记

有一个结束标记

中间是Java代码

开始标记使用

小于号百分号

结束标记使用

百分号大于号

开始标记和结束标记

之间我们是用来编写Java代码的部分

下面我们看一个示例

那么这个示例来判断一个

Email变量它是否符合

Email

它的格式

在编写过程当中

我们通过调用indexOf

这个方法

来判断字符串的当中是否包含 @

这个字符

如果包含@字符

我们就认为它是符合EMAIL格式

的一个字符串

那么就会输出

这是正确格式的EMAIL

否则输出这是错误格式的EMAIL

我们在编写 JSP脚本的时候

一定要注意

要把Java代码放在开始标记和

结束标记之间

即使是这里面的一个向右的花阔号

我们要把它放在开始标记和结束标记之间

把我们希望在页面输出的内容放在

结束标记之后

开始标记和结束标记一定是成对出现的

那么这个是我们刚才看到的输出的结果

下面我们编写一个具体的实例

本节给大家演示一下

我们使用 JSP怎么样去验证EMAIL

那么这里的验证我们主要是为了让大家理解一下

在我们的JSP页面里面怎么去写

Java程序

真正的EMAIL的验证

可能我们更多的会用正则表达式

但是这里我们不采取这种方式

那么我这里写了一个我的EMAIL

当然这个EMAIL也是我构造出来的

并不是我真正的EMAIL地址

那么我要验证的是什么

首先EMAIL当中必须得出现这样

的一个@的符号

那么如果没有这样的@的符号

那么这个EMAIL肯定是不合法的

并且这个@符号只能出现一次

如果你出现了多次

比如说在这里面我还有一个@符号

这也并不是一个合法的EMAIL

其次在 EMAIL当中是不能含

有空格的

像我这样还有空格也是不合法的EMAIL

如果这些情况都不存在

我就认为它是一个合法的EMAIL

那么该怎么去写呢

在这里我就要用if else if else if else

这样的条件判断语句

进行判断了

首先我判断它含不含有@符号

所以我在这里写

If我的EMAIL

它含不含有@符号

我就去找indexOf这个@符号就可以了

如果能找到肯定返回的是它在我这里面的索引

比如说这个@在这

那么它的索引号就是012就是3

应该给我返回3

但是如果找不到它就应该是返回

-1

所以说我这个值要是返回-1的话

那么说明就我的EMAIL地址当中

没有@符号

那么这里注意我这里打左括号

那么我的右括号结束在哪

我需要在底下再来一个这样的尖括号百分号

在这个尖括号百分号当中

我敲一个这样的大括号

这个大括号和这个大括号是对应的

那么当这个成立的时候

我在这块也就是我要在这里面直接写

我的输出文本了

我的文本就是 EMAIL当中

不含有@这个符号对吧

非法

我就简单输出这么一个东西就可以了

那么紧接着这是我第1个判断

第2个判断

我在这里还要接着可以写else if

else if

想判断什么呢

如果还有两个@符号肯定也是不行的

对吧

所以说我就写 EMAIL

首先

我先找index of

找 @符号的索引

如果索引号我index of它数

是从前往后数数到这应该是第3个位置

对吧

那么我还有一个方法

我先写在这

中间

我还没加东西 Email.

叫做lastIndexOf

我是从后往前数

那么如果只含有一个@符号的话

我不管从前往后数还是从后往前数

总归数出来的应该都是它出现第3号位置

如果我这里还有一个@的符号

那么很显然从前往后数

我能数出一个索引号在这

那么从后往前数

它在这块这俩数值肯定是不相等的对吧

所以说正常情况下这俩数值应该是相等的

那么我这里应该怎么判断

应该是如果它俩数值不相等

说明我存在两个@符号

那么也是不合法的

那么注意不合法的情况下

我这里是大括号

那么扣回来同样还是我需要在这有

一个尖括号

百分号

百分号尖括号

在这里面扩回来

然后在中间写 EMAIL

含有两个这个@符号

非法

那么最后在这里我还要接接着去判断

是不是含有空格

else if

我的email.

Index of

空格

如果这个空格它不等于-1

就说明它是含有的

也是非法的

对吧

所以说如果它不等于-1

那么左括号不要忘记

尖括号百分号在这里面

给它括回来

然后 EMAIL中含有空格

非法

那么如果这几种情况都没出现

是不是认为我的EMAIL是一个

合法的email啊

所以说我来一个else

同样在这尖括号百分号

百分号尖括号

扩回来

这俩对应上

在这中间我们就写上 EMAIL

合法

这时候我们去验证一下

很显然这会应该输出的是EMAIL

合法

我在我这样的一个EMAIL的情况下

我们输出我们去验证一下

validateEmall.jsp

Email合法

如果比如说我把 Emall

删去

它没有这个@符号

大家可以看到它就会显示EMAIL

中不含有@符号非法

那么如果我这里面有两个@符号

比如说在这里面还有一个@符号

它就会显示 EMAIL中包@符号

非法

对吧

那么如果我这里EMAIL里还有空格

敲空格

它就会显示EMAIL中包含空格

非法

这就是我们用这样的一个Java在

JSP页面当中写的这么一个

Java程序

来验证我们的EMAIL是否合法

JSP表达式是用来输出内容的这样

一种 JSP当中的方法

它的语法也是比较简单的

是在刚才开始标记

之后紧跟一个英文的等号

然后后边是结束标记

中间是我们想要输出的表达式

我们看一个示例

那么这个示例我们看到这是开始标记

紧跟是英文的等号

结束标记

中间要输出当前的时间

本节给大家去演示一下

我们非常熟悉的99乘法表

利用我们的JSP程序

该如何给它进行输出

那么这个是我们最终想输出的一个

效果

那么我们分析一下

应该怎么去完成这样的一个效果

首先大家看

我们相乘的时候

这是1

斜着看

这是2

3

也就是说我们从1×1然后最后到

这块x2×3

x4×5

×6

×7

×8

x9

那么我可以定一个变量叫做I I是

分别从1一直到2

一直到我们数字9的

那么这里还有一个变量

我们可以称之为j那么当I等于1的时候

只要j小于等于I就可以了

那么当I=1的时候

很显然这就是j小于等于I那么j

只能取1×1

那么当I等于2的时候

因为j小于等于I j只能取1

和2

分别去乘以 I所以I=2的时候

j分别取1和2

然后分别乘上 I这个2值

就可以了

那么I等于3的时候

这就分别可以取1

2

和3分别和 I相乘就可以了

同理

i取4的时候

j分别取1

2

3

还有4

分别和 I相乘

以此类推就可以了

所以说这里我们就很清楚了

首先我们去循环I从1~9

然后我们再套一层内循环就循环j

的取值范围就是j 要小于

等于I然后我们去做一个j和I的

相乘

把这个结果写出来就可以了

有了这么一个思路

我们就回到我们的程序里去写

代码

我们新建一个叫做

multiplication

JSP那么我们需要写程序的话

打到尖括号

百分号里面

我们按照我们刚才说的

我们要建立一个I那么 I是从1

开始取值

I的取值范围是到9

你可以写成小于等于9

你也可以给写成小于10

都是一样的

然后I++然后大家不要忘记

我每次输出完以后

这块是要有一个空格的

那么我先为了大家好理解我这个空格

我先不输出

我就都给它输出到一起

虽然说看着不舒服

但是这样写起来大家可能好理解一点

我需要在这里套一个程序

那么叫做 int

j=1 开始对吧

然后j是小于等于I的

然后j++

然后我们需要往页面上输出什么呢

我们要输出的东西

正常我们用out.print就

可以了

对吧

可以输出

但是这样输出我们说了

我们要把这个程序和我们页面输出

分隔开来

所以说大家看我可以这么去做

我把这块做一个结束

这里做一个结束

然后从这里开始再来一个新的代码

程序

这一部分写在一起

那么是一样的

我就可以在这里直接写我的代码了

对吧

我这个代码我用 jsp的这种表达式

等于什么

是不是大家看

应该等于的

就是我的j值乘以我的I值等于多少

这不也是j值乘以 I值

等于多少吗

J值乘以 I值等于多少吗

对吧

所以说我这里就写成我的 j当前

这个j是多少

然后连接上一个什么

连接上一个乘号

乘上我当前的 I值

对吧

然后连接上一个等号

再连接上它

成完以后真正的值

那么就是j乘以

i这个值就可以了

但是这样的输出这个格式可能会有些

问题

我们先看一眼

我们这个叫做multiplication

multiplication

我们 JSP页面叫做

multiplication.

Jsp

敲回车

那么大家会发现我东西啊全都写在一

行上了

对吧

不像我这样之前那样的

它会按照我们到几给分开

那么该怎么办呢

大家去想

我每循环一次

一旦结束以后

我是不是应该给它加一个换行

这个我就让你加一换哈

当然我这里用的可能不是br我可以

用一个p标签

表示它也在一行上

对吧

所以说我这个代码

我可以这样去改进一下

我把这个for循环大家注意看

我给它拿出来

拿出来我在这里面又加了一个

这样 Java程序代码段

我搁到这里面

为什么

因为这个循环每次每循环完了以后

我要在它前后加一个 p标签

所以说我在这里加一个p标签

那么它的循环结束在哪呢

注意它的循环结束在这

所以大家看哈

我在这里面再加一个程序代码段

我把它的循环结束

搁到这个代码段里

为啥

因为整个这一段结束了

循环完了以后

我要给它加一个p标签

就是这个样子

所以说我们再来看我们的程序运行

结果

那么大家看这样的程序研究我就

没有问题了

因为一旦我们的内层循环1~2循环

完了就要加一个p标签

1

2

3循环完了加一个p标签

这样的话就能保证它每次循环外一个

内循环它都出现一个新行

这就是我们一个99乘法表的一个

演示

JSP声明

我们可以在JSP当中声明变量和

方法

那么这些变量和方法会在JSP页面

初始化的时候进行初始化

那么声明的语法也是比较简单的

是在开始标记之后

紧跟写一个英文的叹号

中间是JSP的声明

结束

结束标签结束标记

那么JSP声明的方法和变量会作为

这个类的数据成员和它的实例方法而

存在

我们看一个示例

在这个示例当中

我们声明了一个i变量

声明了一个fn的方法

fn这个方法返回的类型是

String类型

我们刚才已经提到 JSP文件可以

在执行过程当中

翻译成为 Java文件

我们打开它对应的Java文件

会看到这样一些代码

首先我们注意到这是对应的这个类

然后在这里类里边会看到我们刚才

声明的I变量

声明的 fn的方法

从这儿我们可以进一步表明 JSP

当中声明的变量和方法都是作为类的

成员而存在的

下面我们看一个示例

在这个示例当中

我们声明了一个 count变量

然后我们又生成了一个

counter的方法

在counter的方法当中

count变量进行++下面的代码

首先是创建了一个 date的变量

用于显示当前的时间

接下来调用了 counter方法

实现count的计数

最后把计数的次数以及当前的时间

显示出来

那么在这个代码编写过程当中

我们要知道

对于上面的这部分代码

对于不同的访问者它是共享的

因为这里面的变量和方法是属于类的

方法

而对于下面这个date对于不同的访问者

这个date是不一样的

所以会呈现这样一种结果

当前说您是第4个访问本站的用户

访问的时间是什么

我们刚才的学习已经知道

在JSP脚本当中有变量

然后JSP还可以声明变量

那么它们之间有什么不同

我们做一个简单的比较

从语法上面来说

它们语法形式是不一样的

对于JSP声明的变量

它需要在开始标记之后紧跟一个英文

的叹号

从类型上来说

JSP脚本当中的变量

它是属于 JSP service

方法当中的临时变量

是在这个方法内

可见

而对于JSP声明的变量

它是属于类的数据成员

它在整个类内都是可见的

接下来我们介绍一下JSP的注释

它的注释的语法格式

是这样的

在开始标记之后

紧跟两个英文的短线结束标记之前

有两个英文的短线

中间是我们需要注释的部分

服务器在编译JSP文件的时候会

忽略

开始标记和结束标记之间的注释的部分

也就是说这部分是在客户端不可见的

下面我们看一个示例

在这个示例当中

我们首先用html进行了一个注释

代码的编写

然后我们对这部分代码进行了注释

接下来是一个form表单

在放表单之前我们增加了这样一行注释

form begin

在form表单之后又增加了这样一行注释

form end

那么我们看一下

当这个页面处理完以后

返回给客户端以后

形成的html代码是什么样的

这里面我们会发现

html代码的注释会显示出来

而对于JSP的注释不会在客户端

显示出来

这一小节我们就讲到这里

Web后端开发技术课程列表:

第1章 Java Web开发准备

-1.0 导学

--1.0.1 导学

-1.1 Web应用开发概述

--1.1.1 Web应用简介

--1.1.2 Web开发技术

--1.1.3 测试

-1.2 准备Java Web应用开发环境

--1.2.1 准备Java Web应用开发环境

--1.2.2 测试

--1.2.3 谈谈JavaWeb优势和学习方法

-1.3 任务实现:Hello World Web项目

--1.3.1 Hello World Web项目

--1.3.2 测试

-1.4 小结

--1.4.1 小结

-本课程所有代码

--课程参考代码

第2章 Servlet技术基础

-2.0 导学

--2.0.1 导学

-2.1 Servlet概述

--2.1.1 Servlet简介

--2.1.2 Servlet API

--2.1.3 测试

-2.2 创建Servlet

--2.2.1 Hello Servlet

--2.2.2 Servlet配置

--2,2,3 作业

-2.3 Servlet应用

--2.3.1 处理超链接请求

--2.3.2 处理form表单请求

--2.3.3 处理结果

--2.3.4 测试

-2.4 任务实现:某高校毕业生信息发布系统-注册与登录(Servlet版)

--2.4.1 注册代码实现

--2.4.2 登录代码实现

--2.4.3 测试

--2.4.4谈一谈jQuery前端开发框架

-2.5 ServletConfig接口

--2.5.1 ServletConfig接口

-2.6 ServletContext接口

--2.6.1 ServletContext接口

-2.7 HttpServletRequest接口

--2.7.1 获取请求报文信息

--2.7.2 上传照片

--2.7.3 获取网络连接信息

--2.7.4 存取请求域属性

--2.7.5 测验

--2.7.6 在请求转发和重定向过程中传递数据

-2.8 HttpServletResponse接口

--2.8.1 HttpServletResponse接口

--2.8.2 输出服务器端图片

--2.8.3 测试

-2.9 任务实现:某高校毕业生信息发布系统-简历添加

--2.9.1 任务实现:某高校毕业生信息发布系统-简历添加

-2.10 小结

--2.10.1 小结

-动画演示:Java Web应用服务器处理客户端请求的过程

--Java Web应用服务器处理客户端请求的过程

第3章 会话跟踪

-3.0 导学

--3.0.1 导学

-3.1 Cookie技术

--3.1.1 Cookie技术概述

--3.1.2 Cookie技术应用-自动登录

--3.1.3 测试

-3.2 Session技术

--3.2.1 Session技术概述

--3.2.2 Session技术-Session技术应用购物车

--3.2.3 测试

-3.3 URL重写与隐藏表单域

--3.3.1 URL重写技术与隐藏表单域

--3.3.2 测试

-3.4 任务实现:某高校毕业生信息发布系统-简历修改

--3.4.1 任务实现:某高校毕业生信息发布系统-简历修改

--3.4.2 讨论会话跟踪技术的应用场景

-3.5 小结

--3.5.1 小结

第4章 JSP基础

-4.0 导学

--4.0.1 JSP导学

-4.1 jsp概述

--4.1.1 JSP概述

--4.1.2 测试

-4.2 脚本元素

--4.2.1 脚本元素

--4.2.2 测试

-4.3 指令元素

--4.3.1 指令元素

--4.3.2 测试

-4.4 动作元素

--4.4.1 动作元素

--4.4.3 测试

-4.5 内置对象

--4.5.1 内置对象(1)

--4.5.2 内置对象(2)

--4.5.3 测试

-4.6 JavaBean

--4.6.1 JavaBean概述

--4.6.2 分步注册

--4.6.3 测试

-4.7 任务实现:某高校毕业生信息发布系统-首页(JSP版)

--4.7.1 任务实现:某高校毕业生信息发布系统-首页(JSP版)

--4.7.2 在JSP页面显示内容的都有哪些方法

-4.8 小结

--4.8.1 小结

第5章 表达式语言

-5.0 导学

--5.0.1 表达式语言

--5.0.2 测试

-5.1 el语法

--5.1.1 EL语法

--5.1.2 测试

-5.2 el隐含对象

--5.2.1 EL隐含对象

--5.2.2 测试

-5.3 任务实现:某高校毕业生信息发布系统-学生详细信息展示

--5.3.1 任务实现:某高校毕业生信息发布系统-学生详细信息展示

--5.3.2 测试

-5.4 小结

--5.4.1 小结

--5.4.2 讨论el表达式的优势

第6章 标准标签库

-6.0 导学

--6.0.1 标准标签库

--6.0.2 测试

-6.1 核心标签库

--6.1.1 通用标签

--6.1.2 条件标签

--6.1.3 迭代标签

--6.1.4 URL标签

--6.1.5 测试

-6.2 任务实现:某高校毕业生信息发布系统-首页(JSTL版)

--6.2.1 任务实现:某高校毕业生信息发布系统-首页(JSTL版)

--6.2.2 测试

-6.3 小结

--6.3.1 小结

--6.3.2 讨论如何实现自定义标签

第7章 Filter和Listener

-7.0 导学

--7.0_导学

-7.1 过滤器

--7.1.1过滤器(1)

--7.1.2过滤器(2)

--7.1.3 测试

-7.2 监听器

--7.2.1.1与ServletContext相关的监听器

--7.2.1.2示例:访问网站计数功能

--7.2.2.1与Session相关的监听器

--7.2.2.2示例:显示在线用户名称

--7.2.3.1与Request相关的监听器

--7.2.3.2示例:实时显示访问网站用户信息示例

--7.2.4 测试

-7.3 任务实现:某高校毕业生信息发布系统-单态登录

--7.3.1 任务实现:某高校毕业生信息发布系统-单态登录

--7.3.2 测试

-7.4 小结

--7.4.1小结

--7.4.2讨论filter和listener使用场景

第8章 JDBC

-8.0 导学

--8.0_导学

-8.1 JDBC API

--8.1.1 JDBC API

--8.1.2 测试

-8.2 JDBC API访问MySQL基本步骤

--8.2.1 JDBC API

--8.2.2 测试

-8.3 任务实现:某高校毕业生信息发布系统-注册与登录

--8.3.1 任务实现:某高校毕业生信息发布系统-注册与登录(JDBC版)

--8.3.2 测试

-8.4 小结

--8.4.1小结

--8.4.2 讨论JDBC工具类

第9章 某高校毕业生信息发布系统开发

-9.0导学

--9.0导学

-9.1 技术准备

--9.1.1技术准备-MVC模式

--9.1.2技术准备-Ajax技术

--9.1.3技术准备-jQuery对Ajax的实现

--9.1.4_技术准备- JDBC工具类

--9.1.5 测试.

-9.2 系统设计

--9.2系统设计:某高校毕业生信息发布系统开发

-9.3 系统实现

--9.3.1完善登陆和注册功能

--9.3.2完善简历添加功能

--9.3.3完善简历修改功能

--9.3.4.1首页分页显示

--9.3.4.2首页分页显示

-9.4 小结

--9.4.1小结

--9.4.2讨论:分页组件

4.2.1 脚本元素笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。