JSP基本语法

2023-11-05

JSP基本语法

1.1 JSP页面的基本结构

1、在传统的HTML页面文件中加入Java程序片和JSP标记就构成了一个JSP页面。

JSP页面有五种元素组成:

  • 普通的HTML标记和JavaScript标记
  • JSP标记,如指令标记、动作标记。
  • 变量和方法的声明。
  • Java程序片
  • Java表达式

2、转载于:https://www.cnblogs.com/friendan/archive/2012/05/13/2838181.html

一个JSP页面由两部分组成:

一部分是JSP页面的静态部分,如HTML,CSS标记等,用来完成数据显示和样式。

一部分是JSP页面的动态部分,如脚本程序,JSP标签等,用来完成数据处理。

  • JSP页面动态部分包括4部,分别为:

    • 脚本元素(ScriptingElement) //脚本元素用来嵌入Java代码;

    • 指令(Directive) //JSP指令用来从整体上控制Servlet的结构;

    • 动作(Action) //动作用来引入现有的组件或者控制JSP引擎的行为。

    • 注释

  • JSP页面构成元素详细信息如下图:

在这里插入图片描述

1.2 声明变量和定义方法

1、在“<%!” 和 “%>”标记符号之间声明变量和定义方法。其内容可放于JSP页面指令之后 HTML标签之前或放于HTML标签之间。

“<%!” “%>”标记符号之间声明的变量作为类的成员变量,这些变量占用的内存空间直到Tomcat服务器关闭才释放。

例:利用成员变量被所有用户共享这一性质,实现了一个简单的计数器。

<%@ page contentType="text/html" %>
<%@ page pageEncoding="utf-8" %>
<html>
	<body bgcolor=yellow>
		<%! int i=0;    //声明在<%! %>内的变量,全局变量(成员变量)
		%>
		<% i++;        //声明在<% %>内的变量,局部变量
		%>
		<p style="font-family:宋体;font-size:36">
		您是第<%=i %>个访问本站的用户。
		</p>
	</body>
</html>

结果如下:

在这里插入图片描述

启动tomcat运行这个JSP文件时,会发现当我们不断刷新页面时count的值会不断增加而i的值始终不变,也就是说定义在<%! %>内的变量会累加,而定义在<% %>内的变量不会累加。

2、定义方法和类

可以在“<%!” 和 “%>”标记符号之间定义方法,可在Java程序片中调用该方法。

可以在“<%!” 和 “%>”标记符号之间定义类,可在Java程序片中使用该类创建对象。

例:在“<%!” 和 “%>”之间定义了 multi(int x,int y)和div(int x,int y)两个方法,同时定义类一个Circle类,在程序片中使用该类创建对象,计算了圆的面积。

<%@ page contentType= "text/html" %>
<%@ page pageEncoding= "utf-8" %>
< HTML><body bgcolor= #ffccff>
<p style= "font一family:宋体;font - size:36;color:blue">
<%! double multi(double x, double y){//定义方法
		return x*y;
		}
	double div(double x, double y) {//定义方法
		return x/y;
		}
	class Circle{//定义类
		double t;
		double getArea(){
			return 3.141526*r*r;
		}
	}
%>
<% double x=8.79;
   double y=20.8;
   out.print("调用multi方法计算"+x+"与"+y+"的积:<br>");
   out.print(multi(x,y));
   out.print("<br>调用div方法计算"+y+"除以"+x+"的商,<br>");
   String s=String.format("小数点保留3位:%10.3f",div(y,x));
   out.println(s);
   Circle circle=new Circle();  //创建  Circle对象
   circle.r=3.6;
   out.print("<br>半径是"+circle.r+"的圆面积:"+circle.getArea());
%>
</p>
</body>
</HTML>

1.3 Java程序片

在JSP中,在"<% %>"之间书写的程序代码称为Java程序片,并且可以在其中插入HTML语句。

一个JSP页面中可以有多个Java程序片。

但是,在Java程序片中声明的变量在它们所在的JSP页面的所用程序片及表达式中都有效。

在程序片中声明的变量只在页面有效,是局部变量,它在不同的客户访问同一个页面的时,此变量是不能共享的。

但如果是在"<%! %>"之间声明的变量就可以在不同的客户之间共享,其有效范围是整个web应用,在服务器关闭时变量才会被释放.

"<%= %>"可以直接输出变量或表达式的值,变量或表达式的值将作为一个字符串在浏览器中输出。

下面是一个简单的计数器,用于统计当前已访问网站的人数:

<%! int counter=0;
        void counterFun(){
            counter++;
        }
     %>
    <%counterFun(); %>
    网站计数器<br>
    你是第<%=counter %>位访问者

反复刷新网页,可以看见counter在不断增加,即使同时打开多个页面counter依旧在依次整体增加

但是,我们将服务器关闭之后再打开,counter又回到了1

可见,计数器变量将在客户间共享,直至服务器关闭!

转载于:http://t.csdn.cn/GsMfa

补充:Java程序执行特点如下图所示:

