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页面中特定 ...
随机推荐
- spring boot接口 支持https
1.拥有证书,可自己生成测试用javatool生成 keytool -keystore [keyname].jks -genkey -alias tomcat -keyalg RSA 接下来输入相关信 ...
- js/jquery 获取本地文件的文件路劲 获取input框中type=‘file’ 中的文件路径(转载)
原文:http://blog.csdn.net/niyingxunzong/article/details/16989947 js/jquery 获取本地文件的文件路劲 获取input框中type= ...
- I/O流任务
一.完成以下链接[https://www.cnblogs.com/zhrb/p/6834084.html]中的任务3.4.5. 3. 字符编码 主要讲解中文乱码问题,FileReader.InputS ...
- 【转】C++ const用法 尽可能使用const
http://www.cnblogs.com/xudong-bupt/p/3509567.html C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不 ...
- java基础知识-冒泡排序
//冒泡排序,从数组前面向后循环比较 public static void sort1(int[] aa){ int size=aa.length; int temp; //循环数组 for(int ...
- 使用PHP静态变量当缓存的方法
下面这个PHP的代码实例,功能是帮助用户重置密码,requestResetPassword是接收用户重置密码的请求并且做了相应的检查.为了更好的复用性,我将重置密码的操作单独分配到一个新的resetP ...
- WebService使用介绍(三)
jax-ws开发深入 JAX-WS注解 注解说明 WebService的注解都位于javax.jws包下: @WebService-定义服务,在public class上边 targetNamespa ...
- jquery中ajax的使用(java)
AJAX方式 js:界面 var prjContextPath='<%=request.getContextPath()%>'; $(document).ready(function() ...
- clique 解题报告
clique 题目描述 数轴上有 \(n\) 个点,第 \(i\) 个点的坐标为 \(x_i\),权值为 \(w_i\).两个点 \(i\),\(j\) 之间存在一条边当且仅当 \(abs(x_i-x ...
- Educational Codeforces Round 56 (Rated for Div. 2) ABCD
题目链接:https://codeforces.com/contest/1093 A. Dice Rolling 题意: 有一个号数为2-7的骰子,现在有一个人他想扔到几就能扔到几,现在问需要扔多少次 ...