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

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文件初始化的时候初始化一次,局部变量(程序片段)的生命周期仅限于每次的请求处理。







你可能感兴趣的:(java,Web)