1.JSP页面可由5种元素组合而成:

① 普通的HTML标记符;

② JSP标记,如指令标记、动作标记;

③ 变量和方法的声明;

④ Java程序片;

⑤ Java表达式

2.声明变量和方法

JSP页面在标记符“<%!”和“%>”之间声明他的成员变量和方法。

“<%!”和“%>”之间声明的变量在整个JSP页面内有效,因为Tomcat服务器将JSP页面转译成Java文件时,将这些变量作为类的成员变量,这些变量的内存空间直到服务器关闭才释放。

3.java程序片

可以在“<%”和“%>”之间插入Java程序片。一个JSP页面可以有许多程序片,这些程序片按顺序执行。在一个程序片中声明的变量称为JSP页面的局部变量。该局部变量在JSP页面后继的所有程序片及表达式内都有效。这是因为,Tomcat服务器将JSP页面转译成Java文件时,将程序片中声明的变量作为类中某个方法的变量(即局部变量)使用。

  如果一个用户在执行程序片时调用JSP页面的方法操作JSP页面的成员变量时,可能不希望其他用户也调用该方法操作成员变量,一面对其产生不利的影响,就应该将操作成员变量的方法用synchronized关键字修饰。

 <%! int count=0;                       //被客户共享的count
synchronized void setCount(){ //synchronized修饰的方法
count++;
}
%>

synchronized实例

  可以将程序片分成几个小的程序片,以便插入JSP标记或HTML标记。

 <%@ page contentType="text/html;Charset=GB2312" %>
<HTML><BODY bgcolor=cyan>
<% int sum=0,i,j;
for(i=1;i<=6;i++){
%> <Font size=<%=i%>>
<b>大家好!</b>
</Font>
<% sum=sum+i;
}
if(sum%2==0) {
out.print("<BR><b>"+sum+"</b>");
%> <b>是偶数.</b>
<% }
else{
out.print("<BR><b>"+sum+"</b>");
%> <b>是奇数.</b>
<% }
%>
</BODY></HTML>

拆分java程序片

 
  §“<%=”和“%>”之间可以是一个Java表达式(注意:“<%=”是一个完整的符号,“<%”和“=”之间不要有空格),这个表达时必须能求值。表达式的值由服务器负责计算,并将计算结果用字符串形式发送到客户端显示。

<P> Sin(0.9)除以3等于

<%=Math.sin(0.90)/3%>

4.注释

  1. HTML 注释格式:        <!--    注释内容     -->

  2. JSP 注释格式:         <%--  注释内容  --%>

  3.程序片中的行注释用  "//"

5.HTML标记

JSP页面中的HTML标记是页面的静态部分。当客户通过浏览器请求一个JSP页面时,Tomcat服务器将该JSP 页面中的HTML标记直接发送给客户的浏览器,由客户的浏览器负责执行这些HTML标记。

而JSP页面中的变量声明、程序片和表达式为动态部分,需要服务器作出处理后,再将有关处理后的结果发送给客户。 而JSP 页面中的变量声明、程序片以及表达式由Tomcat服务器处理后,再将有关的结果用文本方式发送给客户端的浏览器。

  <FORM> <Input> <Select> <Option> <TextArea> <TABLE> <IMG> <EMBED>

