在本章中,我们将讨论JSP中的语法.我们将理解JSP开发所涉及的简单语法(即元素)的基本用法.
JSP的元素已经被下面描述 :
一个scriptlet可以包含任意数量的JAVA语言语句,变量或方法声明,或者有效的表达式页面脚本语言.
以下是Scriptlet的语法 :
<% code fragment %>
您可以编写上述语法的XML等价物,如下所示 :
<jsp:scriptlet> code fragment </jsp:scriptlet>
您编写的任何文本,HTML标记或JSP元素都必须位于scriptlet之外.以下是JSP : 的简单和第一个示例;
<html> <head><title>Hello World</title></head> <body> Hello World!<br/> <% out.println("Your IP address is " + request.getRemoteAddr()); %> </body> </html>
注意 : 假设Apache Tomcat安装在C:\ apache-tomcat-7.0.2中,并根据环境设置教程设置您的环境.
让我们将上述代码保存在JSP文件中 hello.jsp 并将此文件放在 C:\ apache-tomcat7.0.2 \webapps \ROOT 目录中.使用URL http://localhost:8080/hello.jsp 浏览相同内容.上面的代码将生成以下结果 :
声明声明可以在JSP文件中稍后在Java代码中使用的一个或多个变量或方法.在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); %>
JSP表达式元素包含一个脚本语言表达式,它被计算,转换为String,以及插入表达式出现在JSP文件中的位置.
因为表达式的值转换为String,所以可以在一行文本中使用表达式,无论它是否被标记使用HTML,在JSP文件中.
表达式元素可以包含任何根据Java语言规范有效的表达式,但不能使用分号来结束表达式.
以下是JSP Expression的语法 :
<%= expression %>
您可以编写上述语法的XML等价物,如下所示 :
<jsp:expression> expression </jsp:expression>
以下示例显示了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-2010 21:24:25
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
在各种情况下,您可以使用少量特殊构造来插入注释或字符,否则特别对待.这是一个摘要 :
S.No. | 语法&目的 |
---|---|
1 | <%-- comment --%> JSP评论.被JSP引擎忽略. |
2 | <!-- comment --> HTML评论.浏览器忽略. |
3 | <\% 表示静态<%literal. |
4 | %\> 表示静态%>文字. |
5 | \' 使用单引号的属性中的单引号. |
6 |
使用双引号的属性中的双引号. |
JSP指令影响整体servlet类的结构.它通常具有以下形式 :
<%@ directive attribute="value" %>
有三种类型的指令标记 :
S.No. | 指令和说明 |
---|---|
1 | <%@ page ...%> 定义与页面相关的属性,例如脚本语言,错误页面和缓冲要求. |
2 | <%@ include ...%> 包含文件在翻译阶段. |
3 | <%@ taglib ...%> 声明包含自定义操作的标记库,在页面中使用 |
我们会解释JSP指令在单独的章节中 JSP - Directives
JSP操作使用XML语法中的构造来控制servlet引擎的行为.您可以动态插入文件,重用JavaBeans组件,将用户转发到另一个页面,或者为Java插件生成HTML.
Action元素只有一种语法,因为它符合到XML标准 :
<jsp:action_name attribute="value" />
动作元素基本上是预定义的函数.下表列出了可用的JSP Actions :
S.No. | 语法&目的 |
---|---|
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 - 操作
JSP支持九个自动定义的变量,也称为隐式对象.这些变量是 :
S.No. | 对象&描述 |
---|---|
1 | request 这是与请求关联的 HttpServletRequest 对象. |
2 | response 这是与客户端响应相关联的 HttpServletResponse 对象. |
3 | out 这是 PrintWriter 对象,用于将输出发送到客户. |
4 | session 这是与之关联的 HttpSession 对象请求. |
5 | application 这是与应用程序上下文关联的 ServletContext 对象. |
6 | config 这是与页面关联的 ServletConfig 对象. |
7 | pageContext 这封装了服务器特定功能的使用,例如更高性能 JspWriters . |
8 | page 这只是 this 的同义词,用于调用已翻译的servlet类定义的方法. |
9 | Exception 异常对象允许des访问异常数据点燃了JSP. |
我们将在单独的章节中解释JSP隐式对象 JSP - 隐式对象.
您可以在JSP编程中使用Java的所有API和构建块,包括决策语句,循环等.
if ... else 块像普通的Scriptlet一样开始,但Scriptlet在每一行都关闭,Scriptlet标签之间包含HTML文本.
<%! int day = 3; %> <html> <head><title>IF...ELSE Example</title></head> <body> <% if (day == 1 || day == 7) { %> <p> Today is weekend</p> <% } else { %> <p> Today is not weekend</p> <% } %> </body> </html>
以上代码将生成以下结果 :
Today is not weekend
现在看看下面的 switch ... case 块,它使用写了一点点不同out.println()和里面的Scriptletas :
<%! 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 Wednesday.
您还可以使用三种基本类型的循环块在Java中: for,while和do ... while 在JSP编程中阻塞.
让我们看一下 for 循环示例 :
<%! int fontSize; %> <html> <head><title>FOR LOOP Example</title></head> <body> <%for ( fontSize = 1; fontSize <= 3; fontSize++){ %> <font color = "green" size = "<%= fontSize %>"> JSP Tutorial </font><br /> <%}%> </body> </html>
以上代码将生成以下结果 :
JSP教程
JSP教程
JSP教程
以上示例可以使用 while 循环编写,如下所示 :
<%! int fontSize; %> <html> <head><title>WHILE LOOP Example</title></head> <body> <%while ( fontSize <= 3){ %> <font color = "green" size = "<%= fontSize %>"> JSP Tutorial </font><br /> <%fontSize++;%> <%}%> </body> </html>
以上代码将生成以下结果 :
JSP教程
JSP教程
JSP教程
JSP支持Java支持的所有逻辑运算符和算术运算符.下表列出了所有具有最高优先级的运算符出现在表的顶部,那些最低的运算符出现在底部.
在表达式中,将首先计算更高优先级的运算符.
Category | 运算符 | Associativity |
---|---|---|
Postfix | ()[]. (点算子) | 从左到右 |
一元 | ++ - - ! 〜 | 从右到左 |
Multiplicative | */% | 从左到右 |
添加剂 | + - | 从左到右 |
Shift | >> >>> << | 从左到右 |
关系 | > > =< < = | 从左到右 |
Equality | ==!= | 从左到右 |
按位置和 | & | 从左到右 |
按位XOR | ^ | 从左到右 |
按位OR | | | 从左到右 |
逻辑AND | && | 从左到右 |
逻辑或 | || | 从左到右 |
条件 | ?: | 对离开 |
作业 | = + = - = * =/=% =>> =<< =& = ^ = | = | 从右到左 |
逗号 | , | 从左到右 |
JSP快递离子语言定义以下文字 :
布尔 : 真假
整数 : 如在Java中
浮点 : 如在Java中
字符串 : 单引号和双引号; "被转义为",'被转义为\',\被转义为\\.
空 : null