《Servlet和JSP学习指南》一3.5 脚本元素

简介: 本节书摘来自华章出版社《Servlet和JSP学习指南》一书中的第3章,第3.5节,作者(加)Budi Kurniawan,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.5 脚本元素

第二种JSP句法元素是脚本元素,它将Java代码合并成一个JSP页面。脚本元素有3种类型:Scriptlet、声明及表达式,这些都将在接下来的小节中讨论。

3.5.1 Scriptlet

Scriptlet是一个Java代码块,它以<%开头,以%>结束。例如,代码清单3-6中的scriptletTest.jsp页面就是使用了Scriptlet。
image
image

上述JSP页面中有两个Scriptlet。注意,在一个Scriptlet中定义的变量,对于它后面的其他Scriptlet是可见的。
一个Scriptlet中的首行代码可以与<%标签放在同一行,%>标签可以与最后一行代码放在同一行。但是这样会破坏页面的可读性。

3.5.2 表达式

表达式(Expression)的运算结果会被填入隐式对象out的print方法中。表达式以<%开头,并以%>结束。例如,以下粗体部分就是一个表达式:
image

注意,表达式的后面不需要用分号。
对于这个表达式,JSP容器会先运算java.util.Calendar.getInstance().getTime(),然后将结果传给out.print()。它与下面这个Scriptlet的结果是一样的:
image

3.5.3 声明

可以声明(declaration)能够在JSP页面中使用的变量和方法。声明要用<%!和%>包起来。如代码清单3-7中declarationTst.jsp页面展示的JSP页面,就声明了一个名为getTodaysDate的方法。
image
image

声明可以放在JSP页面中的任何位置,并且同一个页面中可以有多个声明。
我们可以利用声明覆盖实现类中的init和destroy方法。覆盖init,要声明一个jspInit方法;覆盖destroy,要声明一个jspDestroy方法。这两个方法详解如下:
jspInit。该方法与javax.servlet.Servlet中的init方法类似。JSP页面被初始化时,就会调用jspInit。与init方法不同的是,jspInit不带参数。你仍然可以通过隐式对象config来获得ServletConfig对象。
jspDestroy。该方法与Servlet中的destroy方法相似,当JSP页面要被销毁时,就会调用它。
代码清单3-8中的lifeCycle.jsp页面,示范了覆盖jspInit和jspDestroy的方法。
image

lifecycle.jsp页面将被转换成如下这样的Servlet:
image
image
image
image

注意到上述Servlet中的jspInit和jspDestroy方法了吗?
利用以下URL可以调用lifeCycle.jsp:
image

当第一次调用这个JSP页面时,会在控制台上看到“jspInit...”,当关闭Servlet/JSP容器时,则会看到“jspDestroy...”。

3.5.4 关闭脚本元素

随着JSP 2.0中Expression Language的发展,建议做法是利用EL来访问服务器端的对象,而不是在JSP页面中编写Java代码。为此,原本开启的JSP 2.0脚本元素,可以通过在部署描述符的中定义一个scripting-invalid元素,将它关闭,如下所示:
image

相关文章
|
8月前
|
Java 数据库
jsp CRM客户管理系统(含数据库脚本以及文档)
jsp CRM客户管理系统(含数据库脚本以及文档)
171 10
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
288 0
|
SQL Java 数据库
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
该博客文章介绍了在JSP应用中使用Servlet查询SQL Server数据库的表信息,并通过JavaBean封装图书信息,将查询结果展示在Web页面上的方法。
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
|
XML Java 数据格式
探索研究JSP 动作元素
【10月更文挑战第1天】
220 4
`<jsp:getProperty>`动作和`<jsp:setProperty>`动作的使用在一个静态页面填写图书的基本信息,页面信息提交给其他页面,并且在其页面显示。要去将表单元素的值赋值给Java
该博客文章讲解了JSP中`<jsp:getProperty>`和`<jsp:setProperty>`动作的使用方法,包括它们的语法格式和如何在页面中使用这些动作来获取和设置JavaBean对象的属性值,并通过图书信息的填写和展示示例进行了演示。
`<jsp:getProperty>`动作和`<jsp:setProperty>`动作的使用在一个静态页面填写图书的基本信息,页面信息提交给其他页面,并且在其页面显示。要去将表单元素的值赋值给Java
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
201 3
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
202 1
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
158 1
|
供应链 前端开发 Java
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
这篇文章通过一个服装库存管理系统的实例,展示了在Spring Boot项目中使用Ajax、JSON、layui、MVC架构和iframe等技术,涵盖了注册登录、权限管理、用户管理、库存管理等功能,并提供了系统运行环境和技术要求的详细说明。
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
439 0