目录

JSP - 语法

在本章中,我们将讨论JSP中的语法。 我们将理解JSP开发所涉及的简单语法(即元素)的基本用法。

JSP的元素

JSP的元素已在下面描述 -

Scriptlet

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>

NOTE - 假设Apache Tomcat安装在C:\apache-tomcat-7.0.2中,并且您的环境是根据环境设置教程设置的。

让我们将上述代码保存在JSP文件hello.jsp ,并将此文件放在C:\apache-tomcat7.0.2\webapps\ROOT目录中。 使用URL http://localhost:8080/hello.jsp浏览相同的http://localhost:8080/hello.jsp 。 上面的代码将生成以下结果 -

你好,世界

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表达式

JSP表达式元素包含一个脚本语言表达式,该表达式被计算,转换为String,并插入表达式出现在JSP文件中的位置。

因为表达式的值转换为String,所以您可以在JSP文件中使用文本行中的表达式,无论它是否用HTML标记。

表达式元素可以包含根据Java语言规范有效的任何表达式,但不能使用分号来结束表达式。

以下是JSP表达式的语法 -

<%= 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> 

上面的代码将生成以下结果 -

<p>Today's date: 11-Sep-2010 21:24:25</p>

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> 

上面的代码将生成以下结果 -

<h2>A Test of Comments</h2>  

在各种情况下,您可以使用少量特殊构造来插入注释或字符,否则这些注释或字符将被特殊处理。 这是一个总结 -

S.No. 语法和目的
1

《%-- comment --%》

JSP评论。 被JSP引擎忽略。

2

《!-- comment --》

HTML评论。 被浏览器忽略。

3

《\%

表示静态

4

%\》

表示静态%> literal。

5

\'

使用单引号的属性中的单引号。

6

\"

使用双引号的属性中的双引号。

JSP指令

JSP指令会影响servlet类的整体结构。 它通常有以下形式 -

<%@ directive attribute="value" %>

指令标签有三种类型 -

S.No. 指令和说明
1

《%@ page ... %》

定义与页面相关的属性,例如脚本语言,错误页面和缓冲要求。

2

《%@ include ... %》

在翻译阶段包含一个文件。

3

《%@ taglib ... %》

声明包含页面中使用的自定义操作的标记库

我们将在JSP-Directives的单独章节中解释JSP指令

JSP动作

JSP操作使用XML语法中的构造来控制servlet引擎的行为。 您可以动态插入文件,重用JavaBeans组件,将用户转发到另一个页面,或者为Java插件生成HTML。

Action元素只有一种语法,因为它符合XML标准 -

<jsp:action_name attribute="value" />

Action元素基本上是预定义的函数。 下表列出了可用的JSP操作 -

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 - Actions的单独章节中解释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

这只是它的同义词,用于调用已转换的servlet类定义的方法。

9

Exception

Exception对象允许指定的JSP访问异常数据。

我们将在JSP - Implicit Objects的单独章节中解释JSP Implicit Objects

Control-Flow Statements

您可以在JSP编程中使用Java的所有API和构建块,包括决策语句,循环等。

Decision-Making Statements

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> 

上面的代码将生成以下结果 -

<p>It's Wednesday.</p>

循环语句

您还可以在Java中使用三种基本类型的循环块: for, while, and 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> 

上面的代码将生成以下结果 -

<font color="green" size="1">
   JSP Tutorial
</font>
<font color="green" size="2">
   JSP Tutorial
</font>
<font color="green" size="3">
   JSP Tutorial
</font>

以上示例可以使用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> 

上面的代码将生成以下结果 -

<font color="green" size="1">
   JSP Tutorial
</font>
<font color="green" size="2">
   JSP Tutorial
</font>
<font color="green" size="3">
   JSP Tutorial
</font>

JSP运算符

JSP支持Java支持的所有逻辑和算术运算符。 下表列出了所有具有最高优先级的运算符出现在表的顶部,那些最低的运算符出现在底部。

在表达式中,将首先评估更高优先级的运算符。

类别 操作者 关联性
Postfix ()[]。 (点运算符) 左到右
Unary ++ - - ! 〜 右到左
Multiplicative * /% 左到右
Additive + - 左到右
Shift >> >>> << 左到右
Relational >> = << = 左到右
Equality ==!= 左到右
Bitwise AND& 左到右
Bitwise XOR ^ 左到右
Bitwise OR | 左到右
Logical AND && 左到右
Logical OR || 左到右
Conditional?: 右到左
Assignment = + = - = * =/=%= >> = << =&= ^ = | = 右到左
Comma, 左到右

JSP文字

JSP表达式语言定义了以下文字 -

  • Boolean - true和false

  • Integer - 与Java一样

  • Floating point - 就像在Java中一样

  • String - 带单引号和双引号; “被转义为\”,“被转义为\”,\被转义为\\。

  • Null - 无效

↑回到顶部↑
WIKI教程 @2018