zoukankan      html  css  js  c++  java
  • jsp动作元素之forward指令

    forward指令用于将页面响应转发到另外的页面。既可以转发到静态的HTML页面,也可以转发到动态的JSP页面,或者转发到容器中的Servlet。

    forward指令格式如下:

    <jsp:forward page="{relativeURL|<%=expression%>}">
    	{jsp:param..../>}
    </jsp:forward>
    

    jsp: param用于在转发时增加额外的请求参数。请求参数的值可以通过HttpServletRequest类的getParameter()方法获得。

    下面是代码实例:

    jsp-forward.jsp

    <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>forward's original page</title>
    </head>
    <body>
    <h3> forward's original page </h3>
    <jsp:forward page="forward-result.jsp">
        <jsp:param name="age" value="29" />
    </jsp:forward>
    </body>
    </html>
     

    此jsp页面的作用是将客户端的请求转发到forward-result.jsp页面,转发请求时增加请求参数:参数名称和参数值。

    在forward-result.jsp页面中,使用request内置对象来获取增加的请求值。

    forward-result.jsp

    <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>forward's result page</title>
    </head>
    <body>
    <%=request.getParameter("age")%>
    <%=request.getParameter("username")%>
    
    </body>
    </html>

    执行效果如下所示:

    image

    从图中可以看出,执行forward指令时,用户请求的地址依然没有发生变化,但页面内容却完全被forward目标页的内容。

    另外,在执行forward指令转发请求时,客户端的请求参数不会丢失。来看下面例子,该页没有任何动态内容,只是一个静态的表单页,作用是将请求参数提交到jsp-forward.jsp页。

    form.jsp

    <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>submit</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页面,增加输出表单参数的代码,如下:

    <%=request.getParameter("username")%>

    在表单提交页面中的文本框中输入任意字符串后提交该表单,运行结果如下图所示:

    image

    从表面看,forward指令给人一种感觉:它将用户请求“转发”到另一个新页面,但实际上,forward并没有重新向新页面发送请求,他只是完全采用了新页面来对用户生成响应——请求依然是一次请求,所以请求参数,请求属性都不会丢失。

  • 相关阅读:
    实训9.4.前端:url、href、src,link和@import
    实训9.2.作业1.写一个10次循环,每次得到一个随机数,放进一个集合中,如果这个数已经存在集合中则跳过,最后打印集合中的数字.
    实训9.3. SQL——STRUCTURED QUERY LANGUAGE(结构化查询语言 )
    实训9.2.类集,Collection接口
    实训9.2.IDEA ——java编程语言开发的集成环境(集成开发工具)
    实训9.2. JDK——java语言的软件开发工具包(JAVA的运行环境(JVM+Java系统类库)和JAVA工具) 【java开发的核心】
    从键盘输入数据
    error
    ubuntu 14.04, Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='
    用Python徒手写线性回归
  • 原文地址:https://www.cnblogs.com/freeabyss/p/3219290.html
Copyright © 2011-2022 走看看