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页面中特定 ...
随机推荐
- 小旭讲解 LeetCode 53. Maximum Subarray 动态规划 分治策略
原题 Given an integer array nums, find the contiguous subarray (containing at least one number) which ...
- 对 vscode 自动格式化的结果不太满意,我们该如何自己调整直至自己满意为止
前提概述 采用vue-cli 3.0自动生成vue项目,选了ESlint+Prettier,在写request.js的时候,顺手用vscode右击格式化文件(Alt+Shift+F),一下子报了8个问 ...
- wangEditor编辑器中解析html图文信息问题
在JS中,有一种方法:innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML. 也就是说,我们可以利用这个属性,把字符串转换为html代码,这样就可以被解析了. 其次,我们是需要在页 ...
- [译]如何撤销git仓库里的所有修改?
原文来源:https://stackoverflow.com/questions/29007821/git-checkout-all-the-files 问: 如何撤销我在我git仓库所做的所有修改? ...
- 软工实践 - 第二十三次作业 Beta 冲刺(1/7)
队名:起床一起肝活队 组长博客:https://www.cnblogs.com/dawnduck/p/10093337.html 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过 ...
- Android隐藏键盘
今天接到的任务是在验证码输入框中加入键盘监听事件,需要点击Enter实现登录,这个比较好实现,但是在登录时,键盘并没有隐藏掉,看上去很别扭,因此,百度了一堆方法,但是都无济于事,最后找到了一个,如下, ...
- Documentation & Markdown
Documentation & Markdown markdown to document & document website generator https://github.co ...
- [剑指Offer] 30.连续子数组的最大和
题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...
- 洛谷 P4859 已经没有什么好害怕的了 解题报告
已经没有什么好害怕的了 题目描述 已经使\(\tt{Modoka}\)有签订契约,和自己一起战斗的想法后,\(\tt{Mami}\)忽然感到自己不再是孤单一人了呢. 于是,之前的谨慎的战斗作风也消失了 ...
- [学习笔记]最小割之最小点权覆盖&&最大点权独立集
最小点权覆盖 给出一个二分图,每个点有一个非负点权 要求选出一些点构成一个覆盖,问点权最小是多少 建模: S到左部点,容量为点权 右部点到T,容量为点权 左部点到右部点的边,容量inf 求最小割即可. ...