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并没有重新向新页面发送请求,他只是完全采用了新页面来对用户生成响应——请求依然是一次请求,所以请求参数,请求属性都不会丢失。

  • 相关阅读:
    scott登录查询常用语句
    Oracle服务端及客户端安装
    SVN简单使用
    dos命令--查询进程
    第二周学习总结
    第一周学习总结
    虚拟机安装教程及网络连接方式的解释
    两天学习总结
    方差
    thinkphp 总结 转
  • 原文地址:https://www.cnblogs.com/freeabyss/p/3219290.html
Copyright © 2011-2022 走看看