在JSP页面中,脚本标识使用的最为频繁,因为他们能够方便、灵活地生成页面中的动态内容,特别是JSP程序代码块。JSP中的脚本标识包括3部分,即JSP声明区、JSP表达式和JSP程序代码块。通过这些标识,在JSP页面中可以像编写Java程序一样声明变量、定义函数或进行各种表达式运算。

JSP声明区

声明标识用于在JSP页面中定义全局的变量或方法。通过声明标识定义的变量和方法被整个JSP页面访问,所以通常使用该标识定义整个JSP页面需要引用的变量或方法。

服务器执行JSP页面时,会将JSP页面转换为Servlet类,在该类中会把JSP声明区中定义的变量和方法转换为成员变量和方法。

声明标识的语法格式如下:

<%! 声明变量或方法的代码 %>

"<%"与"!"之间不可以有空格,但是"!"与其后面的代码之间可以有空格,另外,"<%!"与"%>"可以不在同一行,例如,下面的格式也是正确的。

<%!

声明变量或方法的代码

%>

例:在JSP声明区声明一个全局变量和全局方法。

<%! int number = 0;

int count(){

number++;

return number;

}

%>

JSP表达式

JSP表达式用于向页面中输出信息,其语法格式如下:

<%= 表达式 %>

表达式可以使任何Java语言的完整表达式,该表达式的最终运算结果将被转换为字符串。

例:使用JSP表达式在页面中输出信息。

<%! String manager = "mr" %>      //定义保存管理员名的变量

管理员:<%= manager %>        //输出结果为:管理员:mr

<%= "管理员:" + manager %>       //输出结果为:管理员:mr

<%= 5+6 %>                   //输出结果为:11

JSP表达式不仅可以插入到网页的文本中,用于输出文本内容,也可以插入到HTML标记中,用于动态设置属性值。

JSP程序代码块

所谓JSP程序代码块,就是在JSP页面中嵌入的Java代码或是脚本的代码。JSP程序代码块将在页面请求处理期间被执行,通过Java代码可以定义变量或是流程控制语句等;而通过脚本代码可以应用JSP的内置对象在页面输出内容、处理请求和响应、访问session会话等。JSP程序代码块的语法格式如下:

<% Java代码或是脚本代码 %>

JSP程序代码块的使用比较灵活,它所实现的功能是JSP表达式无法实现的。

JSP程序代码块与JSP声明区的区别是:通过JSP声明区创建的变量和方法时在当前JSP页面中有效,它的生命周期是从创建开始到服务器关闭结束;JSP程序代码块创建的变量或方法,也是在当前JSP页面中有效,但它的生命周期是页面关闭后就会被销毁。

例:通过JSP程序代码块和JSP表达式在JSP页面中输出九九乘法表。

编写一个名为index.jsp的文件,在该页面中先通过JSP程序代码块将输出九九乘法表的文本连接成一个字符串,然后通过JSP表达式输出该字符串。index.jsp文件的代码如下:

<body>

<% String str = "";

for(int i = 1;i<=9;i++){

for(int j = 1;j<=i;j++){

str+=j+"*"+i+"="+j*i;

str+="&nbsp;&nbsp;";

}

str+="<br>";

}

%>

<%=str %>

</body>

启动服务器,在地址栏中输入localhost:8080/jsp_demo/index.jsp,浏览器将显示如图3所示的页面。

图3  index.jsp

