JSP(2) - JSP指令 - 小易Java笔记
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笔记的更多相关文章
- JSP(3) - 9个JSP内置对象 - 小易Java笔记
1.9个JSP内置对象 内置对象引用名称 对应的类型 request HttpServletRequest response HttpServletResponse config Servle ...
- servlet(6) - servlet总结 - 小易Java笔记
垂阅前必看: 这都是我总结的我觉得是学习servlet应该掌握的,我在学习期间也做了一个博客项目来让所学的知识得以巩固.下面就是博客项目链接.前面的servlet相关的笔记总汇,还有就是我把觉得在学习 ...
- JSP(1) - JSP简介、原理、语法 - 小易Java笔记
1.JSP简介 (1)JSP的全称是Java Server Pages(运行在服务器端的页面),实际就是Servlet(学习JSP的关键就是时刻联想到Servlet) (2)JSP.Servlet各自 ...
- servlet(4) - servletAPI - 小易Java笔记
Servlet规范核心类图 1.请求和响应对象 ==> HTTP协议包含请求和响应部分. ==> HttpServletRequest就代表着请求部分 ==> HttpServlet ...
- servlet(2) - 利用MyEclipse新建一个servlet - 小易Java笔记
1.Tomcat在MyEclipse中集成 ==> Window-preferences-MyEclipse-Servers-Tomcat-Tomcat 6.x-点击右侧的Browse,选择你的 ...
- servlet(3) - servlet知识点 - 小易Java笔记
1.servlet的生命周期 (1)容器最终要调用service方法为客户进行服务.(此处“容器”指java运行的环境,tomcat是jsp/servlet的容器) ==> 在内存中一个Serv ...
- servlet(1) - 手写第一个servlet程序 - 小易Java笔记
声明:如tomcat的安装目录为D:\Java\tomcat6,下面要根据tomcat的安装目录而定 1. 建立程序的文件结构 ==>找到tomcat的安装目录,在webapps目录下新建一个名 ...
- servlet(5) - Cookie和session - 小易Java笔记
1.会话概述 (1)会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. (2)会话过程中的数据不宜保存在request和servle ...
- 牛客网Java刷题知识点之什么是JSP的3大常用指令、JSP的6大哪些动作、JSP中include指令和include动作有什么区别
不多说,直接上干货! JSP的3大常用指令 包含指令(Include directive):用来包含文件和合并文件内容到当前的页面. 页面指令(Page directive):用来定义JSP页面中特定 ...
随机推荐
- 九度OJ--Q1165
import java.util.ArrayList;import java.util.Scanner; /* * 题目描述: * 读入数据string[ ],然后读入一个短字符串.要求查找strin ...
- ubuntu中tensorflow安装
首先加入了CUDA_HOM环境变量,然后下载了一个分析工具库,结果E: 无法定位软件包 libcupti-dev,在etc/apt 的sources.list 添加镜像源 deb http://arc ...
- Tensorflow编程基础之Mnist手写识别实验+关于cross_entropy的理解
好久没有静下心来写点东西了,最近好像又回到了高中时候的状态,休息不好,无法全心学习,恶性循环,现在终于调整的好一点了,听着纯音乐突然非常伤感,那些曾经快乐的大学时光啊,突然又慢慢的一下子出现在了眼前, ...
- [leetcode-640-Solve the Equation]
Solve a given equation and return the value of x in the form of string "x=#value". The equ ...
- 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 ...
- 第16讲——C++中的代码重用
C++的一个主要目标是促进代码重用.除了我们之前学的公有继承,我们在这一讲将介绍另一种代码重用的方法——类模板.
- u盘中毒后文件夹没显示了
今日,我的U盘插了有毒的电脑,直接中毒了,先是显示有木马,后是自行产生一些文件,接着文件夹没了,后来自己终于解决了,分享一下,自己先用工具将有嫌疑的文件提炼出来,经自行检查后处理,接着打开文件夹选项, ...
- winform 控件大小随着窗体自适应
3个方法: #region 控件缩放变量 double formWidth;//窗体原始宽度 double formHeight;//窗体原始高度 doubl ...
- java线程(2)——模拟生产者与消费者
前言: 我们都听说过生产者和消费者的例子吧,现在来模拟一下.生产者生产面包,消费者消费面包.假定生产者将生成出来的面包放入篮子中,消费者从篮子中取.这样,当篮子中没有面包时,消费者不能取.当篮子满了以 ...
- NET中解决KafKa多线程发送多主题
NET中解决KafKa多线程发送多主题 一般在KafKa消费程序中消费可以设置多个主题,那在同一程序中需要向KafKa发送不同主题的消息,如异常需要发到异常主题,正常的发送到正常的主题,这时候就需要实 ...