J2EE 课件2的更多相关文章

  1. J2EE 课件3 JSP标记

    •JSP标记包括指令标记.动作标记和自定义标记.其中自定义标记主要讲述与Tag文件有关的Tag标记    1.指令标记page page 指令用来定义整个JSP页面的一些属性和这些属性的值,属性值用单 ...

  2. j2EE经典面试题

    1. hibernate中离线查询去除重复项怎么加条件? dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); 2. http协议及端口,sm ...

  3. <J2EE学习笔记>关于Servlet的讲义

    题外话:接触java又是半年之前的事情了,当初好好学了java却把cpp给忘了,到现在又把手里发热的cpp给放下重新捡起来java,究竟这两种OOP语言我能不能清晰分开记住呢 以下全部课件来自于同济大 ...

  4. J2EE 项目读写分离

    先回答下 1.为啥要读写分离? 大家都知道最初开始,一个项目对应一个数据库,基本是一对一的,但是由于后来用户及数据还有访问的急剧增多, 系统在数据的读写上出现了瓶颈,为了让提高效率,想读和写不相互影响 ...

  5. J2EE 邮件发送那些事儿

    距离自己写的关于java邮件发送的第一篇博客已经有很长一段时间了,现在回过头看看.虽然代码质量方面有待提高,整体结构也不怎样,但是基本思路和过程还是比较纯的.现在有空写写J2EE中邮件发送的开发,实际 ...

  6. 配置eclipse J2EE环境

    早已习惯使用eclipse做Java相关的开发,因为之前安装的是RCP版本,今天发现对于J2EE的开发,在perference中居然没有Axis2的支持,需要添加J2EE的支持插件,特在此说明安装方式 ...

  7. J2EE或MyEclipse简单配置以及第一个web页面

    首先打开你下载安装好的MyEclipse,配置你开发需要的环境. 大致分为3步:①配置编码:Window-->preferences-->General-->Workspace--& ...

  8. linux基础快速掌握课件

    分享一个很好的linux课件,可以快速掌握linux的基础.猛击下面的链接地址打开 http://pan.baidu.com/s/14oa9w

  9. 滑动验证的设计与实现J2EE

    滑动验证的设计与实现J2EE 注:本博文为博主原创,转载请注明出处. 项目源码地址:https://github.com/zhangxy1035/Verify 本篇博文的主要目录如下: 一.项目简介二 ...

随机推荐

  1. (数论)51NOD 1073 约瑟夫环

    N个人坐成一个圆环(编号为1 - N),从第1个人开始报数,数到K的人出列,后面的人重新从1开始报数.问最后剩下的人的编号.例如:N = 3,K = 2.2号先出列,然后是1号,最后剩下的是3号.In ...

  2. GoAhead4.1.0 开发总结一(移植)

    环境 官方文档:https://www.embedthis.com/goahead/doc/ 源码下载: goahead-4.1.0-src.tgz 系统平台:Ubuntu 12.04.4 gcc v ...

  3. SVN安装失败提示

    svnserve: error while loading shared libraries: libaprutil-1.so.0: cannot open shared object file: 1 ...

  4. Android 性能优化(15)网络优化( 11)Manipulating Broadcast Receivers On Demand

    Manipulating Broadcast Receivers On Demand This lesson teaches you to Toggle and Cascade State Chang ...

  5. 如何快速部署Oracle Database

    Oracle Database在Linux系统上的安装是每一个初学者都必须面临的问题,只有正确的配置好了环境,才能进行后续的深入学习.本文旨在说明如何快速的部署Oracle的单实例环境,对于初学者,还 ...

  6. JavaScript01天学习笔记分享

    01知识点 JavaScript 代码运行在浏览器(后缀名.js) 和java完全不同的东西,只是名称类型而已 src 引用脚本   <Script></Script> ale ...

  7. jQuery学习笔记(2)-选择器的使用

    一.选择器是什么 有了jQuery的选择器,我们几乎可以获取页面上任意一个或一组对象 二.Dom对象和jQuery包装集 1.Dom对象 JavaScript中获取Dom对象的方式 <div i ...

  8. 解决Unicode编码(&#29848;)

    随着互联网发展,B/S越来越受欢迎 Code编码格式也越来载多, 在大千花花世界 中文在Web显示看似一样但实际编码并不样,导致从页面获取的资料录入到数据库中时 存取的就是Code编码 如:Unico ...

  9. [转] Redis在windows下安装过程

    转载自(http://www.cnblogs.com/M-LittleBird/p/5902850.html) 一.下载windows版本的Redis 去官网找了很久,发现原来在官网上可以下载的win ...

  10. LockDemo 锁对象

    class Resource { private boolean flag = false; private String name; private int count; //资源锁 Lock lo ...