JavaWeb总结(十二)
JSP指令
提供整个JSP页面的相关信息
用于JSP页面与容器之间的通信
<%@ directive attribute1="value1" attribute2="value2" %>
<!-- 如果有多个属性,也可以分开写: -->
<%@ directive attribute1="value1" %>
<%@ directive attribute2="value2" %>
<!-- 实例 -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!-- 多个指令分开写 -->
<%@ page import="java.lang.*" %>
<%@ page import="java.util.*" %>
在JSP中,有三种类型的指令
page指令——为当前页面提供处理指令
页面指令的功能是设定整个JSP页面的属性和相关功能
语法格式为:
<%@ page attribute1="value1" attribute2="value2" %>
<!-- page指令也支持以XML为基础的语法,例如:-->
<jsp:directive.page attribute1="value1" attribute2="value2" />
|
属性名 |
值 |
默认值 |
|
language |
脚本语言名称 |
"java" |
|
Info |
网页信息 |
无 |
|
contentType |
MIME类型和JSP编码 |
"text/html;charset=ISO-8859-1" |
|
import |
类和包 |
none |
|
buffer |
缓冲区大小 |
8192 |
|
autoFlush |
缓冲满,刷新还是抛出异常 |
"true" |
|
session |
访问页面是否创建会话 |
"true" |
|
isThreadSafe |
线程是否安全 |
"true" |
|
errorPage |
URL |
none |
|
isErrorPage |
布尔值 |
"false" |
include指令——用于把另一个文件包含在JSP中
include指令表示在JSP编译时插入一个包含文本或者代码的文件
把文件中的文本静态地包含过去
语法格式为:
<%@ include file="relativeURL" %>
<!--"relativeURL"为要包含进来的文件,可以是HTML、JSP文件,也可以是其它格式的文本文件。
include指令也支持以XML为基础的语法,如:-->
<jsp:directive.include file="relativeURL" />
<!-- error_500_page.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
Error_500;
<%@ include file="error_404_page.jsp" %>
</body>
</html>
<!-- error_404_page.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
Error_404;
</body>
</html>
运行服务器,打开页面error_500_page

Error_500_page(<%@ include %>)

Error_500_page(<%@ include %>)翻译成的Java文件内容(局部)
|
提示:翻译后和编译后的文件可以在工程服务器里查找,我的文件目录是(可参考):D:\Javacode\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\Test\org\apache\jsp\jsp |
仔细看就能发现,是error_500_page.jsp内容里面包含了error_404_page.jsp里面的所有内容,包含html、head、body等所有标签。如果存在重复标签或者id名就会出现一些不必要的麻烦。
|
注意:被包含的文件不要与包含文件存在重复HTML标签,而且不能是URL变量 |
标准动作:<jsp:include>动作是一种动态包含
修改error_500_page.jsp的语句
<%--把<%@ include file="error_404_page.jsp" %>修改为下面的代码--%>
<jsp:include page="error_404_page.jsp"></jsp:include>

Error_500_page(<jsp:include>)

