当前位置: 首页 > news >正文

J2EE 课件2

 

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关键字修饰。

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

 

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

 1 <%@ page contentType="text/html;Charset=GB2312" %>
 2 <HTML><BODY bgcolor=cyan>
 3     <%  int sum=0,i,j;
 4          for(i=1;i<=6;i++){
 5     %>     <Font size=<%=i%>>
 6             <b>大家好!</b>
 7             </Font>
 8     <%     sum=sum+i;
 9          }
10          if(sum%2==0) {
11             out.print("<BR><b>"+sum+"</b>");
12     %>     <b>是偶数.</b>
13     <%  }
14          else{
15             out.print("<BR><b>"+sum+"</b>");
16     %>     <b>是奇数.</b>
17     <%  }
18     %>
19 </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> 

 

转载于:https://www.cnblogs.com/travelller-java/p/5385157.html

相关文章:

  • Oracle SQL monitor
  • HTML 利用MAP创建图片中的链接的映射
  • CSS选择器(二)
  • 2016.04.14,英语,《Vocabulary Builder》Unit 14
  • 实验三 白盒测试
  • php 实现简单的登录
  • 一百多套开发视频教程的下载地址
  • jquery中attr和prop的区别
  • 利用qmake生成Makefile文件
  • 结对编程——关于Fault、Error、Failure程序设计
  • 流程控制
  • javascript之数组操作
  • Vmware复制或克隆Linux系统后找不到eth0的解决方案
  • Git(三):Git 使用规范流程
  • iOS之UI组件整理
  • 【前端学习】-粗谈选择器
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Android交互
  • Angular 4.x 动态创建组件
  • es6要点
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Invalidate和postInvalidate的区别
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • js操作时间(持续更新)
  • Linux下的乱码问题
  • mysql innodb 索引使用指南
  • Python_OOP
  • React中的“虫洞”——Context
  • Redis学习笔记 - pipline(流水线、管道)
  • 第十八天-企业应用架构模式-基本模式
  • 关于springcloud Gateway中的限流
  • 开源地图数据可视化库——mapnik
  • 普通函数和构造函数的区别
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 什么是Javascript函数节流?
  • 使用parted解决大于2T的磁盘分区
  • 一份游戏开发学习路线
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​iOS安全加固方法及实现
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)iOS字体
  • ***监测系统的构建(chkrootkit )
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Core 2.1路线图
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .NET面试题(二)