当前位置: 代码迷 >> 综合 >> 【Java.Web】JSP —— 语法基础 —— Scripting Elements —— 声明,程序片段,表达式
  详细解决方案

【Java.Web】JSP —— 语法基础 —— Scripting Elements —— 声明,程序片段,表达式

热度:5   发布时间:2023-12-14 19:37:30.0

Scripting Elements

  • 声明(declarations)—— 
  • 程序片段(scriptlet)——
  • 表达式(expression)——

<%! this is a declaration %>
<% this is a scriptlet %>
<%= this is an expression %><%!, <%, <%= 后的空格, %>前的空格可选;



JSP声明

JSP声明用于声明与JSP对应的Servlet类的成员变量和方法。声明必须为对应语言的一个完整的声明表达式。

声明不会在response中产生任何的输出。

声明在JSP页面初始化的时候进行初始化;声明对于其他声明,程序片段和表达式是可见(available)的。

语法:

<%! declaration;[declaration;] ... ... %>

例如:

<%! int v1 = 0; %>
<%! int v2, v3, v4; %>
<%! String v5 = "hello";static int v6; %>
<%! public String amethod(int i){int (i < 3){return "i < 3";}else{return "i >= 3";}}
%>

每个JSP声明只在当前JSP文件中有效,如果希望在多个JSP文件中都包含这些声明,可以把这些声明语句写到一个单独的JSP文件中,然后在其他JSP文件中include指令把这个JSP文件包含进来。


程序片段

在JSP文件中,可以在“<%”和“%>”标记之间直接嵌入任何有效的Java程序代码,这种嵌入的程序片段成为Scriptlet。

这些程序片段默认为与JSP对应的Servlet类的service()方法中的代码;

程序片段将会在处理请求的时候被执行。

语法:

<% scriptlet %>


例如:example.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 Example</title>
</head>
<body><% String result = "Y";if (result.equals("Y")){%>The result is true;<% }else{ %>The result is false;<% } %><br/><% int a = 0;while (a < 3){%>a = <%=a %> <br/><%      a++;}%>
</body>
</html>

访问上面的JSP文件,浏览器显示如下:



表达式

如果在JSP文件的模板文本中使用该标记,那么它能把表达式的值输出到网页上;表达式中的类型的值都自动转换成字符串再进行输出。

语法:

<%= expression %>i.e.
<%= (new java.util.Date()).toLocaleString() %>

JSP表达式除了可以直接插入到模板文件中,也可以作为某些JSP标签的属性的值

<jsp:setProperty name="myPageBean" property="count"
value="<%=myPageBean.getCount + 1%>" />



总结

示例:example.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 Example</title>
</head>
<body>You hit the page:<br/><%! int hitcount=1; %><%int count = 0;hitcount++;count++;%>hitcount = <%= hitcount %> times<br/>count = <%= count %> times<br/>
</body>
</html>


在浏览器中多次访问上面的JSP文件,显示结果为:


在上面的JSP文件中, hitcount为类的成员变量,count为局部变量;成员变量(声明)只在JSP文件初始化的时候初始化一次,局部变量(程序片段)的生命周期仅限于每次的请求处理。







  相关解决方案