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. MySQL性能分析和优化-part 1

    MySQL性能优化 平时我们在使用MySQL的时候,怎么评估系统的运行状态,怎么快速定位系统瓶颈,又如何快速解决问题呢? 本文总结了多年来MySQL优化的经验,系统介绍MySQL优化的方法. OS性能 ...

  2. UVA 11881 Internal Rate of Return(数学+二分)

    In finance, Internal Rate of Return (IRR) is the discount rate of an investment when NPV equals zero ...

  3. Python模块学习:logging 日志记录

    原文出处: DarkBull    许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪.在.NET平台中,有非常著名的第三方开源日志组件log4net ...

  4. xml解析标签

    //获取两个标签之间的值 private static string GetStr(string message, string strStart, string strEnd) { ; ; star ...

  5. SpringBoot 入门学习(HelloWord)

    前置知识 1.会利用 maven 构建项目 2.了解 Spring 注解 3.了解 RESTful API 的基本理论 4.SpringBoot 是 SpringMVC 的升级版,但两者没有必然的联系 ...

  6. springMVC笔记二

    第十四章 springmvc快速入门(注解版本) 1)springmvc快速入门(传统版) 步一:创建springmvc-day02这么一个web应用 步二:导入springioc,springweb ...

  7. combobox下拉框

    ----------------------------------------------combobox下拉框----------------------------------------- f ...

  8. BZOJ5109 CodePlus 2017大吉大利,晚上吃鸡!(最短路+拓扑排序+bitset)

    首先跑正反两遍dij求由起点/终点到某点的最短路条数,这样条件一就转化为f(S,A)*f(T,A)+f(S,B)*f(T,B)=f(S,T).同时建出最短路DAG,这样图中任何一条S到T的路径都是最短 ...

  9. win8.1 host被删,host无法修改,host无法复制进去解决方案

    1.C:\Windows\System32\drivers\etc\hosts  复制到桌面 2.删除C:\Windows\System32\drivers\etc\hosts 3.右键编辑文本--& ...

  10. BZOJ 2502: 清理雪道 | 有上下界最小流

    #include<cstdio> #include<algorithm> #include<cstring> #include<queue> #defi ...