JSP指令

指令是JSP语法元素的第一种类型。它们指示JSP转换器如何翻译JSP页面为Servlet。JSP定义了多个指令,但只有page和include最重要。而taglib、tag、attribute以及variable暂时不讨论

一.page指令

可以使用Page指令来控制JSP转换器转换当前JSP页面的某些方面。例如,可以告诉JSP用于转换隐式对象out的缓冲器的大小、内容类型,以及需要导入的Java类型,等。

page指令的语法如下:

<%@ page attribute1="value1" attribute2="value2" ...%>

attribute1、attribute2等是page指令的属性。如下是page指令属性的列表:

1.import:定义一个或多个本页面中将被导入和使用的Java类型。例如:import="java.util.List"将导入List接口。可以使用通配符“*”来引入整个包,类似import=“java.util.*”。可以通过在两个类型间加入“,”分隔符来导入多个类型。如:import=“java.util.ArrayList、java.io.PrintWriter”。此外,JSP默认导入如下包:java.lang、javax.servlet、javax.servlet.http、javax.servlet.jsp。

2.session:值为True,本页面加入会话管理;值为false则相反。默认值为True,访问该页面时,若当前不存在javax.servlet.http.HttpSession实例,则会创建一个。

3.buffer:以KB为单位,定义隐式对象out的缓冲大小。必须以KB后缀结尾。默认大小为8KB或更大(取决于JSP容器)。该值可以为none,这意味着没有缓冲,所有的、数据将直接写入PrintWriter。

4.autoFlush:默认为True。若值为True,则当输出缓冲满时会自动写入输出流。而值为False,则仅当调用隐式对象flush方法时,才会写入输出流。因此,若缓冲区溢出,则会抛出异常。

5.isThreadSafe:定义该页面的线程安全级别。不推荐使用JSP参数,因为使用该参数后,会生成一些Servlet容器已经过期的代码。

6.info:返回调用容器生成的Servlet类的getServletInfo方法的结果。

7.errorPage:定义出错时用来处理错误的页面。

8.isErrorPage:标识本页是一个错误处理页面。

9.contentType:定义本页面隐式对象response的内容类型,默认是text/html。

10.pageEncoding:定义本页面的字符编码,默认为ISO-8859-1。(需要改为UTF-8)

11.isELIgnored:配置知否忽略EL表达式。

12.language:定义本页面的脚本类型,默认为JAVA。

13.extends:定义JSP实现类要继承的父类。这个属性的使用场景罕见。

14.deferredSyntaxAllowedAsLiteral:定义是否解析字符串中出现的“#{”符号,默认为false。

15.trimDirectiveWhitespaces:定义是否不输出多余的空格/空行,默认为False。

例:

<%@page import="java.util.Date,java,util.ArrayList" %>
<%@page import="java.text.DateFormat" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%>

二.include指令

可以使用include指令将其他文件中的内容包含到当前JSP页面中。一个jsp页面可以有多个include指令。若存在一个内容会在多个不同的页面中使用或一个页面不同位置使用的场景,则该内容模块化到一个include文件非常有用。

include指令的语法如下:

<%@ include file="url"%>

url为包含文件的相对路径,若URL以一个斜杠(/)开始,则该URL为文件在服务器上的绝对路径,否则为当前JSP页面的相对路径。

例:

a.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'include1.jsp' starting page</title>
</head> <body>
aaaaaaa
<%--静态包含 --%>
<%-- @ include file="/b.jsp" --%>
<%--动态包含 --%>
<jsp:include page="/b.jsp"></jsp:include>
</body>
</html>

b.jsp

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'b.jsp' starting page</title>
</head> <body>
bbbbbbbbbbb
</body>
</html>

  注意:a.jsp和b.jsp必须位于相同的目录下。