在这里插入图片描述

1.4 Java表达式

可以在"<%=“和”%>"之间插入一个可求值得表达式。表达式的值有服务器负责计算,并将计算结果用字符串形式发送到用户端显示。其内容可放于JSP页面指令之后 HTML标签之前或放于HTML标签之间。

1.5 Java中的注释

1、HTML注释:在标记符号"<!–“和”-- >"之间加入注释内容。

<!--注释内容-->

2、JSP注释:在标记符号"<% --“和”-- %>"之间加入注释内容。

<% --注释内容-- %>

1.6 JSP指令标记

1.6.1 page指令标记

page指令用来定义整个JSP页面的一些属性和这些属性的值,属性用单引号或双引号括起来。

可使用多个page指令分别为每个属性指定值。

<%@ page 属性1="属性1的值" %>
<%@ page 属性2="属性2的值" %>
...
<%@ page 属性n="属性n的值" %>

也可以用一个page指令指定多个属性的值。

<%@ page 属性1="属性1的值" 属性2="属性2的值" ... %>

属性:

1、contentType:contentType属性值确定JSP页面响应的MIME类型。属性值一般形式是:

"MIME 类型"

例:用户的浏览器启用HTML解析器来解析执行所收到的信息。

<%@ page contenType="text/html" %>

​ 用户的浏览器启用本地的MS-Word应用程序来解析执行所收到的信息。

<%@ page contenType="application/msword" %>

注:contentType默认属性值为"text/html" ,page指令只能为contentType指定一个值,不允许两次使用age指令为contentType指定不同属性的值。

2、其他属性可参考一下转载链接

http://t.csdn.cn/7TANW

http://t.csdn.cn/sle2Q

http://t.csdn.cn/zkang

1.6.2 include指令标记

include指令标记用于把JSP文件,HTML网文文件等文件静态嵌入当前JSP网页中,语法如下:

<%@ include file="文件的URL"%>

1.7 JSP动作标记

动作标记是一种特殊的标记,它影响JSP运行时的功能。

1.7.1include动作标记

动作标记是将JSP等文件 动态嵌入当前JSP网页中,语法如下:

<jsp:include page="文件的URL"/>
<jsp:include page="文件的URL">
   子标记
<jsp:include/>

动态嵌入就是“先处理后包含”在运行阶段完成对文件嵌入,即在把JSP页面转译为JAVA文件时,并不合并两个页面。
注:书写动作标记<jsp:include page=“文件的URL”/>时,“JSP”“:”"include"三者之间不要有空格。

1.7.2 param动作标记

1、jsp:param动作标记,是以”名字 - 值“对的形式为其他标记提供附加信息。

<jsp:param name="参数" value="参数值" />

2、jsp:param动作标记的作用

指定某个参数的值,必须和jsp:forward,jsp:include,jsp:plugin 等一起协同使用。

1.7.3 forward动作标记

作用:从该指令处停止当前页面,转向执行page属性指定的JSP页面。
语法:

<jsp:forward page=”要转向的页面” />

<jsp:forward page=”要转向的页面”>
	param子标记
</jsp:forward>

注:当forward动作标记不需要param子标记时,必须使用第一种情况。
说明:使用forward转向新的页面之后,浏览器的地址栏中显示的仍然是转向前的JSP页面的URL地址。
子标记语法:

<jsp:param name=”名字” value=”指定给param的值”/>

使用request.getParameter(“名字”);获取子标记的属性值

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSP基本语法 的相关文章

