jsp 的 7 个动作指令
动作指令与编译指令不同,编译指令是通知 Servlet 引擎的处理消息,而动作指令只是运行时的动作。编译指令在将 JSP 编译成 Servlet 时起作用;而处理指令通常可替换成 JSP 脚本,它只是 JSP 脚本的标准化写法。
JSP 动作指令主要有如下 7 个:
1、jsp:forward:执行页面转向,将请求的处理转发到下一个页面。
2、jsp:param:用于传递参数,必须与其他支持参数的标签一起使用。
3、jsp:include:用于动态引入一个 JSP 页面
4、jsp:plugin:用于下载 JavaBean 或 Applet 到客户端执行
5、jsp:useBean:创建一个 JavaBean 的实例
6、jsp:setProperty: 设置 JavaBean 实例的属性值
7、jsp:getProperty: 获取 JavaBean 实例的属性值
forward 指令
forward 指令用于将页面响应转发到另外的页面。既可以转发到静态的 HTML 页面,也可以转发到动态的 JSP 页面,或者转发到容器中的 Servlet。
forward 指令格式如下:
<jsp:forward page="{relativeURL | <%=expression%>}" />
对于 JSP1.1 以上规范,可以使用如下形式:
<jsp:forward page="{relativeURL | <%=expression%>}" >
{<jsp:param ... />}
</jsp:forward>
第二种语法可以添加额外的参数,增加的参数可通过 HttpServletRequest 实例的 getParameter() 方法获取。
例子:
<jsp:forward page="form.jsp">
<jsp:param name="age" value="29" />
</jsp:forward>
获取参数:
<input type="hidden" name="age" value="<%=request.getParameter("age")%>">
使用 forward 指令转发请求时,用户请求的地址不会改变,客户端的请求参数也不会丢失。
从表面上看,<jsp:forward ... /> 指令似乎将用户请求转发到了一个新页面,但实际上只是采用了新页面来对用户请求生成响应 -- 请求依然是一次请求,所以请求参数、请求属性都不会丢失。
include 指令
include 指令是一个动态 include 指令,也用于包含某个页面,它不会导入被 include 页面的编译指令,仅仅将被导入页面的 body 内容插入本页面。
语法格式:
<jsp:include page="{relativeURL | <%=expression%>}" flush="true" />
或者:
<jsp:include page="{relativeURL | <%=expression%>}" flush="true">
<jsp:param name="parameterName" value="parameterValue" />
</jsp:include>
flush 属性用于指定输出缓存是否转移到被导入文件中。如果指定为 true,则包含在被导入文件中;如果指定为 false,则包含在原文件中。
表明上看,该页面的执行效果与使用静态 include 导入的页面没有什么不同。但查看生成的源码,可以发现:动态导入只是使用一个 include 方法来插入目标页面的内容,而不是将目标页面完全融入本页面中。
归纳起来,静态导入和动态导入有如下三点区别:
1、静态导入是将被导入页面的代码完全融入,两个页面融合成一个整体 Servlet;而动态导入则在 Servlet 中使用 include 方法来引入被导入页面的内容
2、静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去作用,只是插入被导入页面的 body 内容
3、动态包含还可以增加额外的参数。
useBean、setProperty、getProperty 指令
这三个指令都是与 JavaBean 相关的指令,其中 useBean 指令用于在 JSP 页面中初始化一个 Java 实例;setProperty 指令用于为 JavaBean 实例的属性设置值;getProperty 指令用于输出 JavaBean 实例的属性。
useBean 的语法格式如下:
<jsp:useBean id="name" class="classname" scope="page | request | session | application" />
其中,id 属性是 JavaBean 的实例名,class 属性确定 JavaBean 的实现类。scope 属性用于指定 JavaBean 实例的作用范围,该范围有以下 4 个值:
page:该 JavaBean 实例仅在该页面有效。
request:该 JavaBean 实例在本次请求有效。
session:该 JavaBean 实例在本次 session 内有效。
application:该 JavaBean 实例在本应用内一直有效。
setProperty 语法格式如下:
<jsp:setProperty name="BeanName" property="propertyName" value="value" />
其中,name 属性确定需要设定 JavaBean 的实例名;property 属性确定需要设置的属性名;value 属性则确定需要设置的属性值。
getProperty 语法格式如下:
<jsp:getProperty id="BeanName" property="propertyName" />
其中,name 属性确定需要输出的 JavaBean 的实例名;property 属性确定需要输出的属性名。
例子:
<jsp:useBean id="person" class="com.baiguiren.Person" scope="page" />
<jsp:setProperty name="person" property="name" value="baiguiren" />
<jsp:setProperty name="person" property="age" value="24" />
<jsp:getProperty name="person" property="name" /><br/>
<jsp:getProperty name="person" property="age" />
以上三个指令可以完全不使用,我们可以换成以下写法,其内部执行是完全一致的:
<%
// 实例化 JavaBean 实例,实现类为 com.baiguiren.Person,该实例的实例名为 person
Person person = new Person();
// 将 person 放入 page 范围中
pageContext.setAttribute("person", person);
// 设置 person 的 name 属性值
person.setName("baiguiren");
// 设置 person 的 age 属性值
person.setAge(23);
%> <!-- 输出 person 的 name 属性值 -->
<%=person.getName()%> <br/>
<!-- 输出 person 的 age 属性值 -->
<%=person.getAge()%>
使用 useBean 标签时,除在页面脚本中创建了 JavaBean 实例之外,该标签还会将该 JavaBean 实例放入指定的 scope 中,所以通常还需要在脚本中将该 JavaBean 放入指定 scope 中,如下面的代码片段所示:
// 将 p1 放入 page 的生存范围中
pageContext.setAttribute("p1", p1);
// 将 p1 放入 request 的生存范围中
request.setAttribute("p1", p1);
// 将 p1 放入 session 的生存范围中
session.setAttribute("p1", p1);
// 将 p1 放入 application 的生存范围中
application.setAttribute("p1", p1);
param 指令
param 指令用于设置参数值,这个指令本身不能单独使用,因为单独的 param 指令没有任何实际意义。
param 指令可以与以下三个指令结合使用。
jsp:include
jsp:forward
jsp:plugin
当与 include 指令结合使用时,param 指令用于将参数值传入被导入的页面;当与 forward 指令结合使用时,param 指令用于将参数值传入被转向的页面
param 指令的语法格式:
<jsp:param name="paramName" value="paramValue" />
jsp 的 7 个动作指令的更多相关文章
- 【JSP】JSP基础学习记录(二)—— JSP的7个动作指令
2.JSP的7个动作指令: 动作指令与编译指令不同,编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的动作.编译指令在将JSP编译成Servlet时起作用:而处理指令通常可替换成JSP ...
- JSP的7个动作指令
动作指令与编译指令不同,编译指令是通知Servlet引擎的处理信息,而动作指令知识运行时的动作.编译指令在将JSP编译成Servlet时起作用,而处理指令通常可替换成JSP脚本,它知识JSP脚本的标准 ...
- 二、JSP的3个编译指令,7个动作指令,9个内置对象
JSP 3个编译指令 1) page指令(基本不需要用到,使用默认即可) 主要属性: 1.Language:指定脚本所采用的语言类型,现在只支持java 2.Extends:定义当前jsp产生的se ...
- JSP基本的语法、3个编译指令、7个动作指令、9个内置对象
一.jsp概述 JSP是java server page的缩写,其本质是一个简化的servlet,是一种动态网页技术标准.jsp页面是在HTML页面中嵌入java程序段.使用jsp开发的应用程序能够跨 ...
- jsp笔记2(编译指令与动作指令)
一.jsp的编译指令是通知jsp引擎的消息,不会生成输出. jsp的3个编译指令: page:针对当前页面的指令 include:包含另一个页面的指令 taglib:用于定义和访问自定义标签 ...
- jsp七大动作指令
jsp 七大动作指令 1) jsp:include 指令 用于在请求处理阶段包含来自一个Servlet或jsp页面的响应.和编译指令中的include不同,include只能用于包含静态页面,而jsp ...
- jsp的常用指令有哪些(编译指令/动作指令整理)
jsp的常用指令有哪些(编译指令/动作指令整理) JSP动作指令 JSP - JSP中的脚本.指令.动作和注释
- jsp笔记,包括编译指令和动作指令,九大对象等
jsp基础知识 不包括HTTP协议,只有jsp的基础知识,包括表达式,代码片段,jsp九大对象等. 编译指令是在jsp被转换成selvet时,使用的. 而动作指令,是在每次客户端请求时动态执行.
- JSP——页面三大部分(指令、脚本、动作组件)
一.JSP简介: JSP(Java Server Pages,Java服务器端页面开发技术) JSP可以实现的技术都可以通过Servlet实现,他们本质上是一样的.但JSP设计的目的在于简化表示层的表 ...
随机推荐
- 技本功丨收藏!斜杠青年与你共探微信小程序云开发(下篇)
2019年2月26日,人们为了一个杯子疯了一天. 星巴克猫爪杯,一场已经与猫无关了的“圣杯战争“.网上的倒卖价格,已炒至近千元! 求而不得,舍而不能,得而不惜.这是人最大的悲哀... 所以,请珍惜以下 ...
- UVa 10071
简单运动学公式 v=v0+at x=v0t+1/2*a*t^2=2vt #include<stdio.h> int main() { int v, t; while((scanf(&quo ...
- 常用DOS指令备忘
1.删除整个目录,包括空目录 rd D:\管理\2012新同学练习\.svn /s/q /s 删除当前目录及子目录 /q 不询问直接删除 2.拷贝目录树 xcopy D:\管理\2012新同学练习 E ...
- 【技术向】rainmeter的设计与发现
我们在大学期间所学的那点代码知识还远远不够,于是我就自己寻找到了一款简单易懂的软件,来丰富我的代码知识. 这款软件叫rainmeter,中文叫做雨滴,是一款可以修改桌面的软件.它可以将桌面上更改出硬盘 ...
- spring框架(3)— spring集合类的注入
1.Car.java package com.eniac.beans; public class Car { private String type; private String factory; ...
- alpha6/10
队名:Boy Next Door 燃尽图 晗(组长) 今日完成 学习了css的一些基本操作. 明日工作 抽空把javascript的基本操作学习一下 还剩下哪些任务 微信API还有京东钱包的API. ...
- 软工网络15团队作业4——Alpha阶段敏捷冲刺之Scrum 冲刺博客(Day1)
概述 Scrum 冲刺博客对整个冲刺阶段起到领航作用,应该主要包含三个部分的内容: ① 各个成员在 Alpha 阶段认领的任务 ② 明日各个成员的任务安排 ③ 整个项目预期的任务量(使用整数表示,与项 ...
- Deepin系统又损坏了!
1.首先,去Deepin官方下载镜像(记得MD5检验一下).2.提取ISO里的安装程序到桌面,执行之&写入.(提醒:勾选下面的支持BIOS启动的选项,自测深度的UEFI很不稳定,建议不使用UE ...
- 第198天:js---内置对象的原型链和其他知识
一.内置对象的原型链 1.Object原型 function test() {} alert(test.toString()); //新增属性 Object.prototype.mytest = fu ...
- 第101天:CSS3中transform-style和perspective
一.transform-style 1.transform-style属性是3D空间一个重要属性,指定嵌套元素如何在3D空间中呈现. 有两个属性值:flat和preserve-3d. transfor ...