`

JSP的7个动作指令

阅读更多

JSP动作指令主要有如下7个:
	jsp:forward:执行页面转向,将请求的处理转发到下一个页面。
	jsp:param:用于传递参数,必须与其他支持参数的标签一起使用。
	jsp:include:用于动态引入一个JSP页面。
	jsp:plugin:用于下载JavaBean或Applet到客户端执行。
	jsp:useBean:创建一个JavaBean的实例。
	jsp:setProperty:设置JavaBean实例的属性值。
	jsp:getProperty:输出JavaBean实例的属性值。

forward指令
forward指令用于将页面响应转发给另外的页面。既可以转发给静态的HTML页面,也可以转发到动态的JSP页面,或者转发到容器中的Servlet。
JSP的forward指令的格式如下。
对于JSP 1.0,使用如下语法:
<jsp:forward page="{relativeURL|<%=expression%>}"/> 
对于JSP 1.1以上,可使用如下语法:
<jsp:forward page="{relativeURL|<%=expression%>}">
{<jsp:param.../>} 
</jsp:forward>
第二种语法用于在转发时增加额外的请求参数。增加的请求参数的值可以通过HttpServletRequest类的getParameter()方法获取。
下面示例页面使用了forward动作指令来转发用户请求。
程序清单:codes\02\2.2\jspPrinciple\jsp-forward.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>forward的原始页</TITLE>
</HEAD>
<BODY>
<h3>forward的原始页</h3>
<jsp:forward page="forward-result.jsp">
<jsp:param name="age" value="29"/>
</jsp:forward>
</BODY>
</HTML>
这个JSP页面非常简单,它包含了简单的title信息,页面中也包含了简单的文本内容,页面的粗体字代码则将客户端请求转发到forward-result.jsp页面,转发请求时增加了一个请求参数:参数名为age,参数值为29。
在forward-result.jsp页面中,使用request内置对象(request内置对象是HttpServletRequest的实例,关于request的详细信息参看下一节)来获取增加的请求参数值。
程序清单:codes\02\2.2\jspPrinciple\forward-result.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>forward结果页</TITLE>
</HEAD>
<BODY>
<!-- 使用request内置对象获取age参数的值 -->
<%=request.getParameter("age")%>
</BODY>
</HTML>
执行forward指令转发请求时,客户端的请求参数不会丢失。看下面表单提交页面的例子,该页面没有任何动态的内容,只是一个静态的表单页,作用是将请求参数提交到jsp-forward.jsp页。
程序清单:codes\02\2.2\jspPrinciple\form.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>提交</TITLE>
</HEAD>
<BODY>
<!-- 表单提交页面 -->
<form id="login" method="post" action="jsp-forward.jsp">
<INPUT TYPE="text" NAME="username">
<INPUT TYPE="submit" value="login">
</FORM>
</BODY>
</HTML>
修改forward-result.jsp页,增加输出表单参数的代码,修改后forward-result.jsp页面的代码如下:
程序清单:codes\02\2.2\jspPrinciple\forward-result.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>forward结果页</TITLE>
</HEAD>
<BODY>
<!-- 使用request内置对象获取age参数的值 -->
<%=request.getParameter("age")%>
<!-- 输出username请求参数的值 -->
<%=request.getParameter("username")%>
</BODY>
</HTML>
forward-result.jsp页面中不仅可以输出forward指令增加的请求参数,还可以看到表单里username表单域对应的请求参数,这表明执行forward时不会丢失请求参数。
include指令
include指令是一个动态include指令,也用于导入某个页面,它不会导入被include页面的编译指令,仅仅将被导入页面的body内容插入本页面。
下面是include动作指令的语法格式:
<jsp:include page="{relativeURL│<%=expression%>}" flush="true"/> 
或者
<jsp:include page="{relativeURL│<%=expression%>}" flush="true"> 
<jsp:param name="parameterName" value="patameterValue"/> 
</jsp:include>
flush属性用于指定输出缓存是否转移到被导入文件中。如果指定为true,则包含在被导入文件中;如果指定为false,则包含在原文件中。对于JSP 1.1旧版本,只能设置为false。
对于第二种语法格式,则可在被导入页面中加入额外的请求参数。
下面页面使用了动态导入语法来导入指定JSP页面。
程序清单:codes\02\2.2\jspPrinciple\jsp-include.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>jsp-include测试</TITLE>
</HEAD>
<BODY>
<!-- 使用动态include指令导入页面 -->
<jsp:include page="scriptlet.jsp" />
</BODY>
</HTML>
上面页面中粗体字代码使用了动态导入语法来导入了scriptlet.jsp。表面上看,该页面的执行效果与使用静态include导入的页面并没有什么不同。但查看jsp-include.jsp页面生成Servlet的源代码,可以看到如下片段:
//使用页面输出流,生成HTML标签内容
out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\ ">\r\n");
out.write("<HTML>\r\n");
out.write("<HEAD>\r\n");
out.write("<TITLE>jsp-include测试</TITLE>\r\n");
out.write("</HEAD>\r\n");
out.write("<BODY>\r\n");
//动态导入,直接引入scriptlet.jsp页面
org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, 
"scriptlet.jsp", out);
out.write("\r\n");
out.write("</BODY>\r\n");
out.write("</HTML>\r\n");
out.write("\r\n");
上面代码片段中粗体字代码显示了动态导入的关键:动态导入只是使用一个include方法来插入目标页面的内容,而不是将目标页面完全融入本页面中。
归纳起来,静态导入和动态导入有如下两点区别:
	静态导入是将被导入页面的代码完全融入,两个页面融合成一个整体Servlet;而动态导入则在Servlet中使用include方法来引入被导入页面的内容。
	静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去作用,只是插入被导入页面的body内容。
除此之外,执行include动态指令时,还可增加额外的请求参数,如下面JSP页面所示。
程序清单:codes\02\2.2\jspPrinciple\jsp-include2.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>jsp-include测试</TITLE>
</HEAD>
<BODY>
<jsp:include page="forward-result.jsp" >
<jsp:param name="age" value="32"/>
</jsp:include>
</BODY>
</HTML>
在上面的JSP页面中的粗体字代码同样使用jsp:include指令导入页面,而且在jsp:include指令中还使用param指令传入参数,该参数可以在forward-result.jsp页面中使用request对象获取。

 
分享到:
评论

相关推荐

    JSP指令和动作熟悉

    本篇将详细介绍JSP中的`page`指令,以及`include`指令与相关动作`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:fallback&gt;`, `&lt;jsp:plugin&gt;`。 首先,`page`指令是JSP中最高级别的指令,它用于定义整个JSP页面的属性。`...

    02-JSP脚本元素指令及动作.ppt

    02-JSP脚本元素指令及动作.ppt

    JSP的3个编译指令7个动作指令9个内置对象.rar_java

    **JSP的7个动作指令**: 1. **&lt;jsp:include&gt;**:与编译指令类似,但它是运行时动态包含页面,可以接受请求参数。 2. **&lt;jsp:forward&gt;**:将请求转发到另一个页面,常用于页面跳转。 3. **&lt;jsp:param&gt;**:与&lt;jsp:...

    实验2 JSP指令标记与JSP动作标记(3.20)

    ### 实验2 JSP指令标记与JSP动作标记(3.20)——知识点解析 #### 实验背景及目标 本次实验旨在加深学生对JSP技术的理解与运用能力,特别是针对JSP指令标记与JSP动作标记的学习。通过具体的操作实践,使学生能够熟练...

    实验2 JSP动作标记.pdf )

    实验2的内容主要围绕JSP动作标记中的include和forward动作标记来展开,通过实验练习掌握这些动作标记的使用方法和它们对页面动态加载及转向控制的应用。 首先,include动作标记是用于在JSP页面运行时动态地包含其他...

    JSP指令与动作熟悉

    实验目的:掌握3种脚本、page和include指令、&lt;jsp:include&gt;和&lt;jsp:forward&gt;动作。 实验内容: 1. 编写一个页面片段top.jspf,作用是显示网站名称和日期(服务器时间)。显示内容如下: 作业3网站 今天是:2014-02-...

    jsp九个内置对象 六个基本动作 三个指令元素

    ### JSP九个内置对象 六个基本动作 三个指令元素 #### 四种属性范围 在JSP中,有四种不同的属性范围,这些范围决定了属性的生命周期与可见性: 1. **Page Scope (页面作用域)**:仅在一个JSP页面内有效。一旦该...

    JSP 的脚本,指令,动作

    总的来说,理解并熟练运用JSP的脚本、指令和动作元素是成为一名合格的Java Web开发者的基础,这有助于创建功能丰富的、动态的、交互性强的Web应用程序。通过不断的实践和学习,开发者可以更好地驾驭这些元素,提升...

    JSP基本语法指令和动作元素_couldzfw_JSP基本语法、指令和动作元素_

    ### **三、JSP动作元素** 动作元素是XML格式,用于执行特定的任务,它们由JSP容器解释执行。常见的有: 1. **jsp:include**: 类似于包含指令,但支持动态包含,可以传入参数。 2. **jsp:forward**: 将请求转发到另...

    Jsp7打动作的资料

    JSP动作标签是JSP中用于执行特定操作的一种方式,它们以`&lt;jsp:action&gt;`的形式存在。本篇文章主要探讨JSP中的五个关键动作,并对比`&lt;jsp:include&gt;`指令和动作的区别。 1. **创建Bean对象**: `&lt;jsp:useBean&gt;`动作...

    实验2_Jsp语法 -页面基本结构、指令标记和动作标记

    ### 实验2_Jsp语法 -页面基本结构、指令标记和动作标记 #### 实验概述 本次实验主要聚焦于JSP(JavaServer Pages)的基本语法学习,涵盖了页面的基本结构、指令标记以及动作标记的运用。实验旨在使参与者能够熟练...

    Jsp脚本元素指令以及动作课后作业

    - D选项描述的是JSP动作标签的开始与结束标记,如`&lt;jsp:include&gt;`等。 **1.2 jsp代码 `“1+4”%&gt;` 将输出:** - **正确答案:A** - **解析:** 在JSP中,`&lt;%= %&gt;`用于输出表达式的值。这里字符串`"1+4"`被直接...

    jsp简单语法,servlet,JSP概述,JSP页面构成,注释,指令,脚本元素,动作元素,错误处理

    JSP动作元素不直接执行Java代码,而是指示服务器执行特定的操作。例如: - `&lt;jsp:include&gt;`:动态包含其他资源。 - `&lt;jsp:forward&gt;`:转发请求到另一个URL。 - `&lt;jsp:params&gt;`:传递参数给包含或转发的页面。 **7. ...

    jsp指令,page指令简单介绍

    JSP指令是JSP页面中的特殊元素,以`开头,`%&gt;`结尾,它们不像JSP动作元素那样在运行时生成HTML,而是对JSP引擎提供指令,告诉它如何处理页面。JSP指令主要有三种类型:`page`、`include`和`taglib`。 **page指令**...

    jsp的常用指令有哪些(编译指令 动作指令整理).docx

    除了编译指令外,JSP还提供了一组动作指令,用于实现更复杂的功能,如页面跳转、数据处理等。 ##### 1. Jsp:Forward **功能描述**: - 用于在应用程序内转发请求到另一个资源。 **语法**: ```jsp &lt;jsp:forward ...

    JSP动作和指令.ppt

    JSP 动作元素的使用使得开发者能更灵活地控制页面的行为,而指令则提供了对页面整体配置的能力。两者结合,使得JSP成为了一个强大的动态网页开发工具。在实际应用中,合理运用这些指令和动作元素,能够提高代码的...

    jsp中两种包含关系(include动作和include指令)的区别

    在JavaServer Pages (JSP) 技术中,存在两种包含关系:`&lt;jsp:include&gt;` 动作和 `jsp:include` 指令。它们都是用来将一个页面的内容插入到另一个页面中的,但它们的工作方式和适用场景有所不同。 **1. `&lt;jsp:include...

    JSP中的编译指令和动作指令的两点区别

    理解其中两种重要的指令类型:编译指令和动作指令,对于编写高效的JSP页面至关重要。编译指令和动作指令在JSP页面中扮演着不同的角色,它们有着明显的区别和用途。 首先,我们要明确编译指令是什么。编译指令是在...

    JavaBean和JSP中的标准动作

    1. **`&lt;jsp:useBean&gt;`**:这个动作用于在 JSP 页面中实例化一个 JavaBean 或查找现有的 JavaBean 实例。如果找不到,则会尝试按照指定的类名创建一个新的实例。 2. **`&lt;jsp:setProperty&gt;`**:设置 JavaBean 的属性值...

Global site tag (gtag.js) - Google Analytics