zoukankan      html  css  js  c++  java
  • JSP动作元素include/forward

    与JSP指令元素不同的是,JSP动作元素在请求处理阶段起作用。JSP动作元素是用XML语法写成的。

    利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。

    动作元素只有一种语法,它符合XML标准:

    <jsp:action_name attribute="value" />

    动作元素基本上都是预定义的函数,JSP规范定义了一系列的标准动作,它用JSP作为前缀,可用的标准动作元素如下:

    语法描述
    jsp:include 在页面被请求的时候引入一个文件。
    jsp:useBean 寻找或者实例化一个JavaBean。
    jsp:setProperty 设置JavaBean的属性。
    jsp:getProperty 输出某个JavaBean的属性。
    jsp:forward 把请求转到一个新的页面。
    jsp:plugin 根据浏览器类型为Java插件生成OBJECT或EMBED标记。
    jsp:element 定义动态XML元素
    jsp:attribute 设置动态定义的XML元素属性。
    jsp:body 设置动态定义的XML元素内容。
    jsp:text 在JSP页面和文档中使用写入文本的模板

    常见的属性

    所有的动作要素都有两个属性:id属性和scope属性。

    • id属性:

      id属性是动作元素的唯一标识,可以在JSP页面中引用。动作元素创建的id值可以通过PageContext来调用。

    • scope属性:

      该属性用于识别动作元素的生命周期。 id属性和scope属性有直接关系,scope属性定义了相关联id对象的寿命。 scope属性有四个可能的值: (a) page, (b)request, (c)session, 和 (d) application。

    一、<jsp:include>动作元素

    <jsp:include>动作元素用来包含静态和动态的文件。该动作把指定文件插入正在生成的页面。语法格式如下:

    <jsp:include page="相对 URL 地址" flush="true" />

    前面已经介绍过include指令,它是在JSP文件被转换成Servlet的时候引入文件,而这里的jsp:include动作不同,插入文件的时间是在页面被请求的时候。

    以下是include动作相关的属性列表。

    属性描述
    page 包含在页面中的相对URL地址。
    flush 布尔属性,定义在包含资源前是否刷新缓存区。

    实例

    以下我们定义了两个文件 date.jsp 和 main.jsp,代码如下所示:

    date.jsp文件代码:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <p>
       今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
    </p>

    main.jsp文件代码:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>
    
    <h2>include 动作实例</h2>
    <jsp:include page="date.jsp" flush="true" />
    
    </body>
    </html>

    现在将以上两个文件放在服务器的根目录下,访问main.jsp文件。显示结果如下:

    include 动作实例
    
    今天的日期是: 2016-6-25 14:08:17

    二、<jsp:forward> 动作元素

     jsp:forward动作把请求转到另外的页面。jsp:forward标记只有一个属性page。语法格式如下所示:

    <jsp:forward page="相对 URL 地址" />

    以下是forward相关联的属性:

    属性描述
    page page属性包含的是一个相对URL。page的值既可以直接给出,也可以在请求的时候动态计算,可以是一个JSP页面或者一个 Java Servlet.

    实例

    以下实例我们使用了两个文件,分别是: date.jsp 和 main.jsp。

    date.jsp 文件代码如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <p>
       今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
    </p>

    main.jsp文件代码:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>
    
    <h2>forward 动作实例</h2>
    <jsp:forward page="date.jsp" />
    </body>
    </html>

    现在将以上两个文件放在服务器的根目录下,访问main.jsp文件。显示结果如下:

    今天的日期是: 2016-6-25 14:37:25

    sendRedirect和jsp:forward的区别

    • sendRedirect是服务器让客户端跳转的,相当于服务器告诉你一个地址,让你去访问这个地址。

      jsp:forward是服务器里直接跳转到指定的地址,然后将处理完的信息返回给客户端,在客户端上感觉不到跳转这个操作。

    • 在数据共享方面上:sendRedirect没法实现数据直接共享的,如果要让数据共享,我们可以使用jsp:forward来进行跳转。
    • 在跳转的范围上:sendRedirect可以跳转到本身应用之外的页面上,而jsp:forward不能跳转到本身应用之外的页面。

    本文引用自:https://www.runoob.com/jsp/jsp-actions.html

    同时参考:https://jingyan.baidu.com/article/fdffd1f84a665af3e98ca1e8.html

  • 相关阅读:
    回家第二周
    回文
    回家第一周
    回家第四周
    《大道至简》读后感
    第三周Java课后题
    Java小测代码及截图
    【CheckBox】选择或取消所有CheckBox
    Web Developer's Handbook
    Oracle PL/SQL
  • 原文地址:https://www.cnblogs.com/nayitian/p/15413803.html
Copyright © 2011-2022 走看看