JSP指令是给JSP引擎用的,即给服务器用的。作用是告诉服务器,该如何处理JSP中除了指令之外的内容。包括page、include、taglib三种

基本的语法格式:<%@ 指令名称 属性1="值1" 属性2="值2" ....%>

1、page指令

page指令最简单的使用方式:<%@ page pageEncoding="UTF-8"%> 但myEclipse中的JSP模板中自动加入java.util.*包

JSP只能只编译一次就可以到处使用

作用是定义JSP页面的各种属性,有如下属性:

(1)language : 指示JSP页面中使用脚本语言。默认值为java(其他脚本语言如:asp、php)

(2)import:导入JSP中的Java脚本使用到的类或包。(如同Java中的import语句)

==> JSP引擎自动导入以下包中的类:javax.servlet.*; javax.servlet.http.*; javax.servlet.jsp.*;

==> 注意:一个import属性可以导入多个包,用逗号分隔

(3)pageEncoding : 通知引擎读取JSP时采用的编码(因为要翻译)。还有contentType属性的作用

==> pageEncoding的实现原理:

==> 从上一节的.java的代码中可以看出在翻译后的文件中有输出了一句response.setContentType("text/html;charset=UTF-8");

(4)contentType : 指定当前页面的MIME类型,作用与Servlet中的response.setContentType()作用完全一致

==> contentType="text/html;charset=utf-8" 最终的效果是在翻译后的文件中有输出了一句response.setContentType("text/html;charset=UTF-8");

(5)sessioin : 指示JSP页面是否创建HttpSession对象。默认值是true,创建

(6)errorPage : 指示当前页面出错后转向(转发)的页面。若其值即目标页面如果以"/"(当前应用)开头就是绝对路径(不加项目名)

==> 配置全局错误提示页面,在web.xml中使用以下两种方法设置

	若出现java.lang.Exception就转到error.jsp
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
-------------------------------------------------
若出现404错误(找不到页面)就转到404.jsp
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>

(7)isErrorPage : 指示当前页面是否产生Exception对象。若产生就可以使用这个Exception对象对错误进行查看处理

(8)buffer : 指示JSP用的输出流的缓存大小。默认值是8Kb。若值为none则没有缓存

(9)autoFlush : 自动刷新输出流的缓存。默认为true,即缓存满后就刷新数据

(10)isELIgnored : 是否忽略EL表达式。${1+1}。默认值是false

(11)extends : 指示JSP对应的Servlet类的父类。一般不要修改

(12)isThreadSafe : 指示页面是否是线程安全的(过时了)。默认是true

==> true:不安全的

==> false:安全的。指示JSP对应的Servlet实现SingleThreadModel接口

2、include指令

(1)静态包含:使用include指令

==> 作用:包含其他的组件

==> 语法:<%@include file=""%> file指定要包含的目标组件。路径如果以"/"(当前应用)开头就是绝对路径

==> 原理:把目标页面的内容通过out.print输出到源页面的service方法中

(2)动态包含:使用的jsp动作

==> 语法:<jsp:include page=""/> 路径如果以"/"(当前应用)开头就是绝对路径

(3)说明:开发中尽量使用静态包含,因为动态包含每次访问的时候都会执行一次,而静态包含只编译一次就可以一直使用

==> 分析:静态包含是两个jsp文件只编译成一个.class文件;而动态包含是,两个jsp文件编译成各自的.class文件,然后这两个class文件在tomcat服务器中进行整合,最终输出结果

3、taglib指令

作用:引入外部的标签

语法:<%@taglib uri="标签名称空间" prefix="前缀"%> 如:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

4、实例

(1)errorPage和isErrorPage实例

	1a.jsp中的部分代码:
<%@ page pageEncoding="UTF-8" errorPage="/jspzhiling/1b.jsp"%>
<body>
表达式1/0是否有错?
<%
out.print(1/0);
%>
</body>
-----------------------------
1b.jsp中的部分代码:
<%@ page pageEncoding="UTF-8" isErrorPage="true"%>
<body>
这是错误页面,如果1a.jsp发生错误,就跳转到此页面<br />
错误信息是:
<%
out.print(exception.getMessage());
%>
</body>
-----------------------------
访问http://127.0.0.1:8080/testJsp/jspzhiling/1a.jsp
结果:(可知页面显示1b.jsp的内容,但是浏览器的地址没有改变)
这是错误页面,如果1a.jsp发生错误,就跳转到此页面
错误信息是: / by zero

(2)include实例

	2a.jsp中的部分代码:
1<%@ include file="/jspzhiling/2c.jsp"%>
--------------------------------------------------
2b.jsp中的部分代码:
1<jsp:include page="/jspzhiling/2c.jsp"></jsp:include>
--------------------------------------------------
2c.jsp中的部分代码:
<body>
2
</body>
--------------------------------------------------
访问http://127.0.0.1:8080/testJsp/jspzhiling/2a.jsp和http://127.0.0.1:8080/testJsp/jspzhiling/2b.jsp
结果都为:
12

