JSP学习3-JSP语法
JSP语法
JSP表达式
先来看这样的一个例子:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<p>
这里为什么能这么使用呢?↓
今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body>
</html>
一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。
由于表达式的值会被转化成String,所以您可以在一个文本行中使用表达式而不用去管它是否是HTML标签。
表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式。
在JSP中,可以使用表达式标签(<%=)直接输出变量的值,这实际上是一个方便的语法糖,它背后是使用jspWriter的out对象来输出的。因此,使用<%= %>来生成内容是一个简化的方式,等价于使用out.print(content1);。
JSP注释
注释语法规则:
| 语法 | 描述 |
|---|---|
<%-- 注释 --%> | JSP注释,注释内容不会被发送至浏览器甚至不会被编译 |
<!-- 注释 --> | HTML注释,通过浏览器查看网页源代码时可以看见注释内容 |
<\% | 代表静态 <%常量 |
%\> | 代表静态 %> 常量 |
\' | 在属性中使用的单引号 |
\" | 在属性中使用的双引号 |
JSP指令
JSP指令用来设置与整个JSP页面相关的属性。详细资料去查文档。
JSP指令语法格式:
<%@ directive attribute="value" %>
这里有三种指令标签:
| 指令 | 描述 |
|---|---|
<%@ page ... %> | 定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等 |
<%@ include ... %> | 包含其他文件 |
<%@ taglib ... %> | 引入标签库的定义,可以是自定义标签 |
JSP行为(action)/JSP动作元素
比较重要,涉及JSP是怎么样控制servlet引擎的,能够完成插入文件、重用JavaBean组件、页面跳转(用的多)、产生HTML等多个功能。会开一个.md文档详细分析。
行为标签只有一种语法格式,它严格遵守XML标准:
<jsp:action_name attribute="value" />
| 语法 | 描述 |
|---|---|
| jsp:include | 用于在当前页面中包含静态或动态资源 |
| jsp:useBean | 寻找和初始化一个JavaBean组件 |
| jsp:setProperty | 设置 JavaBean组件的值 |
| jsp:getProperty | 将 JavaBean组件的值插入到 output中 |
| jsp:forward | 从一个JSP文件向另一个文件传递一个包含用户请求的request对象 |
| jsp:plugin | 用于在生成的HTML页面中包含Applet和JavaBean对象 |
| jsp:element | 动态创建一个XML元素 |
| jsp:attribute | 定义动态创建的XML元素的属性 |
| jsp:body | 定义动态创建的XML元素的主体 |
| jsp:text | 用于封装模板数据 |
JSP隐含对象(9个)
9个自动定义的变量,它们是在 JSP 页面中自动可用的对象,无需额外的声明或初始化。会专门开一个.md文档来讲。
JSP支持控制流语句
JSP中支持判断语句和循环语句,这也就意味着,JSP支持复杂的代码逻辑结构。
If/Else语句
输出的语句在判断块中,但不属于代码,因此多次使用了开始标记和结束标记
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%! int day = 3; %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>你好呀周五!</title>
</head>
<body>
<h3>IF...ELSE 实例</h3>
<% if (day == 1 || day == 7) { %>
<p>今天是周末</p>
<% } else { %>
<p>今天不是周末</p>
<% } %>
</body>
</html>
Switch/Case语句
它使用out.println(),并且整个都装在脚本程序的标签中
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%! int day = 3; %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>你好呀周五!</title>
</head>
<body>
<h3>SWITCH...CASE 实例</h3>
<%
switch(day) {
case 0:
out.println("星期天");
break;
case 1:
out.println("星期一");
break;
case 2:
out.println("星期二");
break;
case 3:
out.println("星期三");
break;
case 4:
out.println("星期四");
break;
case 5:
out.println("星期五");
break;
default:
out.println("星期六");
}
%>
</body>
</html>
For循环
和判断语句if/else一样,语句块内包含了HTML语法,HTML语法中又能内嵌Java变量fontSize。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%! int fontSize; %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>你好呀周五!</title>
</head>
<body>
<h3>For 循环实例</h3>
<%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
<font color="green" size="<%= fontSize %>">
我是傻瓜!
</font><br />
<%}%>
</body>
</html>
While循环语句
和for循环语句类似。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%! int fontSize=0; %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<h3>While 循环实例</h3>
<%while ( fontSize <= 3){ %>
<font color="green" size="<%= fontSize %>">
我是傻瓜!
</font><br />
<%fontSize++;%>
<%}%>
</body>
</html>
JSP运算符
JSP支持所有Java逻辑和算术运算符。
JSP字面量
字面量是指直接在页面中使用的固定值,通常是字符串、数字或布尔值。这些字面量会被直接输出到客户端的HTML中。
在JSP(JavaServer Pages)中,字面量是指直接在页面中使用的固定值,通常是字符串、数字或布尔值、浮点值。这些字面量会被直接输出到客户端的HTML中。
举例:
-
字符串字面量:
<h1>欢迎来到我的网站</h1>这里的 “欢迎来到我的网站” 就是一个字符串字面量,它会在浏览器中显示为标题。
-
数字字面量:
<p>今天是第 <%= 10 %> 天</p>在这个例子中,数字
10是一个数字字面量,它会被输出到网页上。 -
布尔字面量:
<c:if test="${true}"> <p>条件为真,显示此段文字。</p> </c:if>这里的
true是一个布尔字面量,根据条件渲染页面内容。

浙公网安备 33010602011771号