Error_500_page(<jsp:include>)翻译成的Java文件内容(局部)
由此可见,error_500_page.jsp内容里面没有包含error_404_page.jsp里面的内容,而是以一串指令代替。
动态和静态的区别是什么?
- included动作比included指令在维护上有着明显优势,而included指令的功能更加强大,执行速度也比included动作快。
- included指令只能生成一个servlet,而included动作可以生成多个Servlet
- included指令包含的是被包含页面的真实代码,而included动作包含的是相应代码
- included指令发生在页面编译时,而included动作发生在页面请求时
- included指令做出的人任何修改必须重启当前Web才能生效,而included动作保存即生效
- included指令不能实现在请求区间内共享对象,而included动作支持在请求区间内共享对象
- included指令适用于静态页面包含,而included动作适合动态页面包含
taglib指令——指定如何包含和访问自定义标签库
<jsp:forward>动作
将客户端所发出来的请求,从一个JSP网页转发到另一个JSP页面
<!--语法格式为:-->
<jsp:forward page="relativeURL" />
<!--控制权交给了另一个JSP,和Java代码中的request的请求派发功能相似(可以访问WEB-INF目录)request.getRequestDispatcher("").forward(request,response);-->
JSP九大隐式对象
在JSP中操纵请求、响应、会话以及其它Servlet中使用的对象
|
对象名 |
描述 |
作用域 |
|
request |
代表与请求相关的HttpServletRequest对象 |
request |
|
response |
代表与响应相关的HttpServletResponse对象 |
page |
|
pageContext |
代表封装请求某个JSP页面时请求环境的pageContext对象 |
page |
|
session |
代表特定用户请求会话的HttpSession对象。该对象只有在JSP页面参与一个HTTP会话时才有意义 |
session |
|
application |
代表Web应用程序的ServletContext对象 |
application |
|
out |
代表与响应输出流相关的JspWriter对象 |
page |
|
config |
代表JSP 页面的Servlet相关的ServletConfig对象 |
page |
|
page |
等于Java编程语言中的this变量 |
page |
|
exception |
代表JSP页面抛出的Trowable对象。这个对象只能在JSP错误页面中使用 |
page |
JavaWeb总结(十二)的更多相关文章
- JavaWeb 后端 <十二> 之 过滤器 filter 乱码、不缓存、脏话、标记、自动登录、全站压缩过滤器
一.过滤器是什么?有什么? 1.过滤器属于Servlet规范,从2.3版本就开始有了. 2.过滤器就是对访问的内容进行筛选(拦截).利用过滤器对请求和响应进行过滤
- JavaWeb学习 (十二)————使用Session防止表单重复提交
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...
- JVM(十二):方法调用
JVM(十二):方法调用 在 JVM(七):JVM内存结构 中,我们说到了方法执行在何种内存结构上执行:Java 方法活动在虚拟机栈中的栈帧上,栈帧的具体结构在内存结构中已经详细讲解过了,下面就让我们 ...
- 前端开发中SEO的十二条总结
一. 合理使用title, description, keywords二. 合理使用h1 - h6, h1标签的权重很高, 注意使用频率三. 列表代码使用ul, 重要文字使用strong标签四. 图片 ...
- CRL快速开发框架系列教程十二(MongoDB支持)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- 我的MYSQL学习心得(十二) 触发器
我的MYSQL学习心得(十二) 触发器 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数 ...
- Web 前端开发精华文章推荐(jQuery、HTML5、CSS3)【系列十二】
2012年12月12日,[<Web 前端开发人员和设计师必读文章>系列十二]和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HT ...
- 第十二章Fundamental Data Types 基本数据类型
目录: 12.1 数值概论 12.2整数 12.3浮点数 12.4 字符和字符串 12.5布尔变量 12.6枚举类型 12.7具名常量 12.8数组 12.9创建你自己的类型 12.1 数值概论 ...
- [分享] IT天空的二十二条军规
Una 发表于 2014-9-19 20:25:06 https://www.itsk.com/thread-335975-1-1.html IT天空的二十二条军规 第一条.你不是什么都会,也不是什么 ...
- Bootstrap <基础三十二>模态框(Modal)插件
模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 如果您想要单独引用该插件的功能,那么您需要引用 ...
随机推荐
- 在 Linux 上创建虚拟机规模集和部署高度可用的应用
利用虚拟机规模集,可以部署和管理一组相同的.自动缩放的虚拟机. 可以手动缩放规模集中的 VM 数,也可以定义规则,以便根据资源使用情况(如 CPU 使用率.内存需求或网络流量)进行自动缩放. 在本教程 ...
- lambda 表达式的由来
相关技术点:函数指针.C#委托.匿名方法.lambda表达式 谈到lambda表达式,首先从委托讲起, 委托是持有一个或者多个方法的对象,这个特性有点像C中的函数指针,可以指向不同的方法,下面的例子是 ...
- 给category添加基本数据类型属性
给category添加基本数据类型属性 说明 通常,我们添加属性都是通过对象扩展来实现的,其实,我们也可以用runtime来添加基本数据类型的属性 源码 // // UIView+AnimationP ...
- 搭建企业级全网数据定时备份方案[cron + rsync]
1.1.1. 服务端的配置[192.168.25.141] Rsync的端口是:873 man rsyncd.conf 查看帮助 Rsync是Redhat默认自带的,这里只是做了rsync服务器端的后 ...
- Linux echo命令详解
echo :输出文字到控制台 -n: 不换行输出 -e:解析转移字符 (-b: 退格 -n 换行 -t 空格) 常用的命令展示 echo {1..4} ==> seq -s " ...
- 阿里云全球首次互联网8K直播背后的技术解读
3月28日,云栖大会·深圳峰会现场,阿里云发布并现场演示了阿里视频云最新8K互联网直播解决方案.这是全球发布的首个8K视频云解决方案,也是全球首次8K互联网视频直播. 视频地址:https://v.q ...
- 最新版本2018.1.1webstorm安装、汉化、破解教程
一.安装(下载与激活) 1.官网下载安装包https://www.jetbrains.com/webstorm/ 2.开始安装 3.选择安装目录,点击下一步 4.勾选64位,点击下一步 5.继续下一步 ...
- CSS3的新增边框属性
一.CSS3 新增的边框属性 属性 版本 简介 border-image CSS3 设置或检索对象的边框使用图像来填充 border-image-source CSS3 设置或检索对象的边框是否用图像 ...
- c# 匿名函数与托付
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/han_yankun2009/article/details/26290779 在 2.0之前的 ...
- net mvc中实现记录用户登录信息(记住登录效果)
现记录用户登录信息(记住登录效果) 本文讲述了使用cookies实现网站记住登录效果,效果如下: 主要实现方法,当用户选择记住登录时建立cookies保存用户名和用户密码,当用户登录不选择记住登录时, ...