- 浏览: 1021009 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (445)
- Java (22)
- J2EE (18)
- Flex (102)
- Flex-blazeds (1)
- Flex-FABridge (2)
- Flex4 (3)
- CheckStyle (2)
- PowerDesigner (0)
- POI (2)
- Java2Word (2)
- 杂项 (15)
- 日记 (3)
- 数据库-oracle (41)
- 数据库-SQLServer (7)
- 中间件 (1)
- 英语 (8)
- C# (43)
- ASP.net (72)
- ASP.net MVC (28)
- 微软-Entity Framework (19)
- JavaScript (22)
- JQuery (31)
- EasyUI (3)
- VS2010 (4)
- CVS (1)
- Tomcat (3)
- Linux (1)
- 遗留问题 (1)
- iphone (1)
- MAC (0)
- 系统 (2)
- Web Service (4)
- Cache Manager (1)
- PMP (1)
- WCF (10)
- BootstrapJs (1)
- Web API (6)
- Go语言 (0)
- 网络协议 (2)
- Redis (10)
- RabbitMQ (10)
- Git (3)
- Kafka (5)
- ELK (5)
- Nginx (3)
- 测试 (2)
最新评论
-
ygm0720:
Table行拖拽自己实现 -
程乐平:
Flex4开发视频教程(27集)下载http://bbs.it ...
Flex4教程 -
liuweihug:
Jquery+asp.net 后台数据传到前台js进行解析的办 ...
AJAX $.toJSON的用法或把数组转换成json类型 -
weilikk:
谢谢谢谢!!
javascript IE下不能用 trim函数解决方法 -
gxz1989611:
vigiles 写道请问楼主:[Fault] exceptio ...
blazeds推送技术至Flex
元素与模板数据
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的标准注释语法如下:
<!-- 注释内容 -->
这种注释会被增加到输出流中返回给客户端,它们在页面的源代码中可以被看到
发表评论
-
IDEA设置类注解和方法注解(详解)
2019-09-10 16:03 1508从eclipse工具到IDEA工具的转化,发现IDEA工具配 ... -
IntelliJ Idea 常用快捷键列表
2019-09-06 19:28 376Ctrl+Shift + Enter,语句完成“!”,否定 ... -
WebService--xfire中对集合的配置和操作
2012-04-24 08:48 1468xfire下载URL: http://xfire.codeh ... -
Java,C#,Flex三方通讯(一)
2012-03-19 20:13 1534今天是第一讲: Java调用C#-WebService ... -
Java,C#,Flex三方通讯(一)
2012-03-19 20:11 3今天是第一讲: Java调用C#-WebService ... -
JAVA中重写equals()方法为什么要重写hashcode()方法说明
2012-03-13 14:11 7820重写hashCode()时最重要的原因就是:无论何时,对 ... -
java中instanceof用法
2012-03-13 13:28 1464java 中的instanceof 运算符 ... -
Java中的instanceof关键字
2012-03-05 09:36 1008instanceof是Java的一个二 ... -
Java中ArrayList和LinkedList区别
2012-02-20 08:38 1026一般大家都知道ArrayList和LinkedList的大致区 ... -
JSP/Servlet:Scripting Variable
2011-12-31 15:09 1426Scripting,Variable是用于自 ... -
JSP自定义标签 实例
2011-12-31 15:07 1689定义:自定义标签是一种非常优秀的组件技术。通过使用自定义标签库 ... -
写自定义标签时标记attribute里rtexprvalue的用法
2011-12-31 11:00 1133其实以前也有写过自定义标签, 但是没有注意到过<rtex ... -
Tomcat 连接池配置 - META-INF
2011-12-30 15:07 1775Tomcat 6.0连接池配置 1.Tomca ... -
jsp指示元素
2011-12-30 15:06 1445指示元素 指示元素的作用是:指示容器在将JSP翻译成serv ... -
jsp行为元素
2011-12-28 14:03 1743行为元素 行为元素的作用:与指示元素不同,行为元素是与特定的 ... -
jsp 隐藏对象
2011-12-28 13:42 1658隐藏对象即不用声明该 ... -
各数据库驱动的JAVA包 jar
2011-12-28 13:30 1382MySQL ConnectorJ v5.1http://dev ... -
jsp button onclick事件
2011-12-28 13:26 1589<input onclick="doc ... -
比较全面的taglib标签库介绍
2011-12-28 13:25 4550一、定义标签文件(web.xml) <taglib&g ... -
JDK7的推出,oracle独揽Java,是好是坏
2011-09-29 16:51 1454今天在CSDN看到JDK7也推出了lambda语法, 还有JD ...
相关推荐
02-JSP脚本元素指令及动作.ppt
JSP脚本元素详解 JSP脚本元素是JSP中的一种重要组件,用于在JSP页面中插入Java代码。这类Java代码将出现在由当前JSP页面生成的Servlet中。JSP规范只支持这类脚本元素的Java版本。 一、JSP脚本元素的三种类型 JSP...
JSP脚本元素 JSP脚本元素是JSP语言的基础组件之一,它们是JSP页面的核心结构单元。在JSP页面中,我们可以使用各种脚本元素来实现不同的功能,例如注释、声明、表达式、脚本等。在本文中,我们将对JSP脚本元素进行...
JavaServer Pages(JSP)是Java平台上用于创建动态网页的技术。...JSP的主要优点在于它能够将界面展示与业务逻辑分开,提高代码的可...通过熟练掌握JSP脚本元素、指令以及动作,开发者可以构建出高效、灵活的Web应用程序。
%>`这样的JSP脚本元素的情况下编写JSP页面。这种做法有助于将业务逻辑和表现层分离,提高了代码的可维护性。 要在无脚本JSP页面中启用EL,可以采用两种方法: 1. **页面指示**:在JSP页面的顶部使用`...
主要介绍JSP的两种注释、三脚本、七动作、九内建对象
总结来说,JSP是Java Web开发中的一个重要工具,通过其脚本元素和指令,可以方便地将动态内容嵌入到HTML页面中,简化了动态网页的开发。在实际应用中,JSP常与Servlet、JavaBeans以及各种标签库(如JSTL)配合,构建...
在JSP页面中,脚本元素和注释是非常重要的组成部分,用于实现页面的逻辑处理和注解说明。JSP规范定义了三种主要的脚本元素:声明语句、脚本片段(Scriptlets)和表达式,以及两种类型的注释。 首先,JSP声明语句是...
JSP 指令和脚本元素 JSP(JavaServer Pages)是一种将 Java 与 HTML 相结合的规范,由 Sun Microsystems 公司开发。JSP 是使用 Java 开发基于 Web 的应用程序不可或缺的部分,可以结合其他 Java 组件一起使用。 ...
12.1 JSP脚本元素 JSP脚本元素用来插入Java代码,这些Java代码将出现在由当前JSP页面生成的Servlet中。脚本元素有三种格式: 表达式格式<%= expression %>:计算表达式并输出其结果。 Scriptlet格式<% code %>:...
介绍jsp的页面元素如page呀,和内置对象像session,application
- JSP脚本元素包括以下三种类型: - 1) **脚本声明(Scriptlet)**:以`开头,`%>`结尾,包含在`! %>`中的代码块,用于声明变量或方法。 - 2) **表达式(Expression)**:以`<%= %>`包围,用于将Java表达式的值...
本文档主要探讨了如何通过JSP脚本元素调用Java代码,以及为何这种分离对于软件开发的重要性。 1. **JSP脚本元素调用Java代码** JSP提供了多种方式来在页面中嵌入Java代码,这些被称为脚本元素。包括: - **JSP...
《jsp大学实用教程》是一本非常实用的jsp教程,该教程涵盖了jsp的基本概念、jsp页面结构、jsp指令、jsp脚本元素、jsp表达式、jsp内置对象、jsp动作元素、jsp国际化、jsp安全和jsp调试等方面的知识点。该教程非常适合...
本教程的第六章详细介绍了JSP脚本元素和指令的使用,这是掌握JSP开发的关键。 首先,JSP(JavaServer Pages)是一种基于Java的技术,用于创建动态、交互式的网页。它的页面由静态内容(如HTML)和动态脚本组成,...
在JSP 2.0规范中,JSP页面主要由四个部分组成:JSP指令、JSP脚本元素、JSP动作和注释。 1. **JSP指令(Directives)**:JSP指令以`开始,`%>`结束,它们用于设置整个JSP页面的全局属性,如页面编码、导入的Java包等...