随机推荐

  • ESP32 LVGL8.1 实现太空人显示(29)

    文章目录 一 ESP32 LVGL工程配置 1 1从库中下载LVGL代码 1 2配置适合ESP32 液晶屏 1 3编译下载测试 二 GIF图片处理 2 1下载gif图片 2 2将gif图片按照帧率导出成图片 2 3导出的图片背景处理 2 4
  • 以蛋白质功能研究为题写一篇综述论文

    我们现在知道蛋白质是生物体的基本结构和功能的基础 它不仅可以提供机体所需的能量 还可以参与其他重要的生理过程 蛋白质的结构和功能与其化学性质密切相关 本文将重点介绍蛋白质的功能 并研究一些如何利用蛋白质来探索它在生物体中的作用 通过研究 我
  • 模拟电路设计学习

    模拟电路设计 1 功能示意图 三个滑动变阻器可以对3路恒流源输出量进行调节 从而改变LED发光亮度 ADS1220芯片 需要使用SPI模式1 目前使用的是两线制接线方式 不需要校准 加热丝PID控温 在湿度变送器项目中有涉及 光电采集板不对
  • 第十四章 我的毕业之作—苏州大学过程化管理系统

    大四上学期忙活着考研 虽然考研不顺利 但是上学期着急忙慌的在所难免 没做什么事情 也没有找工作 所以去年6月份接的项目一直推迟到现在才算大功告成 这虽然不是我做的最后一个项目 但是这是我的毕业设计 导师就是我一直跟随的陈老师 这个系统在我所
  • Dubbo 在 K8s 下的思考

    作者 曹胜利 Apache Dubbo PMC 导读 Dubbo 作为高性能 Java RPC 框架的刻板印象早已深入人心 在 Cloud Native 的架构选型上 Spring Cloud 或许才是业界的优先选择 实际上 Dubbo 已
  • nodejs将rtsp视频流打上水印后通过websocket发送给前端

    网上有把rtsp流通过websocket发送到前端的方法 就是用rtspStream 具体代码如下 var stream require node rtsp stream stream new stream name name stream
  • mount nfs 共享 用户名和组更改及没有写的权限

    今天工作当中碰到了这个问题 etc exports home ict ict data NewsData 10 0 21 65 rw home ict ict data ForumData 10 0 21 75 rw 结果在客户端mount
  • 招聘专用「人才洞察工具」|One Model

    人力管理 Talent management 在企业运营中起着关键的作用 不仅有助于优化人力资源的配置 还可以提高员工绩效 满意度和忠诚度 推动企业实现可持续增长 在人工智能蓬勃发展的当下 借助 AI 进行人才洞察也成为了现实 One Mo
  • InputStream&FileOutputStream文件复制后文件变大

    InputStream is FileOutputStream fos new FileOutputStream 保存文件路径 名称 byte b new byte 1024 while is read b 1 fos write b 写入
  • 大数据运维存档(3)HDFS&ZooKeeper调优与排障

    一 HDFS篇 1 巡检 HDFS 为集群提供高可用性弹性存储服务 是集群的存储主体 每日早晚巡检HDFS 服务 包括HDFS 服务可用性 存储使用率 datanode 是否有故障盘等 1 1 HDFS 总体状态 HDFS 状态 如下的红色
  • WDK学习笔记_docker容器客户端_fabric-go-sdk

    文章目录 摘要 一 智能合约在区块链上的部署步骤 二 用docker容器创建的客户端在命令行上与区块链网络进行交互 2 1 容器内创建通道 2 2 加入通道 2 3 安装链码 2 4 初始化链码 2 5 调用链码 三 fabric go s
  • Openlayers 快速上手教程

    欢迎点赞 收藏 留言 如有错误敬请指正 1 Openlayers简介 Openlayers 是开源的前端地图框架 官网地址 https openlayers org 它的作用主要是用于展现数据并且提供相应的地图操作工具 1 1 官网首页 1
  • C语言经典100例题(33)--学习goto与clrscr()函数

    目录 题目 问题分析 代码 运行结果 题目 学习goto 与clrscr 函数 问题分析 goto关键字 goto关键字直接将控件传递给标签名称指定的语句 gotoxy 定位函数 clrscr函数 清屏函数 注意在VS2019中没有这个函数
  • Bezier曲线的公式推导及代码实现

    本文仅简述Bezier曲线的公式推导 并给出了一种代码实现 在阅读本文之前 请确保你已经对Bezier曲线的背景知识有所了解 相关知识可以通过以下课程进行学习 MOOC 计算机图形学 中国农业大学 赵明或者观看B站搬运版 算法原理 给定 n
  • mysql count 测试

    从执行结果来说 count 1 和count 之间没有区别 因为count count 1 都不会去过滤空值 但count 列名 就有区别了 因为count 列名 会去过滤空值 从执行效率来说 count 1 和 count 一样 24 6
  • 自动登录脚本

    为了解决不同网络空间的问题 本来是想通过改变环境变量的方式 不过最终还是 选择了在shell脚本下 选择了网络空间后执行脚本 同时这个库 还可以实现相应的文件传输功能 这也是比较划算的一个功能 usr bin python coding u
  • chatgpt赋能python:Python获取微信群聊天记录

    Python获取微信群聊天记录 微信是目前中国最受欢迎的社交聊天应用程序之一 许多人都习惯在微信群中进行聊天和信息交流 然而 有时我们需要保存一些重要的聊天记录 以备日后查看和备份 Python可以帮助我们实现获取微信群聊天记录的目的 为什
  • java中对于类的了解

    1 java中的万事万物都由类组成 而类可以说是对象的载体 相当于类 2 类由属性与行为组成 属性 成员变量 行为 成员方法 相当于函数 举个例子 人 对象 高 矮 瘦 胖 成员变量 走路 吃饭 上班 成员方法 calss person S
  • 锂电池为啥会爆炸

    前段时间 三星公司的旗舰智能手机GalaxyNote 7一直牢牢占据着新闻头条 这倒不是因为它的性能或是设计有多么出众 当然Note7的性能和设计的确很好 而是因为其在上市后的短时间内 即被发现内置电池存在重大安全隐患 手机无故发生爆炸的几
  • JSP基本语法

    JSP基本语法 1 1 JSP页面的基本结构 1 在传统的HTML页面文件中加入Java程序片和JSP标记就构成了一个JSP页面 JSP页面有五种元素组成 普通的HTML标记和JavaScript标记 JSP标记 如指令标记 动作标记 变量