JSP基础语法
在本章中,我们将了解和学习JSP语法。并了解JSP开发涉及的简单语法(即元素)的基本用法。
为了方便演示,使用Eclipse创建一个动态Web项目:jspsyntax,用于运行以下涉及到的示例代码。
JSP的元素
JSP的元素如下所述:
1.小脚本
小脚本(scriptlet)可以将任何数量的小脚本包含在页面中,小脚本是有效的JAVA语言语句,变量或方法声明或表达式。
以下是小脚本的语法 -
<% code fragment %>
可以将上述语法编写为XML的形式,效果相同,如下所示:
<jsp:scriptlet> code fragment </jsp:scriptlet>
编写的任何文本,HTML标签或JSP元素必须在scriptlet之外。 以下是JSP的简单和第一个例子 -
文件:helloworld.jsp -
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Hello World</title> </head> <body> Hello World! <br /> <% out.println("Your IP address is " + request.getRemoteAddr()); %> </body> </html>
执行上面示例代码,得到以下结果 -
2.JSP声明
声明一个或多个变量或方法,可以在Java代码中编写,之后在JSP文件中使用。 在JSP文件中使用该变量或方法之前,必须先声明变量或方法。
以下是JSP声明的语法 -
<%! declaration; [ declaration; ]+ ... %>
可以将上述语法编写为XML的形式,效果相同,如下所示:
<jsp:declaration> code fragment </jsp:declaration>
以下是JSP声明的示例 -
<%! int i = 0; %> <%! int a, b, c; %> <%! Circle a = new Circle(2.0); %>
3.JSP表达式
JSP表达式元素包含一个脚本语言表达式,它被评估求值,转换为一个字符串,并插入到表达式显示在JSP文件中的指定输出位置。
因为表达式的值被转换为字符串,所以可以在JSP文件中使用文本行内的表达式,无论是否使用HTML标记HTML。
表达式元素可以包含根据Java语言规范有效的任何表达式,但不能使用分号来结束表达式。
以下是JSP表达式的语法 -
<%= expression %>
可以将上述语法编写为XML的形式,效果相同,如下所示:
<jsp:expression> expression </jsp:expression>
以下示例显示了JSP表达式 -
文件:express.jsp -
<html> <head><title>A Comment Test</title></head> <body> <p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p> </body> </html>
上述代码将产生以下结果 -
Today's date: 11-Sep-2017 21:24:25
4.JSP注释
JSP注释标记JSP容器应忽略的文本或语句。当您想要隐藏或注释掉JSP页面的一部分时,JSP注释很有用。
以下是JSP注释的语法 -
<%-- This is JSP comment --%>
以下示例显示了JSP注释 -
<html> <head><title>A Comment Test</title></head> <body> <h2>A Test of Comments</h2> <%-- This comment will not be visible in the page source --%> </body> </html>
上述代码将产生以下结果 -
A Test of Comments
可以使用少量特殊结构,在各种情况下可以插入特别处理的注释或字符。下面是一个总结 -
编号 | 语法 | 说明 |
---|---|---|
1 | <%-- comment --%> |
JSP注释,它会被JSP引擎忽略。 |
2 | <!-- comment --> |
HTML注释,它会被浏览器忽略。 |
3 | <\% |
表示静态的<% 字面值。 |
4 | %\> |
表示静态的%> 字面值。 |
5 | \' |
表示静态的单引号' 字面值。 |
6 | \" |
静态的单引号" 字面值。 |
5.JSP指令
JSP指令影响servlet类的整体结构。它通常具有以下形式 -
<%@ directive attribute="value" %>
有三种类型的指令标签 -
编号 | 指令 | 描述 |
---|---|---|
1 | <%@ page ... %> |
定义页面相关属性,如脚本语言,错误页面和缓冲要求等。 |
2 | <%@ include ... %> |
在编译阶段包括文件。 |
3 | <%@ taglib ... %> |
声明页面中使用包含自定义操作的标签库 |
我们将在另一章专门介绍JSP指令 - JSP指令
6.JSP动作
JSP动作使用XML语法中的结构来控制servlet引擎的行为。可以动态插入文件,重新使用JavaBeans组件,将用户转发到另一个页面,或为Java插件生成HTML。
只有一个用于动作元素语法,因为它符合XML标准 -
<jsp:action_name attribute="value" />
动作元素基本上是预定义的功能,下表列出了可用的JSP动作 -
编号 | 动作 | 描述 |
---|---|---|
1 | jsp:include |
在请求页面时包含一个文件。 |
2 | jsp:useBean |
查找或实例化一个JavaBean。 |
3 | jsp:setProperty |
设置JavaBean属性的值。 |
4 | jsp:getProperty |
将JavaBean属性的值输出。 |
5 | jsp:forward |
将请求者转发到新页面。 |
6 | jsp:plugin |
生成针对Java插件创建OBJECT 或EMBED 标记的特定于浏览器的代码。 |
7 | jsp:element |
动态定义XML元素。 |
8 | jsp:attribute |
定义动态定义的XML元素属性。 |
9 | jsp:body |
定义动态定义的XML元素的正文。 |
10 | jsp:text |
用于在JSP页面和文档中编写模板文本。 |
我们将在单独的章节解释JSP动作 - JSP动作
7.JSP隐式对象
JSP支持九个自动定义的变量,也称为隐式对象。这些变量是 -
编号 | 对象 | 描述 |
---|---|---|
1 | request |
这是与请求相关联的HttpServletRequest 对象。 |
2 | response |
这是与客户端的响应关联的HttpServletResponse 对象。 |
3 | out |
这是用于将输出发送到客户端的PrintWriter 对象。 |
4 | session |
这是与请求相关联的HttpSession 对象。 |
5 | application |
这是与应用程序上下文相关联的ServletContext 对象。 |
6 | config |
这是与该页面相关联的ServletConfig 对象。 |
7 | pageContext |
它封装了使用服务器特定的功能,如更高性能的JspWriter 对象。 |
8 | page |
这只是一个同义词,用于调用由编译的servlet类定义的方法。 |
9 | Exception |
异常对象允许指定的JSP访问异常数据。 |
我们将在单独的章节讲解JSP隐式对象 - JSP隐式对象。
8.控制流程语句
在JSP编程中使用Java的所有API和构建块,包括决策语句,循环等。如:if
,if..else
等语句。
9.决策语句
if...else
块开始像一个普通的小脚本,但是小脚本在每一行都会被闭合,并且包含小脚本标签在HTML文本中。参考以下示例代码 -
文件:ifelse.jsp -
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>IF...Else示例</title> </head> <body> <%!int day = 3;%> <% if (day == 1 | day == 7) { %> <p>今天是周末,不用上班,Oyes ~</p> <% } else { %> <p>今天是工作日,乖乖去上班 ~</p> <% } %> </body> </html>
上述代码将产生以下结果 -
现在看看下面的switch...case
块,对于不同选项匹配使用out.println()
输出不同结果 -
<%! int day = 3; %> <html> <head><title>SWITCH...CASE Example</title></head> <body> <% switch(day) { case 0: out.println("It\'s Sunday."); break; case 1: out.println("It\'s Monday."); break; case 2: out.println("It\'s Tuesday."); break; case 3: out.println("It\'s Wednesday."); break; case 4: out.println("It\'s Thursday."); break; case 5: out.println("It\'s Friday."); break; default: out.println("It's Saturday."); } %> </body> </html>
上述代码将产生以下结果 -
It's Saturday.
10.循环语句
在Java中使用三种基本类型的循环块:for
, while
以及 do…while
均可在JSP编程中使用。
下面来看看for
循环语句的示例 -
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>For循环语句示例</title> </head> <body> <%!int fontSize;%> <% for (fontSize = 1; fontSize <= 5; fontSize++) { %> <font color="green" size="<%=fontSize%>"> JSP教程 </font> <br /> <% } %> </body> </html>
上述代码将产生以下结果 -
以上示例可以使用while
循环编写,代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>While循环语句示例</title> </head> <body> <%!int fontSize;%> <% while (fontSize <= 5) { %> <font color="green" size="<%=fontSize%>"> JSP教程 </font> <br /> <% fontSize++; %> <% } %> </body> </html>
上述代码将产生以下结果 -
11.JSP运算符
JSP支持Java支持的所有逻辑和算术运算符。下表列出了所有具有最高优先级的运算符放在表格的顶部,优先级较低的运算符放在底部。
在一个表达式中,将首先评估计算较高优先级的运算符。
分类 | 运算符 | 关联性 |
---|---|---|
后缀 | () [] . |
左到右 |
一元运算符 | ++ -- ! ~ |
右到左 |
乘法 | * / % |
左到右 |
加法 | + - |
|
位移 | >> >>> << |
左到右 |
关系 | > >= < <= |
左到右 |
等于 | == != |
左到右 |
按位与 | & |
左到右 |
按位异或 | ^ |
左到右 |
按位或 | 左到右 | |
逻辑与 | && |
|
逻辑或 | 左到右 | |
条件 | ?: |
右到左 |
分配 | = += -= *= /= %= >>= <<= &= ^= |
右到左 |
逗号 | , |
左到右 |
12.JSP文字
JSP表达式语言定义了以下文字 -
- 布尔 -
true
和false
- 整数 - 与Java中的一样。
- 浮点 - 与Java中的一样。
- 字符串 - 带单引号和双引号;
"
被转义为\"
,'
被转义为\'
,\
被转义为\\
。 - 空 -
null
- Java教程
- Vim教程
- Swing教程
- Spring教程
- Spring Web Services教程
- Spring MVC教程
- Spring JDBC教程
- Spring Cloud教程
- Spring Boot教程
- Spring Boot CLI教程
- Spring Batch教程
- Spring AOP教程
- PDFBox教程
- JSP教程
- JSF教程
- JPA教程
- Java面向对象设计
- Java设计模式
- Java虚拟机教程
- Java泛型教程
- Java正则表达式教程
- Java数据类型教程
- Java并发编程教程
- Java密码学教程
- Java多线程教程
- Java国际化(i18n)教程
- JavaFX教程
- Java9教程
扫描二维码
程序员编程王