JSP-语法


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

JSP的元素

JSP的元素如下所述:

脚本 Scriptlet

脚本可以包含任意数量的JAVA语言语句、变量或方法声明或在页面脚本语言中有效的表达式。

以下是JSP脚本的语法:
<% 代码片段 %>
您可以编写与上述语法等效的XML,如下所示:

<jsp:scriptlet>
   代码片段
</jsp:scriptlet>

您编写的任何文本,HTML标记或JSP元素都必须在jsp脚本之外。以下是JSP的简单第一个示例:

<html>
   <head><title>Hello World</title></head>
   
   <body>
      Hello World!<br/>
      <%
         out.println("Your IP address is " + request.getRemoteAddr());
      %>
   </body>
</html>

JSP声明JSP Declarations

声明在JSP文件中声明的一个或多个变量或方法,您可以在稍后的Java代码中使用它们。在JSP文件中使用变量或方法之前,必须先声明该变量或方法。

以下是JSP声明的语法:

<%! 声明语句; [ 声明语句; ]+ ... %>

您可以编写与上述语法等效的XML,如下所示:

<jsp:declaration>
   代码片段
</jsp:declaration>

以下是JSP声明的示例:

<%! int i = 0; %> 
<%! int a, b, c; %> 
<%! Circle a = new Circle(2.0); %> 

JSP表达式JSP Directives

JSP表达式元素包含脚本语言表达式,该脚本语言表达式经过评估,转换为String,并插入该表达式在JSP文件中出现的位置。

由于表达式的值已转换为字符串,因此可以在JSP文件的一行文本中使用表达式,无论是否用HTML标记。

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

以下是JSP表达式的语法:

<%= JAVA规范的字符串%>

您可以编写与上述语法等效的XML,如下所示:

<jsp:expression>
   JAVA规范的字符串
</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: 31-Jan-2020 16:24:25

JSP注释JSP Comments

JSP注释标记了JSP容器应忽略的文本或语句。当您想隐藏或“注释掉” JSP页面的一部分时,JSP注释非常有用。

以下是JSP注释的语法:

<%-- JSP注释 --%>

以下示例显示了JSP注释:

<html> 
   <head><title>A Comment Test</title></head> 
   <body> 
      <h2>注释的文本:</h2> 
      <%-- 我是注释,你看不到我 --%> 
   </body> 
</html> 

上面的代码将产生以下结果:
注释的文本:
您可以在各种情况下使用少量特殊结构来插入注释或字符,否则这些注释或字符将被特殊对待。

序号 语法和目的
1 <%-- JSP注释。被JSP引擎忽略。 --%>
2 <!-- HTML注释。被浏览器忽略。 -->
3 //单行Java代码注释,可以写在jsp脚本中。
4 /*多行Java代码注释,可以写在jsp脚本中。*/
5 “ <\% ”写在jsp脚本中表示静态的“<%”文本。
6 “ %\> ”写在jsp脚本中表示静态的“%>”文本。
7 “ \' ”写在jsp脚本中表示单引号。
8 “ \" ”写在jsp脚本中表示双引号。

另外,一个JSP文件,除了HTML注释,只要JSP文件经过浏览器的HTTP请求被servlet引擎编译成可执行文件形成HTML展示在浏览器之后,直接在该浏览器上查看源码是看不到其他注释的。

JSP指令JSP Directives

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

<%@ directive attribute="value" %>

指令标记有三种类型:

序号 指令与说明
1 <%@ page ... %>:定义与页面相关的属性,例如脚本语言,错误页面和缓冲要求。
2 <%@ include ... %>:在翻译阶段包含文件。
3 <%@ taglib ... %>:声明页面中使用的包含自定义操作的标记库

后续会单独讲JSP指令,点我查看

JSP Actions

JSP Actions使用XML语法的结构来控制Servlet引擎的行为。您可以动态插入文件,重(chong)用JavaBeans组件,将用户转发到另一个页面或为Java插件生成HTML。

Action元素只有一种语法,因为它符合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 Actions

JSP内置对象

JSP支持九个自动定义的变量,这些变量也称为内置对象。这些变量是:

序号 对象与描述
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:Exception对象允许通过指定JSP访问异常数据

后续会单独讲JSP的内置对象

控制流语句

您可以在JSP编程中使用所有API和Java构建块,包括选择,循环等。

选择语句

if…else语句块开始时像一个普通的Scriptlet,但Scriptlet在每一行HTML文本和Scriptlet标记之间的关闭:

<%! 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语句块的例子:

<%! 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:
       %>
               It's Wednesday.
       <%
               break;
            case 4:
               out.println("It\'s Thursday.");
               break;
            case 5:
               out.println("It\'s Friday.");
               break;
            default:
   	  %>
                 It's Saturday.
      <%
         }
      %>
   </body> 
</html> 

上面的代码将产生以下结果:
It's Wednesday.

循环语句

您还可以在Java中使用三种基本的循环块类型:JSP编程中的for,while和do…while块。

让我们看下面的循环示例:

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

上面的代码将产生以下结果:
在这里插入图片描述
上面的示例可以使用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支持Java支持的所有逻辑和算术运算符。下表列出了优先级最高的所有运算符出现在表格的顶部,优先级最低的运算符出现在表格的底部。

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

类别 操作员 关联性
后缀 () [] . (点运算符) 左到右
一元 ++ - - ! ~ 右到左
乘性 * / % 左到右
添加剂 + - 左到右
转移 >> >>> << 左到右
关系型 > >= < <= 左到右
平等 == != 左到右
按位与 & 左到右
按位异或 ^ 左到右
按位或 | 左到右
逻辑与 && 左到右
逻辑或 || 左到右
条件运算 ?: 右到左
分配 = += -= *= /= %= >>= <<= &= ^= =
逗号 , 左到右

JSP变量类型

  • Boolean -true and false
  • Integer -和Java一样
  • 浮点 -和Java一样
  • 字符串 -单引号和双引号;"以"进行转义,'以’进行转义,并且\以\进行转义。
  • Null -就是null了
发布了29 篇原创文章 · 获赞 10 · 访问量 1552

猜你喜欢

转载自blog.csdn.net/JAVA_php_Jack/article/details/104123730