在传统的html页面中加入( )就构成了一个jsp页面文件,1.7jsp页面的基本结构在传统的html页面文件中加入java程.ppt...

本文详细介绍了JSP页面的基本结构,包括HTML标记、JSP标签、变量和方法声明、Java程序片及表达式的组成。在JSP中,变量和方法的声明可以在<%! %>之间进行,这些成员变量在服务器关闭前保持有效,可能导致多线程问题。文章通过实例展示了如何处理线程同步,以避免并发访问共享变量时可能出现的混乱。同时,讨论了在JSP中声明方法及其作用域。
摘要由CSDN通过智能技术生成

1.7jsp页面的基本结构在传统的html页面文件中加入java程

* 1.7 JSP页面的基本结构 在传统的HTML页面文件中加入java程序片和JSP标签就构成了一个JSP页面文件。一个JSP页面可由5种元素组合而成: (1)普通的HTML标记符。 (2)JSP标签:如,指令标签、动作标签。 (3)变量和方法的声明。 (4)Java 程序片。 (5)Java 表达式。 我们称(3)、(4)、(5)形成的部分为JSP的脚本部分。

您是第 个访问本站的客户。 观察以下代码,分析各个部分: 当服务器上的一个jsp页面被第一次请求执行时,服务器上的JSP引擎首先将JSP页面文件转译成一个java文件,再将这个java文件编译生成字节码文件,然后通过执行字节码文件响应客户的请求。这个字节码文件的任务就是: 把JSP页面中普通的HTML标记符号,交给客户的浏览器执行显示。 JSP标签、数据和方法声明、Java程序片由服务器负责执行,将需要显示的结果发送给客户的浏览器。 Java 表达式由服务器负责计算,并将结果转化为字符串,然后交给客户的浏览器负责显示。 1.8 变量和方法的声明 在“”标记符号之间声明变量和方法。 1.8.1 声明变量 在“”标记符之间声明变量,即在“”之间放置Java的变量声明语句,变量的类型可以是Java 语言允许的任何数据类型,我们将这些变量称为JSP页面的成员变量。如, “”之间声明的变量在整个JSP页面内都有效,因为JSP引擎将JSP页面转译成Java 文件时,将这些变量作为类的成员变量。这些变量的内存空间直到服务器关闭才释放。当多个客户请求一个JSP页面时,JSP引擎为每个客户启动一个线程,这些线程由JSP引擎服务器来管理,这些线程共享JSP页面的成员变量,因此任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户。 下面的例子3利用成员变量被所有用户共享这一性质,实现了一个简单的计数器 例子3 Example1_3.jsp:

您是第 个访问本站的客户。 在处理多线程问题时,我们必须注意这样一个问题:当两个或多个线程同时访问同一个共享的变量,并且一个线程需要修改这个变量时,我们应对这样的问题作出处理,否则可能发生混乱。在上面的例子3中,可能发生两个客户同时请求Example1_3.jsp页面。在Java语言中我们已经知道,在处理线程同步时,可以将线程共享的变量放入一个synchronized块,或将修改该变量的方法用synchronized来修饰。这样,当一个客户用synchronized块或synchronized方法操作一个共享变量时,其它线程就必须等待,直到该线程执行完该方法或同步块。下面的例子4对例子3进行了改进。 例子4 Example1_4.jsp:

您是第 个访问本站的客户。 1.8.2 声明方法 在“”之间声明方法,该方法在整个JSP页面有效,但是该方法内定义的变量只在该方法内有效。这些方法将在Java程序片中被调用,当方法被调用时,方法内定义的变量被分配内存,调用完

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值