第3章JSP语法学习记录

3.1JSP页面的基本构成

3.3.1 一个JSP页面

在HTML静态页面文件中加入和Java相关的动态元素就构成了一个JSP页面。一个JSP页面通常由以下4种基本元素组成。

①普通的HTML标记

JSP注释

Java脚本元素,包括声明、Java程序片和Java表达式

JSP标记,例如指令标记、动作标记和自定义标记

【例3-1】根据example3_1.jsp代码中的注释识别JSP页面中的基本元素。

页面文件example3_1.jsp的代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<jsp:include page="a.jsp"/><!-- JSP动作标记-->
<%! 
int i = 0;             //数据声明
int add(int x,int y){  //方法声明
	return x + y;
}
%>
<html>     <!-- HTML标记 -->
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% //Java程序片 
i++;
int result = add(1,2);
%>
i的值为<%=i%> <%--Java表达式 --%> 
<br>
1+2的和为<%=result%> <%--Java表达式 --%> 
</body>
</html>

页面文件a.jsp的代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
被example3_1.动态引用。
<br>
</body>
</html>

运行结果如下:

3.2.1JSP页面注释

JSP页面中常见的注释有以下两种:

①HTML注释

格式:<!--HTML注释 -->

在标记符“<!--”和“ -->”之间加入注释内容就构成了HTML注释。

JSP引擎对于HTML注释也要进行处理,即不将它看做是注释,如果其中有JSP代码,也会被JSP引擎处理。JSP引擎将处理之后的HTML注释交给客户端,用户通过浏览器查看JSP源文件时也能够看到HTML注释。

②JSP注释

格式:<%--JSP注释-->

在标记符“<%--”和“--%>”之间加入注释内容就构成了JSP注释。

JSP引擎将JSP注释当作真正的注释,在编译JSP页面时忽略了这部分代码,因此用户通过浏览器查看JSP源文件时无法看到JSP注释。

3.1.3时间环节——识别JSP页面元素

识别出如下JSP页面的基本元素:(已标注在注释中)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>               <!-- 指令 -->
<!DOCTYPE html>                          <!-- HTML标记 -->
<!-- 学习JSP页面的基本构成 -->                 
<%! 
    String content = "JSP页面基本构成:"; //Java变量声明
%>
<html>     <!-- HTML标记 -->
<head>
<meta charset="UTF-8">
<title>shijian3_1</title>
</head>
<body>
<%                                      //Java程序片 
    content = content +"HTML标记、JSP注释、JSP标记以及Java脚本元素";
 %> 
<%=content %>                           //Java表达式
</body>
</html>

3.2JSP脚本元素

JSP中的Java脚本元素包括声明、Java程序片以及Java表达式。

3.2.1 Java程序片

在标记符“<%”和“%>”之间插入的Java代码得成为JSP页面的Java程序片。

Java程序片的格式: <% Java代码 %>

一个JSP页面可以有人鱼段Java程序片,这些程序片将被JSP引擎(Tomcat服务器)按顺序执行。在一个程序片中声明的变量称为JSP页面的局部变量,它们在JSP页面后继的所有程序片以及表达式内都有效。

当多个客户请求一个JSP页面时,JSP引擎会为每个客户启动一个线程,不同的线程会分别执行该JSP页面中的Java程序片,程序片中的局部变量会在不同的线程中被分配不同的内存空间,因此一个客户对JSP页面局部变量操作的结果不会影响到其他客户

Java程序片的执行原理如下图所示:

Java程序片的执行原理

【例3-2】编写一个JSP页面example3_2.jsp,页面中存在一段Java程序片,该程序片内声明了一个整型局部变量n,初始值为0。

页面example3_2.jsp的代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>                          <!-- HTML标记 -->
<!-- 学习JSP页面的基本构成 -->                 
<%! 
    String content = "JSP页面基本构成:";
%>
<html>     <!-- HTML标记 -->
<head>
<meta charset="UTF-8">
<title>example3_2</title>
</head>
<body>
<% 
  int n = 0;
  n++;
  out.print("n="+n);
 %> 
</body>
</html>

如果5个客户请求example3_2.jsp页面,JSP引擎会启动5个线程,页面中Java程序片在每个线程中均会被执行一次,共执行5次;在内存中,局部变量n对应5处不同的存储空间,初始值都为0,且都仅执行了一次自加运算,所以5个不同的客户看到的页面效果是相同的。 

3.2.2 成员变量与方法的声明

成员变量和方法的声明格式如下:

<%! 变量或方法定义 %>

       在标记符“<%!”和“%>”之间声明的变量被称为JSP页面的成员变量,它们可以是Java语言允许的任何数据类型,例如:

<%!
    int n = 0;
    Date date;
%>

       成员变量在整个JSP页面内都有效(与书写位置无关),因为JSP引擎将JSP页面转译成Java文件时把这些变量作为类的成员变量,这些变量的内存空间指导服务器关闭才释放。因此,多个用户共享JSP页面的成员变量。任何用户对JSP页面成员变量操作的结果都会影响到其他用户

       在标记符"<%!"和"%>"之间声明的方法被称为JSP页面的成员方法,该方法在整个JSP页面内有效,但是该方法内定义的变量仅在该方法内有效。

【例3-3】编写一个JSP页面example3_3.jsp,页面中声明一个成员变量n(初始值为0)和方法add()(求两个整数的和)。另外,页面中还有一段Java程序片,在程序中声明一个局部变量m,并且对成员变量n和局部变量m分别进行自加。

页面example3_3.jsp的代码如下:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值