第2章 JSP语法

文章目录

  • 第2章 JSP语法
  • @[toc]
  • 2.1 JSP 页面的基本结构
  • 2.2 变量和方法的声明
  • 声明变量
  • 定义方法
  • 2.3 Java程序片
  • 2.4 Java表达式
  • 2.5 JSP中的注释
  • 2.6 JSP标记指令
  • 1. page指令标记
  • 2. include指令标记
  • 2.7 JSP动作标记
  • 1. include动作标记
  • 2. param动作标记
  • 3. forward动作标记
  • 4. useBean动作标记

2.1 JSP 页面的基本结构

  1. 普通HTML标记
  2. JSP标记
  3. 变量和方法声明
  4. Java程序片
  5. Java表达式

JSP页面被第一次请求时:







JSP文件

Java文件

字节码文件

执行HTML

执行JSP标记

执行Java表达式


2.2 变量和方法的声明

在"<%!“和”%>"标记之间声明变量和方法,放置Java声明语句。

声明变量

例如:

<%!	int a, b = 10, c;
	String tom = null;
%>

变量在整个JSP页面内都有效,知道JSP引擎关闭才会释放。

定义方法

在"<%!“和”%>"标记之间定义方法,在整个JSP页面有效,可以被Java程序片调用。

例如:

<%!
    double multi(double x, double y) { return x*y; }
%>

2.3 Java程序片

可以在"<%“和”%>之间插入Java程序片,多个程序片被按顺序执行,程序片中的变量称为局部变量。

jsp里js怎么调用Java变量 jsp中怎么调用方法_include指令

如果成员变量不想同时被多个用户同时调用,要用synchronized关键字修饰:

<%!
    int count = 0;
	synchronized void setCount() { count++; }
%>
<%
	setCount();
	out.println(count);
%>

一个JSP的Java程序片会被按顺序执行,并且在后继的程序片中有效,所有又是可以将一个Java程序片分割成多个Java程序片,中间夹插其他标记元素(如HTML等)。

2.4 Java表达式

可以在"<%=“和”%>之间插入一个表达式,这个表达式必须能求职,由服务器负责计算。JSP页面中表达式的值表示成字符串形式。

<%@ page contentType="text/html;charset=UTF-8" %>
<%
	int x = 12, y = 9;
%>
Calculate x+y+x%y, thus<%=x%>+<%=y%>+<%=x%>%<%=y%>:<%=x+y+x%y%>

2.5 JSP中的注释

  1. HTML注释:<!---->之间加入
  2. JSP注释:<%----%>之间加入

2.6 JSP标记指令

1. page指令标记

page指令用来定义整个JSP页面的属性:

<%@ page 属性1="value 1" 属性2="value 2" ... %>

具体如下:

属性名

作用

contentType属性

确定JSP页面响应的MIME类型和JSP字符的编码

JSP只能为contentType指定一个值,不允许使用两次contentType

language属性

目前只能取Java

import属性

为JSP页面引入Java环境提供的包

<%@ page import="java.io.*" %>

session属性

是否设置session对象,默认true


2. include指令标记

在JSP页面整体嵌入一个文件,就可以使用include指令标记,格式:

<%@ include file = "文件URL" %>

include标记会在指令位置处静态插入一个文件,被插入的文件必须是可访问可使用的。所谓静态插入,就是将多个文件合并成一个新的JSP页面,然后供引擎进行转义,所以所有文件的page contentType属性必须相同,或只指定为一个值。

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file = "myfile/ok.txt" %>
<HTML>...</HTML>

2.7 JSP动作标记

动作标记是一种特殊标记,它影响JSP运行时的功能。

1. include动作标记

include动作标记的格式为:

<jsp:include page = "文件的URL">

<jsp:include page = "File's URL">
	param 子标记
</jsp:include>

include动作标记会令JSP页面动态包含一个文件,即JSP运行时才将文件加入。

include动作标记和include指令标记都是处理所需文件,但处理方式不同,include指令标记是在编译阶段处理,被处理文件依赖于原文件,但处理速度更快,include动作标记实在运行时处理文件,被处理文件语法逻辑独立,可以使用param子标记灵活处理,但执行速度较慢。

2. param动作标记

param标记为其他标记提供附加信息,不能独立使用。格式如下:

<jsp:param name="名字" value="给定的值">

使用方法:

<%-- use.jsp --%>
<%@ page contentType="text/html;charset=UTF-8" %>
<% double a=3, b=4, c=5; %>
<jsp:include page="calct.jsp">
    <jsp:param name="E1" value="<%=a%>"/>
    <jsp:param name="E2" value="<%=b%>"/>
    <jsp:param name="E3" value="<%=c%>"/>
</jsp:include>
<%-- calcu --%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%!
    public String gatLen(double a, double b, double c) {
    	return (a+b+c).toString;
	}
%>
<%
	String s1 = request.getParameter("E1");
	double a = Double.parseDouble(s1);
	double b, c;
	...
%>
<br>
Length=<%= getLen(a, b, c)%>

3. forward动作标记

forward语法格式:

<jsp:forward page="target URL"/>

<jsp:forward page = "target URL">
	param 子标记
</jsp:forward>

该指令作用是:从此位置停止当前页面执行,转向执行page指定的JSP页面。

forward转移后,浏览器中现实的URL仍是转向前的URL地址,因此刷新后返回原来的界面。

4. useBean动作标记

将在第四章详细讨论。