提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
目录
前言
本章学习的是JSP的语法
2.1 JSP页面的基本结构
一个JSP页面可由5种元素组合而成:
(1) 普通的HTML标记和JavaScript标记。
(2) JSP标记,如指令标记、动作标记。
(3) 变量和方法的声明。
(4) Java 程序片。
(5) Java 表达式。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>页面标题</title>
</head>
<body>
<%-- 这是JSP注释 --%>
<%-- 在这里可以写Java代码 --%>
<h1>页面内容</h1>
</body>
</html>
2.2 声明变量和定义方法
在<%!和%>标记符号之间声明变量,定义方法以及定义类。
<%! 声明变量或定义方法 %>
2.2.1声明变量
<%!和%>之间声明的变量在整个JSP页面内都有效,与标记符在JSP页面中所在的书写位置无关,但习惯上把<%!、%> 标记符写在JSP页面的前面。
对于在“<%!”和“%>”标记符号之间定义方法,可以在Java程序片中调用该方法。方法内声明的变量只在该方法内有效,当方法被调用时,方法内声明的变量被分配内存,方法被调用完毕即可释放这些变量所占的内存。 对于在“<%!”和“%>”标记符号之间定义类,可以在Java程序片中使用该类创建对象。
2.3 Java 程序片
可以在<%和%>之间插入Java 程序片。
一个JSP页面可以有许多程序片,这些程序片将被Tomcat服务器按顺序执行。 在程序片中声明的变量称作JSP页面的局部变量。局部变量的有效范围与其声明的位置有关,即局部变量在JSP页面后继的所有程序片以及表达式部分内都有效。
当多个用户请求一个JSP页面时,Tomcat服务器为每个用户启动一个线程,该线程负责执行字节码文件响应用户的请求。Tomcat服务器使用多线程来处理程序片.
HTML中的标记
<%
java程序片
%>
HTML中的标记
<%
java程序片
%>
2.4 Java表达式
可以在<%=和%>之间插入一个可求值的表达式(注意:不可插入语句, <%=是一个完整的符号,“<%”和“=”之间不要有空格)。
Java表达式可以写在<HTML>之前,也可以写在<HTML>和</HTML>之间或</HTML>之后。
<%=X+Y%>
2.5JSP中的注释
HTML注释:
在标记符号“<!--”和“-->”之间加入注释内容:
<!-- 注释内容 -->
JSP注释:
在标记符号“<%--”和“--%>”之间加入注释内容:
<%-- 注释内容 --%>
2.6JSP指令标记
2.6.1page指令标记
page 指令用来定义整个JSP页面的一些属性和这些属性的值。
<%@ page 属性1="属性1的值" %>
<%@ page 属性2="属性2的值" %>
… …
<%@ page 属性n="属性n的值" %>
也可以用一个page指令指定多个属性的值,如:
<%@ page 属性1="属性1的值" 属性2= "属性2的值" ……%>
page 指令标记可以指定属性: contentType、import、language、session、buffer、auotFlush 、isThreadSafe、pageEncoding 、inform的值
2.6.1.1contentType属性
属性值的一般形式是: "MIME类型"
<%@ page contentType="text/html " %>
page指令只能为contentType指定一个值,不允许两次使用page指令给contentType属性指定不同的属性值。
2.6.1.2pageEncoding 属性
只能为pageEncoding指定一个值,不允许两次使用page指令给pageEncoding属性指定不同的或相同的属性值。
例如:
<%@ page pageEncoding = "utf-8" %> 那么保存JSP页面应当将“编码”选择为“utf-8”
2.6.1.3language属性
language属性定义JSP页面使用的脚本语言,该属性的值目前只能取"java"。
为language属性指定值的格式是:
<%@ page language="java" %>
language属性的默认值是"java",即如果在JSP页面中没有使用page指令指定该属性的值的,那么,JSP页面默认有如下的page指令:
<%@ page language="java" %>
2.6.1.4import 属性
该属性的作用是为JSP页面引入Java运行环境提供的包中的类。
<%@ page import="java.io.*", "java.time.LocalDate" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
2.6.1.5session属性
session 属性用于设置是否需要使用内置的session对象。session的属性值可以是true或false。session属性默认的属性值是true。
2.6.1.6buffer属性
内置输出流对象out负责将服务器的某些信息或运行结果发送到用户端显示。buffer属性用来指定out设置的缓冲区的大小或不使用缓冲区。
<%@ page buffer= "24kb" %>
2.6.1.7autoFlush属性
autoFlush可以取值true或false。autoFlush属性的默认值是true。
2.6.1.8isThreadSafe 属性
isThreadSafe的属性值可取true或false。
2.6.1.9info 属性
info属性的属性值是一个字符串,其目的是为JSP页面准备一个常用但可能要经常修改的字符串。
<%@ page info= "we are students" %>
2.6.2 include 指令标记
如果需要在JSP页面内某处整体嵌入一个文件,就可以考虑使用include指令标记,其语法格式如下:
<%@ include file= "文件的URL " %>
2.7jsp动作标记
2.7.1include动作标记
include 动作标记语法格式为:
<jsp:include page= "文件的URL" />
或
<jsp:include page= "文件的URL" >
param子标记
</jsp:include>
2.7.2param动作标记
param标记以“名字—值”对的形式为其他标记提供附加信息。
<jsp:param name= "参数" value= " 参数的值" />
2.7.3 forward 动作标记
<jsp:forward page="要转向的页面" />
或
<jsp:forward page="要转向的页面" >
param子标记
</jsp:forward>
指令的作用是:从该指令处停止当前页面的执行,而转向执行page属性指定的JSP页面。需要注意的是,当前页面使用forward动作标记转向后,尽管用户看到了转向后的页面的效果,但浏览器地址栏中显示的仍然是转向前的JSP页面的URL地址,因此,如果刷新浏览器的显示,将再次执行当前浏览器地址栏中显示的JSP页面。
总结
本章学习的jsp语法在后续的写程序代码中起到重要作用