JSP 动作指令补充

mengjava 贡献于2012-11-09

作者 微软用户  创建于2011-08-17 03:36:00   修改者微软用户  修改于2011-08-17 04:00:00字数4329

文档摘要:JSP动作指令主要有如下7个:jsp:forward:执行页面转向,将请求的处理转发到下一个页面。jsp:param:用于传递参数,必须与其他支持参数的标签一起使用。jsp:include:用于动态引入一个JSP页面。
关键词:

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 1.1以上,可使用如下语法: {} . 第二种语法用于在转发时增加额外的请求参数。增加的请求参数的值可以通过HttpServletRequest类的getParameter()方法获取。 下面示例页面使用了forward动作指令来转发用户请求。 程序清单:codes\02\2.2\jspPrinciple\jsp-forward.jsp <%@ page contentType="text/html; charset=gb2312" language="java" %> forward的原始页

forward的原始页

这个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" %> forward结果页 <%=request.getParameter("age")%> 执行forward指令转发请求时,客户端的请求参数不会丢失。看下面表单提交页面的例子, 该页面没有任何动态的内容,只是一个静态的表单页,作用是将请求参数提交到 jsp-forward.jsp页。 程序清单:codes\02\2.2\jspPrinciple\form.jsp 提交
修改forward-result.jsp页,增加输出表单参数的代码,修改后forward-result.jsp页面的代 码如下: 程序清单:codes\02\2.2\jspPrinciple\forward-result.jsp <%@ page contentType="text/html; charset=gb2312" language="java" %> forward结果页 <%=request.getParameter("age")%> <%=request.getParameter("username")%> forward-result.jsp页面中不仅可以输出forward指令增加的请求参数,还可以看到表单里 username表单域对应的请求参数,这表明执行forward时不会丢失请求参数。 include指令 include指令是一个动态include指令,也用于导入某个页面,它不会导入被include页面 的编译指令,仅仅将被导入页面的body内容插入本页面。 下面是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" %> jsp-include测试 上面页面中粗体字代码使用了动态导入语法来导入了scriptlet.jsp。表面上看,该页面的 执行效果与使用静态include导入的页面并没有什么不同。但查看jsp-include.jsp页面生 成Servlet的源代码,可以看到如下片段: //使用页面输出流,生成HTML标签内容 out.write("\r\n"); out.write("\r\n"); out.write("\r\n"); out.write("jsp-include测试\r\n"); out.write("\r\n"); out.write("\r\n"); //动态导入,直接引入scriptlet.jsp页面 org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "scriptlet.jsp", out); out.write("\r\n"); out.write("\r\n"); out.write("\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" %> jsp-include测试 在上面的JSP页面中的粗体字代码同样使用jsp:include指令导入页面,而且在jsp:include 指令中还使用param指令传入参数,该参数可以在forward-result.jsp页面中使用request 对象获取。

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档