JSP语法

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

JSP的元素如下所述-

1.1. 脚本

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

以下是脚本的语法-

<% code fragment %> 

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

<jsp:scriptlet>    code fragment </jsp:scriptlet> 

编写的任何文本,HTML标记或JSP元素都必须在脚本之外。 以下是JSP的简单第一个示例(文件:firstjsp.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(xntutor.com)</title> </head> <body>  Hello World!<br/>       <%          out.println("你的IP地址是:" + request.getRemoteAddr());       %> </body> </html> 

运行上面示例代码,产生以下结果-
脚本

1.2. 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); %> 

1.3. JSP表达式

JSP表达式元素包含一种脚本语言表达式,脚本语言表达式经过评估计算,转换为字符串(String),然后插入该表达式在JSP文件中出现的位置。
由于表达式的值已转换为字符串,因此可以在JSP文件的一行文本中使用表达式。

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

以下是JSP表达式的语法-

<%= expression %> 

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

<jsp:expression>    expression </jsp:expression> 

以下示例显示了JSP表达式使用-

<!-- file: nowdate.html --> <html>     <head><title>JSP表达式使用</title></head>     <body>       <p>今天日期是: <%= (new java.util.Date()).toLocaleString()%></p>    </body>  </html> 

1.4. JSP注释

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

以下是JSP注释的语法-

<%-- 这是被注释掉的文本或语句 --%> 

下面是一个JSP注释的示例(文件:comment.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>JSP注释的示例(xntutor.com)</title> </head> <body> <h2>标题内容H2</h2>        <%-- 此注释将在页面源中不可见 --%>  </body> </html> 

运行上面示例代码,产生以下结果-
JSP注释的示例

1.5. JSP指令

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

<%@ directive attribute="value" %> 

指令标记有三种类型-

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

1.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插件创建OBJECTEMBED标签。
7 jsp:element 动态定义XML元素。
8 jsp:attribute 定义动态定义的XML元素的属性。
9 jsp:body 定义动态定义的XML元素的主体。
10 jsp:text 用于在JSP页面和文档中编写模板文本。

1.7. JSP隐式对象

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访问异常数据。

1.8. 决策声明

if...else块像普通的脚本一样,但是脚本在每一行都关闭,并且在脚本标记之间包含HTML文本。

<%! int day = 2; %>  <html>     <head><title>IF...ELSE示例</title></head>      <body>       <% if (day == 1 || day == 7) { %>          <p>今天是周末</p>       <% } else { %>          <p>今天不是周末</p>       <% } %>    </body>  </html> 

执行上面示例代码后,得到以下结果:

今天不是周末 

下面来看看switch...case块,它与使用out.println()和内部脚本的写法有些不同 –

<%! int day = 5; %>  <html>     <head><title>SWITCH...CASE示例</title></head>     <body>       <%           switch(day) {             case 0:                out.println("今天是星期日");                break;             case 1:                out.println("今天是星期一");                break;             case 2:                out.println("今天是星期二");                break;             case 3:                out.println("今天是星期三");                break;             case 4:                out.println("今天是星期四");                break;             case 5:                out.println("今天是星期五");                break;             default:                out.println("今天是星期六");          }       %>    </body>  </html> 

执行上面示例代码后,得到以下结果:

今天是星期五 

循环语句

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

下面来看看如何在JSP中使用这几个循环 –

<%! int times=1; %>  <html>     <head><title>FOR LOOP示例</title></head>      <body>       <%for(times=1; times <= 3; times++){ %>                      <%= times %>. JSP教程<br />       <%}%>    </body>  </html> 

执行上面示例代码后,得到以下结果:

1. JSP教程 2. JSP教程 3. JSP教程 

上面的示例可以使用while循环编写,如下所示(文件:while-loop.jsp)-

<%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8"%> <%!int times = 1;%> <!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示例(xntutor.com)</title> </head> <body>     <%         while (times <= 3) {     %>     <%=times%>. JSP教程     <br />     <%         times++;     %>     <%         }     %> </body> </html> 

执行上面示例代码后,得到以下结果:
While循环示例

剩下的do...while循环示例,由读者自己去完成。

1.9. JSP文字/字面量

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

  • 布尔值 – truefalse
  • 整数 – 与Java中的一样。
  • 浮点数 – 与Java中的一样。
  • 字符串 – 单引号和双引号;
  • Null – null

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/264028.html

(0)
上一篇 2022年6月6日 22:50
下一篇 2022年6月6日 22:54

相关推荐

发表回复

登录后才能评论