JSP技术(三)的更多相关文章

  1. java的JSP技术

    java的JSP技术 [toc] 1.JSP简介 Jsp技术是用来开发java web的页面显示的,所有MVC模型里面的视图层,所以视图层的开发 jsp不是编程语言,三个英文是java server ...

  2. Servlet,jsp,JSP技术 ,JSP编程

     一.Servlet 思考 1 浏览器可以直接打开JAVA/class文件吗? 不可以 2浏览器可以打开HTML.JS 文件吗? 可以 3 JAVA程序可以生成HTML文件吗?可以的,用IO流. 4 ...

  3. Java Web之JSP技术

    JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比htm ...

  4. Jsp技术总结

    这节我们总结一下Jsp的相关技术. 1. 什么是JSP JSP即Java Server Pages,它和servlet技术一样,都是sun公司定义的一种用于开发动态web资源的技术.该技术的最大特点在 ...

  5. JavaWeb之JSP技术总结

    刚接触JSP技术的时候让我想起了在大学学的Asp+VBScript,记得当时我还用aspstudy做了一个小的新闻发布系统作为期末作品,也正是在那时候在卢哥卢老师的指导下走向编程的道路,对编程越来越感 ...

  6. JSP第三篇【JavaBean的介绍、JSP的行为--JavaBean】

    什么是javaBean JavaBean就是一个普通的java类,也称之为简单java对象–POJO(Plain Ordinary Java Object),是Java程序设计中一种设计模式,是一种基 ...

  7. Servlet组件之 jsp 技术

    JSP 简称java服务器页面(java server page),jsp和servlet实现了我们的开发需求.对于jsp技术我们首先需要知道他的组成    HTML+java+jsp内置对象=jsp ...

  8. JavaWeb:JSP技术基础

    JavaWeb:JSP技术 快速开始 介绍 JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%> ...

  9. (八)JSP 技术知识点总结(来自那些年的笔记)

    目录 什么是 jsp Jsp 调用和运行原理(简略版) Jsp语法 Jsp指令简介 Page指令 Include指令 taglib指令 Jsp乱码问题 jsp运行原理(详细版) JSP中的九大隐式对象 ...

随机推荐

  1. FC-NVMe阅读摘要(一)

    首字母缩写 IU Information Unit BLS Basic Link Service ELS Extended Link Service PLOGI N_Port Login PRLI   ...

  2. Ubuntu使用ipython出现版本不兼容的问题

    今天租了一个ECS,然后准备安装了jupyter,准备配置,输入ipython,出现如下报错 ImportError: IPython 7.10+ supports Python 3.6 and ab ...

  3. Qtree3 - 树链剖分

    打完以后才发现写复杂了……算了懒得改了 #include <bits/stdc++.h> using namespace std; ],fa[][],size[],wson[],vis[] ...

  4. python面试的100题(16)

    Python高级 元类 42.Python中类方法.类实例方法.静态方法有何区别? 类方法: 是类对象的方法,在定义时需要在上方使用 @classmethod 进行装饰,形参为cls,表示类对象,类对 ...

  5. JUC-ThreadPool线程池

    一.为什么用线程池 例子:10年前单核CPU电脑,假的多线程,像马戏团小丑玩多个球,CPU需要来回切换. 现在是多核电脑,多个线程各自跑在独立的CPU上,不用切换效率高. 线程池的优势: 线程池做的工 ...

  6. uipath_excel

    1.excel建表 https://jingyan.baidu.com/article/95c9d20d0ee5e2ec4e75618d.html 2.具体操作 https://blog.csdn.n ...

  7. MySql -- not null 非空约束

    2.not null 非空约束 用于确保当前列的值不为空:在创建表时,如果不指定是否可以为空,字段默认可以为NULL. -- 这是上一篇默认约束创建的表 CREATE TABLE `test`.`us ...

  8. javasE--基础部分--线程

    Day23 本单元目标 一.线程的相关概念  二.线程的创建和启动★ 三.线程的停止 四.线程的常用方法 五.线程的生命周期★  六.线程的同步 七.线程的通信 八.线程的创建方式三 九.线程的创建方 ...

  9. jmeter+ant+jenkins接口自动化测试框架

    大致思路:Jmeter可以做接口测试,也能做压力测试,而且是开源软件:Ant是基于Java的构建工具,完成脚本执行并收集结果生成报告,可以跨平台,Jenkins是持续集成工具.将这三者结合起来可以搭建 ...

  10. 题解【loj537】「LibreOJ NOIP Round #1」DNA 序列

    题目描述 \(NOIP\)复赛之前\(HSD\)桑进行了一项研究,发现人某条染色体上的一段\(DNA\)序列中连续的\(k\)个碱基组成的碱基序列与做题的 \(AC\) 率有关!于是他想研究一下这种关 ...