`

jsp脚本元素

阅读更多

元素与模板数据

JSP页面内容可以分为两种类型,一种是能够被容器识别的标记单元,
如<%out.println(“hello”);%>,它要求容器在翻译时要进行特殊的处理,称这类标记单元为元素(elements);
另外一种就是类似“<html>”这样的,对容器没有特殊意义的内容,叫做模板数据(Template Data)
在JSP页面中,共有3种类型的元素,
即指示元素(Directive Elements)、行为元素(Action Elements)和脚本元素(Scripting Elements)

脚本元素

脚本元素的作用就是在JSP页面中嵌入脚本语言代码,向容器声明要将什么样的Java语句添加到servlet类中
JSP的脚本语言是Java
脚本元素分为3种类型:
1声明
2表达式
3脚本片断(scriptlet)

在把JSP页面翻译成页面servlet的时候,根据脚本元素的不同类型,它们在页面servlet中的位置是不同的。
下面的代码说明了这个位置情况:
public class JspPageServlet extends HttpJspBase{
//声明被插入在这个地方

public void _jspService(…)…{
//表达式和脚本片断被插入在这个地方
}
}


声明    

语法:
<%!   Java声明语句   %>
说明:
声明用来定义实例变量、类变量以及自定义方法。这些实例变量、类变量和方法在整个JSP页面的任何地方都可以访问
可以在一对声明标记中嵌入多条声明语句,语句与语句之间用分号隔开。例如:
<%! float farenheit=32.0; String tempScale=“F”; %>
声明并不产生可见的输出,它们经常与表达式和脚本片断结合使用

再看一个声明的例子:
<%! static private int hitCount=1;
          static private Data start=new Date();
          private int getHitCount(){
return hitCount++;
}
%>
分析
hitCount和start变量被声明为static。在典型的servlet环境下,实例变量和类变量的作用是一样的,可以互换。这是由于:
按照规范要求,JSP容器只能创建不实现SingleThreadModel接口的任何servlet的一个实例。因此,
由于所有的请求由同一个servlet实例处理,所以类变量和实例变量的作用是相同的


接上页)但是,当servlet实现了SingleThreadModel接口的时候,JSP容器会创建一个servlet实例池来为并行的请求服务。
在JSP中,当JSP页面中包含<%@ page isThreadSafe=“false” %>时,这种情况就会出现。因此,
为了确保hitCount和start变量能跨所有类实例被共享,必须要使用static

声明标记的另一个重要作用是重写两个JSP生存期方法。和servlet类似,JSP定义了两个具有生存期的方法:jspInit()和 jspDestory()。当页面servlet被实例化时,但在它处理第一个请求之前,JSP容器调用jspInit()方法。在页面servlet被 卸载之前, JSP容器调用jspDestory()方法
如下声明重写了两个JSP生存期方法:
<%! public void jspInit(){
// 在这里写你的代码            
          }
          public void jspDestory(){
//在这里写你的代码
          }
%>

 


表达式     表达式     表达式     表达式     表达式    


语法:
<%=   Java表达式   %>
说明:
表达式用于求值计算,其结果将被显示在客户端浏览器中
表达式不用分号结束。例如:
<%= new java.util.Date() %>
当JSP页面被翻译成页面servlet时,表达式被放到_jspService()方法的out.print()语句中,从而来产生输出。例如,对上面的表达式,将生成如下代码:
out. print(new java.util.Date());


示例(ShowDate.jsp):
<%@ page contentType=“text/html;charset=GBK” import=“java.util.*” %>
<html>
<body bgcolor=“#ffffff”>
<%
Calendar currTime=new GregorianCalendar();
int year=currTime.get(currTime.YEAR);
int month=currTime.get(currTime.MONTH);
int day=currTime.get(currTime.DAY_OF_MONTH);
int hour=currTime.get(currTime.HOUR_OF_DAY);
%>
<h1>
今天是<%=year%>年<%=month%>月<%=day%>日
</h1>
现在是<%=hour%>点
</body>
</html>


记录页面被访问次数的JSP,程序代码详见hitcount.jsp
记录页面被访问次数的JSP,使用三元运算符生成有条件的输出。程序代码详见hitcount2.jsp


脚本片断     脚本片断     脚本片断     脚本片断     脚本片断    


语法:
<%   Java语句片断   %>
说明:
可以在脚本片断中嵌入任何合法的Java语句,这些语句在翻译成JSP页面实现类后,按照脚本片断在页面中出现的顺序,都将被直接添加到_jspService()方法中
在脚本片断中不能再定义新的方法,因为Java语法规定,不能在一个方法中定义另一个方法
在<%和%>组成的标记对中,只能出现Java语句,其它东西都是非法的
与表达式不同的是,脚本片断不自动生成返回给客户的输出。如果希望的话,可以使用out隐含对象生成输出


使用示例(hello.jsp):
<%@ page contentType=“text/html;charset=GBK” import=“java.util.*” %>
<html>
<head><title>问候</title></head>
<body bgcolor=“#ffffff”>
<%
String greetTime=“早上好!”;
Calendar currTime=new GregorianCalendar();
if(currTime.get(currTime.HOUR_OF_DAY)>18){
greetTime=“晚上好!”;
}
else if(currTime.get(currTime.HOUR_OF_DAY)>12){
greetTime=“下午好!”;
}
%>
<h1><% out.println(greetTime); %><br></h1>
</body></html>

 

如下的脚本片断从请求中得到一个温度数字,把它从Farenheit(华氏的)转换为Celsius(摄氏的),并把结果返回给客户端:
<%
float farenheit=Integer.parseInt(request.getParameter(“temp”));
float celsius=(farenheit-32)*5/9;
out.println(farenheit+” farenheit=”+celsius+”celsius”);
%>
为了删去脚本片断中的静态文本,通过把脚本片断和表达式结合起来改进这个例子,如下所示:


<%
float farenheit=Integer.parseInt(request.getParameter(“temp”));
float celsius=(farenheit-32)*5/9;
%>
<%=farenheit %> farenheit=<%=celsius%> celsius
与表达式不同的是,脚本片断包含的代码块有时必须和其它代码块相结合才有效。在Java中,一个合法的代码块以“{”开始,以“}”结束。如果代码块没有结束,代码就是无效的,并且当页面servlet被编译时,将导致一个编译错误


程序conversion.jsp示范了如何使用表达式来删去脚本片断中的静态文本以及多个脚本片断之间的结合以形成一个有效的代码段
使用如下URL调用它:
http://localhost:8080/conversion.jsp?temp=212


注释     注释     注释     注释     注释     注释     注释     注释     注释     注释     注释     注释     注释     注释    


在JSP页面中可以使用4种注释
标准的JSP注释语法如下:
<%-- 注释内容 --%>
这种注释不会返回给客户端,只能在JSP页面中可以看见。这是因为这种注释不会被加入到JSP页面servlet的_jspService()方法中去
可以在声明、表达式和脚本片断中使用Java语言的注释:
/* 注释 */   和   //注释
这种注释会被作为源代码注释加入到JSP页面servlet中去,但是不会被增加到输出流中返回给客户端


HTML和XML的标准注释语法如下:
<!--   注释内容   -->
这种注释会被增加到输出流中返回给客户端,它们在页面的源代码中可以被看到

分享到:
评论

相关推荐

    02-JSP脚本元素指令及动作.ppt

    02-JSP脚本元素指令及动作.ppt

    JSP脚本元素.ppt

    JSP脚本元素详解 JSP脚本元素是JSP中的一种重要组件,用于在JSP页面中插入Java代码。这类Java代码将出现在由当前JSP页面生成的Servlet中。JSP规范只支持这类脚本元素的Java版本。 一、JSP脚本元素的三种类型 JSP...

    JSP脚本元素.pptx

    JSP脚本元素 JSP脚本元素是JSP语言的基础组件之一,它们是JSP页面的核心结构单元。在JSP页面中,我们可以使用各种脚本元素来实现不同的功能,例如注释、声明、表达式、脚本等。在本文中,我们将对JSP脚本元素进行...

    JSP脚本元素调用Java代码.pptx

    JavaServer Pages(JSP)是Java平台上用于创建动态网页的技术。...JSP的主要优点在于它能够将界面展示与业务逻辑分开,提高代码的可...通过熟练掌握JSP脚本元素、指令以及动作,开发者可以构建出高效、灵活的Web应用程序。

    用JSP脚本元素调用Java

    通过jsp脚本元素调用java来 更好的实现网页的开发

    jsp表达式语言

    %&gt;`这样的JSP脚本元素的情况下编写JSP页面。这种做法有助于将业务逻辑和表现层分离,提高了代码的可维护性。 要在无脚本JSP页面中启用EL,可以采用两种方法: 1. **页面指示**:在JSP页面的顶部使用`...

    JSP脚本元素、指令、内建对象

    主要介绍JSP的两种注释、三脚本、七动作、九内建对象

    JSP脚本元素调用Java代码.ppt

    总结来说,JSP是Java Web开发中的一个重要工具,通过其脚本元素和指令,可以方便地将动态内容嵌入到HTML页面中,简化了动态网页的开发。在实际应用中,JSP常与Servlet、JavaBeans以及各种标签库(如JSTL)配合,构建...

    JSP脚本元素和注释复习总结示例

    在JSP页面中,脚本元素和注释是非常重要的组成部分,用于实现页面的逻辑处理和注解说明。JSP规范定义了三种主要的脚本元素:声明语句、脚本片段(Scriptlets)和表达式,以及两种类型的注释。 首先,JSP声明语句是...

    JSP指令和脚本元素.ppt

    JSP 指令和脚本元素 JSP(JavaServer Pages)是一种将 Java 与 HTML 相结合的规范,由 Sun Microsystems 公司开发。JSP 是使用 Java 开发基于 Web 的应用程序不可或缺的部分,可以结合其他 Java 组件一起使用。 ...

    十二、脚本元素、指令和预定义变量

    12.1 JSP脚本元素 JSP脚本元素用来插入Java代码,这些Java代码将出现在由当前JSP页面生成的Servlet中。脚本元素有三种格式: 表达式格式<%= expression %>:计算表达式并输出其结果。 Scriptlet格式<% code %>:...

    JSP页面元素与内置对象

    介绍jsp的页面元素如page呀,和内置对象像session,application

    对初学者非常有帮助,JSP脚本技术概述

    - JSP脚本元素包括以下三种类型: - 1) **脚本声明(Scriptlet)**:以`开头,`%&gt;`结尾,包含在`! %&gt;`中的代码块,用于声明变量或方法。 - 2) **表达式(Expression)**:以`&lt;%= %&gt;`包围,用于将Java表达式的值...

    js脚本元素调用java代码[整理].pdf

    本文档主要探讨了如何通过JSP脚本元素调用Java代码,以及为何这种分离对于软件开发的重要性。 1. **JSP脚本元素调用Java代码** JSP提供了多种方式来在页面中嵌入Java代码,这些被称为脚本元素。包括: - **JSP...

    jsp实例源代码《jsp大学使用教程》

    《jsp大学实用教程》是一本非常实用的jsp教程,该教程涵盖了jsp的基本概念、jsp页面结构、jsp指令、jsp脚本元素、jsp表达式、jsp内置对象、jsp动作元素、jsp国际化、jsp安全和jsp调试等方面的知识点。该教程非常适合...

    完整版Java JSP web开发教程 06_JSP脚本和指令的使用(共22页).ppt

    本教程的第六章详细介绍了JSP脚本元素和指令的使用,这是掌握JSP开发的关键。 首先,JSP(JavaServer Pages)是一种基于Java的技术,用于创建动态、交互式的网页。它的页面由静态内容(如HTML)和动态脚本组成,...

    语言程序设计资料:JSP_12-(2)JSP页面元素.ppt

    在JSP 2.0规范中,JSP页面主要由四个部分组成:JSP指令、JSP脚本元素、JSP动作和注释。 1. **JSP指令(Directives)**:JSP指令以`开始,`%&gt;`结束,它们用于设置整个JSP页面的全局属性,如页面编码、导入的Java包等...

Global site tag (gtag.js) - Google Analytics