IT兄弟连 JavaWeb教程 JSP语法的更多相关文章

  1. IT兄弟连 JavaWeb教程 JSP中的注释

    由于JSP页面由HTML.JSP.Java脚本等组成,所以在其中可以使用多种注释格式 HTML中的注释 HTML语言的注释不会被显示在网页中,但是在浏览器中选择查看网页源代码时,还是能够看到注释的信息 ...

  2. IT兄弟连 JavaWeb教程 JSP内置对象经典案例

    案例需求:使用MVC模式编写一个程序当发起一个deptList.do请求时在servlet中准备一个部门列表对象,把这个列表对象放入request作用域中,然后转发到deptlist.jsp,使用js ...

  3. IT兄弟连 JavaWeb教程 JSP内置对象1

    JSP内置对象定义 JSP提供了由容器实现和管理的内置对象,也可以称之为隐含对象,这些内置对象不需要通过JSP页面编写来实例化,在所有的JSP页面中都可以直接使用,它们起到了简化页面的作用,JSP的内 ...

  4. IT兄弟连 JavaWeb教程 JSP内置对象2

    application对象 application对象用于保存所有应用程序中的公有数据.它在服务器启动时自动创建,在服务器关闭时销毁,当application对象没有被销毁时,所有用户都可以共享app ...

  5. IT兄弟连 JavaWeb教程 JSP中的三大指令

    指令标识主要用于设定整个JSP页面范围内都有效的相关信息,它是被服务器解释并执行的,不会产生任何内容输出到网页中.也就是说,指令标识对于客户端浏览器是不接见的.JSP页面的指令标识与我们的身份证类似, ...

  6. IT兄弟连 JavaWeb教程 JSP动作指令

    JSP动作指令语法 JSP动作指令语法格式如下: <jsp:动作名 属性名1="属性值1" 属性名2="属性值2" ... %> JSP具体动作指令 ...

  7. IT兄弟连 JavaWeb教程 JSP定义

    JSP页面是指扩展名为.jsp的文件,在一个JSP页面中,可以包括指令标识.HTML代码.JavaScript代码.嵌入的Java代码.注释和JSP动作标识等内容.但这些内容并不是一个JSP页面所必须 ...

  8. IT兄弟连 JavaWeb教程 JSP内置对象经典面试题

    1.请说明cookie.request.session.application的作用域和声明周期? 并说明它们适用与什么场景? request的生命周期是一次请求.可以用于JSP表单提交数据. ses ...

  9. IT兄弟连 JavaWeb教程 JSP访问JavaBean

    在JSP网页中,既可以通过程序代码来访问JavaBean,也可以通过特定的JSP标签来访问JavaBean.采用后一种方法,可以减少JSP网页中的程序代码,使他更接近与HTML页面.下面介绍访问Jav ...

随机推荐

  1. 我们将要建立的EasyDarwin开源社区

    从12年12月我开始建立EasyDarwin开源项目,已经三年多的时间了,从开始最简单的一个开源流媒体服务器项目,如今已经发展成为目前国内最大的一个流媒体开源社区,截至目前已经有十几个项目在Githu ...

  2. Aspose.cells 读取Excel表中的图片问题

    一.说明 本文主要是讲解,怎么使用aspose.cells读取Excel表中的图片,并把图片转换成流或是image对象. 二.开发环境说明 开发工具vs2012,c#语言, 三.Aspose.cell ...

  3. c++通用写文件调试代码

    #include <stdio.h>#include <sstream>#include <iostream> std::stringstream strs;str ...

  4. delphi android 录像(使用了JMediaRecorder,MediaRecorder的使用方法)

    delphi xe系列自带的控件都无法保存录像,经网友帮忙,昨天终于实现了录像功能(但有个问题是录像时无画面显示),程序主要使用了JMediaRecorder,MediaRecorder的使用方法可参 ...

  5. windows与mac共享文件

    实际操作环境是win10实体机与mac10.10虚拟机共享文件. 需要两步操作: 在win10中设置一个共享文件夹: 在mac中点击Finder——窗口左侧的列表——共享的——共享屏幕——输入用户名密 ...

  6. ZOJ - 3956 Course Selection System 【01背包变形】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3956 题意 给出N组Hi Ci 然后 要选出若干个 使得 这个式 ...

  7. 原来 Set 集合也可以排序

    Java 集合类主要由两个接口派生而出: Collection 和 Map.在 Collection 集合中,我们经常用到的是 List 集合和 Map 集合,而 Set 集合出场的机会就相对比较的少 ...

  8. Vue.js的动态组件模板

    组件并不总是具有相同的结构.有时需要管理许多不同的状态.异步执行此操作会很有帮助. 实例: 组件模板某些网页中用于多个位置,例如通知,注释和附件.让我们来一起看一下评论,看一下我表达的意思是什么.评论 ...

  9. 异常描述:hibernate懒加载中,用OpenSessionInViewFilter解决之后,同时对一个collection创建两个session访问导致异常(Illegal attempt to associate a collection with two open sessions)

    在保存的时候如果使用以下方法就会报错 解决:使用merge()方法就可以解决异常... merge()方法的解释: 传入的参数在数据库中不存在的时候会添加一条数据,根据主键判断已存在的时候会更新这条数 ...

  10. HashMap vs ConcurrentHashMap — 示例及Iterator探秘

    如果你是一名Java开发人员,我能够确定你肯定知道ConcurrentModificationException,它是在使用迭代器遍历集合对象时修改集合对象造成的(并发修改)异常.实际上,Java的集 ...