Java EE基础(18):JSP语法 + JSP指令(3大指令) + JSP动作

文章目录

  • 前言
  • 一、JSP语法
      • 1.JSP注释
      • 2.JSP声明变量
      • 3.JSP表达式
      • 4.JSP脚本程序
      • 5.代码示例
  • 二、JSP指令
      • 1.page 指令
      • 1.include 指令
      • 1.taglib 指令
  • 三、JSP动作
      • 3.1 动作的常见属性
      • 3.2 < jsp:include >动作元素
      • 3.3 < jsp:forward > 动作元素
  • 最后
  • 参考
  • 相关



前言

这篇文章,将会简单的讲JSP开发中的基础语法和JSP指令。

我们将知道怎么在.jsp文件中,写注释,写Java代码。以及JSP指令和JSP动作的作用和使用。

一、JSP语法

1.JSP注释

JSP注释,注释内容不会被发送至浏览器甚至不会被编译

在.jsp文件的HTML代码中,被JSP注释了的内容,在转成servlet时会被忽视掉,不会被编译。

jsp的注释格式如下:

<%-- 这里是jsp注释! --%>

2.JSP声明变量

一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。在JSP文件中,您必须先声明这些变量和方法然后才能使用它们。

可以在.jsp 文件的HTML代码中声明Java变量、方法。

JSP声明的语法格式:

	<%! 
		int num = 0;
		double num02 = 1.23;
	%>

3.JSP表达式

一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。
由于表达式的值会被转化成String,所以您可以在一个文本行中使用表达式而不用去管它是否是HTML标签。
表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式。

简单来说就是在html中写java代码的表达式,如下表达式代表的10除5。还只能写一个表达式。

	<%= 10 / 5 %>

4.JSP脚本程序

脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。

也就是说在.jsp文件的HTML代码中,写Java代码。这个可以写java代码,可以声明变量,还可以写表达式。

脚本程序的语法格式:

<% 代码片段 %>

例如:

	<%
		// 在控制台中输出文字(这是java注释)
		System.out.println("hello!");
		String s = "你好呀";	
		System.out.println(s);
	%>

5.代码示例

以下为 Java EE基础(16):JSP概念 + 简单使用 + 运行原理 文章中的first.jsp文件,你可以修改为这样,然后部署运行看一下。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%-- 这里是注释 --%>
	<%-- JSP声明变量 --%>
	<%! 
		int num = 100;
		int num02 = 50;
	%>
	<%-- JSP表达式 --%>
	<%= num-num02 %>
	<%-- JSP脚本程序 --%>
	<%
		// 在控制台中输出文字(这是java注释)
		System.out.println("hello!");
		String s = "你好呀";	
		System.out.println(s);
	%>
	<h1>这是我的第一个jsp文件</h1>
</body>
</html>

二、JSP指令

JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。

JSP指令用来设置JSP页面(在转成Servlet的时候)相关的属性。

语法格式如下:

<%@ directive attribute="value" %>

指令可以有很多个属性,它们以键值对的形式存在,用空格分开。

JSP中的三种指令标签:

指令 描述
<%@ page … %> 定义网页依赖属性,比如脚本语言、error页面、缓存需求等等
<%@ include … %> 包含其他文件
<%@ taglib … %> 引入标签库的定义

1.page 指令

Page指令为容器提供当前页面的使用说明。一个JSP页面可以包含多个page指令。

Page指令的语法格式:

<%@ page attribute="value" %>

我想你应该看到了创建的jsp页面的首行代码,Eclipse默认生成的.jsp页面 page 指令。

解释:语言 language 为 java,内容类型 contentType 为 html 字符集为 UTF-8,页面编码为 UTF-8

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

page 指令相关属性:

指令 描述
buffer 指定 out 对象使用缓冲区的大小
autoFlush 控制 out 对象的缓存区
contentType 指定当前 JSP 页面的 MIME 类型和字符编码
errorPage 指定当 JSP 页面发生异常时需要转向的错误处理页面
isErrorPage 指定当前页面是否可以作为另一个 JSP 页面的错误处理页面
extends 指定 servlet 从哪一个类继承
import 导入要使用的 Java 类
info 定义 JSP 页面的描述信息
isThreadSafe 指定对 JSP 页面的访问是否为线程安全
language 定义 JSP 页面所用的脚本语言,默认是 Java
session 指定 JSP 页面是否使用 session
isELIgnored 指定是否执行 EL 表达式
isScriptingEnabled 确定脚本元素能否被使用
pageEncoding 设置当前 JSP 文件的数据编码格式