JSP(2) - JSP指令 - 小易Java笔记的更多相关文章

  1. JSP(3) - 9个JSP内置对象 - 小易Java笔记

    1.9个JSP内置对象 内置对象引用名称     对应的类型 request HttpServletRequest response HttpServletResponse config Servle ...

  2. servlet(6) - servlet总结 - 小易Java笔记

    垂阅前必看: 这都是我总结的我觉得是学习servlet应该掌握的,我在学习期间也做了一个博客项目来让所学的知识得以巩固.下面就是博客项目链接.前面的servlet相关的笔记总汇,还有就是我把觉得在学习 ...

  3. JSP(1) - JSP简介、原理、语法 - 小易Java笔记

    1.JSP简介 (1)JSP的全称是Java Server Pages(运行在服务器端的页面),实际就是Servlet(学习JSP的关键就是时刻联想到Servlet) (2)JSP.Servlet各自 ...

  4. servlet(4) - servletAPI - 小易Java笔记

    Servlet规范核心类图 1.请求和响应对象 ==> HTTP协议包含请求和响应部分. ==> HttpServletRequest就代表着请求部分 ==> HttpServlet ...

  5. servlet(2) - 利用MyEclipse新建一个servlet - 小易Java笔记

    1.Tomcat在MyEclipse中集成 ==> Window-preferences-MyEclipse-Servers-Tomcat-Tomcat 6.x-点击右侧的Browse,选择你的 ...

  6. servlet(3) - servlet知识点 - 小易Java笔记

    1.servlet的生命周期 (1)容器最终要调用service方法为客户进行服务.(此处“容器”指java运行的环境,tomcat是jsp/servlet的容器) ==> 在内存中一个Serv ...

  7. servlet(1) - 手写第一个servlet程序 - 小易Java笔记

    声明:如tomcat的安装目录为D:\Java\tomcat6,下面要根据tomcat的安装目录而定 1. 建立程序的文件结构 ==>找到tomcat的安装目录,在webapps目录下新建一个名 ...

  8. servlet(5) - Cookie和session - 小易Java笔记

    1.会话概述 (1)会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. (2)会话过程中的数据不宜保存在request和servle ...

  9. 牛客网Java刷题知识点之什么是JSP的3大常用指令、JSP的6大哪些动作、JSP中include指令和include动作有什么区别

    不多说,直接上干货! JSP的3大常用指令 包含指令(Include directive):用来包含文件和合并文件内容到当前的页面. 页面指令(Page directive):用来定义JSP页面中特定 ...

随机推荐

  1. 九度OJ--Q1165

    import java.util.ArrayList;import java.util.Scanner; /* * 题目描述: * 读入数据string[ ],然后读入一个短字符串.要求查找strin ...

  2. ubuntu中tensorflow安装

    首先加入了CUDA_HOM环境变量,然后下载了一个分析工具库,结果E: 无法定位软件包 libcupti-dev,在etc/apt 的sources.list 添加镜像源 deb http://arc ...

  3. Tensorflow编程基础之Mnist手写识别实验+关于cross_entropy的理解

    好久没有静下心来写点东西了,最近好像又回到了高中时候的状态,休息不好,无法全心学习,恶性循环,现在终于调整的好一点了,听着纯音乐突然非常伤感,那些曾经快乐的大学时光啊,突然又慢慢的一下子出现在了眼前, ...

  4. [leetcode-640-Solve the Equation]

    Solve a given equation and return the value of x in the form of string "x=#value". The equ ...

  5. HDU 4571 Travel in time(最短路径+DP)(2013 ACM-ICPC长沙赛区全国邀请赛)

    Problem Description Bob gets tired of playing games, leaves Alice, and travels to Changsha alone. Yu ...

  6. 第16讲——C++中的代码重用

    C++的一个主要目标是促进代码重用.除了我们之前学的公有继承,我们在这一讲将介绍另一种代码重用的方法——类模板.

  7. u盘中毒后文件夹没显示了

    今日,我的U盘插了有毒的电脑,直接中毒了,先是显示有木马,后是自行产生一些文件,接着文件夹没了,后来自己终于解决了,分享一下,自己先用工具将有嫌疑的文件提炼出来,经自行检查后处理,接着打开文件夹选项, ...

  8. winform 控件大小随着窗体自适应

    3个方法: #region 控件缩放变量        double formWidth;//窗体原始宽度        double formHeight;//窗体原始高度        doubl ...

  9. java线程(2)——模拟生产者与消费者

    前言: 我们都听说过生产者和消费者的例子吧,现在来模拟一下.生产者生产面包,消费者消费面包.假定生产者将生成出来的面包放入篮子中,消费者从篮子中取.这样,当篮子中没有面包时,消费者不能取.当篮子满了以 ...

  10. NET中解决KafKa多线程发送多主题

    NET中解决KafKa多线程发送多主题 一般在KafKa消费程序中消费可以设置多个主题,那在同一程序中需要向KafKa发送不同主题的消息,如异常需要发到异常主题,正常的发送到正常的主题,这时候就需要实 ...