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>


注意 : 假设Apache Tomcat安装在C:\ apache-tomcat-7.0.2中,并根据环境设置教程设置您的环境.

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

Hello World

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,所以可以在一行文本中使用表达式,无论它是否被标记使用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注释很有用.

以下是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指令

JSP指令影响整体servlet类的结构.它通常具有以下形式 :

<%@ directive attribute="value" %>


有三种类型的指令标记 :

S.No.指令和说明
1

<%@ page ...%>

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

2

<%@ include ...%>

包含文件在翻译阶段.

3

<%@ taglib ...%>

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

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

JSP操作

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隐式对象

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运算符

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

在表达式中,将首先计算更高优先级的运算符.

Category运算符Associativity
Postfix()[]. (点算子)从左到右
一元++  -   - ! 〜从右到左
Multiplicative*/%从左到右
添加剂+  -从左到右
Shift>> &GT;&GT;&GT; <<从左到右
关系> > =< < =从左到右
Equality==!=从左到右
按位置和&从左到右
按位XOR^从左到右
按位OR|从左到右
逻辑AND&&从左到右
逻辑或||从左到右
条件?:对离开
作业= + =  -  = * =/=% =>> =<< =& = ^ = | =从右到左
逗号从左到右

JSP Literals

JSP快递离子语言定义以下文字 :

  • 布尔 : 真假

  • 整数 : 如在Java中

  • 浮点 : 如在Java中

  • 字符串 : 单引号和双引号; "被转义为",'被转义为\',\被转义为\\.

  • :  null