1.include 指令

JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。

include 指令中的文件名实际上是一个相对的 URL 地址。如果您没有给文件关联一个路径,JSP编译器默认在当前路径下寻找。

注意,使用 include 指令 会被同时编译执行。他会和include中的页面一起编译成一个Servlet。

include 指令的语法格式:

<%@ include file="文件相对 url 地址" %>

1.taglib 指令

JSP API允许用户自定义标签,一个自定义标签库就是自定义标签的集合。
Taglib指令引入一个自定义标签集合的定义,包括库路径、自定义标签。

如果你有自定义标签的话,可以使用 taglib 指令引入一个自定义标签集合。

Taglib指令的语法格式:uri属性确定标签库的位置,prefix属性<指定标签库的前缀。

<%@ taglib uri="uri" prefix="prefixOfTag" %>

三、JSP动作

与JSP指令元素不同的是,JSP动作元素在请求处理阶段起作用。JSP动作元素是用XML语法写成的。
利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。

JSP动作与JSP指令不同,JSP是以XML语法写。同时,JSP动作是在请求处理阶段才起作用,而JSP指令是在jsp文件转Servlet是起作用。

动作元素只有一种语法,它符合XML标准:

<jsp:action_name attribute="value" />

动作元素基本上都是预定义的函数,JSP规范定义了一系列的标准动作,它用JSP作为前缀,可用的标准动作元素如下:

语法 描述
jsp:include 在页面被请求的时候引入一个文件。
jsp:forward 把请求转到一个新的页面。
jsp:useBean 寻找或者实例化一个JavaBean。
jsp:setProperty 设置JavaBean的属性。
jsp:getProperty 输出某个JavaBean的属性。
jsp:plugin 根据浏览器类型为Java插件生成OBJECT或EMBED标记。
jsp:element 定义动态XML元素
jsp:attribute 设置动态定义的XML元素属性。
jsp:body 设置动态定义的XML元素内容。
jsp:text 在JSP页面和文档中使用写入文本的模板

3.1 动作的常见属性

所有的动作要素都有两个属性:id属性和scope属性。

  • id属性:id属性是动作元素的唯一标识,可以在JSP页面中引用。动作元素创建的id值可以通过PageContext来调用。
  • scope属性:该属性用于识别动作元素的生命周期。 id属性和scope属性有直接关系,scope属性定义了相关联id对象的寿命。 scope属性有四个可能的值: (a) page, (b)request, ©session, 和 (d) application。

3.2 < jsp:include >动作元素

< jsp:include >动作元素用来包含静态和动态的文件。该动作把指定文件插入正在生成的页面。

前面已经介绍过include指令,它是在JSP文件被转换成Servlet的时候引入文件,而这里的jsp:include动作不同,插入文件的时间是在页面被请求的时候。

上面JSP的指令中的 include 指令,他是在JSP文件被转成Servlet时候引入文件。

而JSP动作这里的< jsp:include >动作不同,这里的include插入文件是在页面被请求的时候。

语法格式如下:

<jsp:include page="相对 URL 地址" flush="true" />

相关的属性:

  • page:包含在页面中的相对URL地址。
  • flush:布尔属性,定义在包含资源前是否刷新缓存区。

3.3 < jsp:forward > 动作元素

jsp:forward动作把请求转到另外的页面。jsp:forward标记只有一个属性page。

还动作会把请求转发到另一个页面。他只有一个属性。

语法格式如下所示:

<jsp:forward page="相对 URL 地址" />

相关的属性:

  • page:page属性包含的是一个相对URL。page的值既可以直接给出,也可以在请求的时候动态计算,可以是一个JSP页面或者一个 Java Servlet.

更多动作请看菜鸟教程JSP动作元素:https://www.runoob.com/jsp/jsp-actions.html


最后

以上就是JSP语法、JSP指令、SP动作的分享。希望对你们有帮助。

参考

菜鸟教程JSP:https://www.runoob.com/jsp/jsp-syntax.html

相关

更多Java EE基础的 Servlet与JSP相关 请点击:【Servlet + JSP】 目录

你可能感兴趣的:(#,Servlet,+,JSP)