您的位置:首页 > Web前端 > JavaScript

jsp:forward和response.sendRedirect的区别

2013-07-19 09:24 330 查看
最简单的jsp:forward 

forward.jsp 

<html>

    <head>

        <title>Forward Example</title>

    </head>

    <!--最终显示的是forforward.jsp中的内容-->

    <body bgcolor=red>

        Welcome to forward.jsp

        <%--直接跳转到forforward.jsp,这两个jsp用的是同一个request--%>

        <jsp:forward page="forforward.jsp" />

    </body>

</html> 

forforward.jsp 

<html>

    <head>

        <title>forforward.jsp</title>

    </head>

    

    <body bgcolor=blue>

        Welcome<br>

        Here is forforward.jsp

    </body>

</html> 

②jsp:forward和response.sendRedirect的比较 

forward1.jsp 

<html>

    <head>

        <title>Forward Example</title>

    </head>

    

    <body bgcolor=red>

        Welcome to forward1.jsp

        <jsp:forward page="forforward1.jsp" >

            <jsp:param name="name" value="m" />

            <jsp:param name="oldName" value='<%= request.getParameter("name")%>' />

            <jsp:param name="roles" value="manager" />

        </jsp:forward>

    </body>

</html> 

forforward1.jsp:和forward1.jsp使用的是同一个request(服务器跳转) 

<html>

    <head>

        <title>forforward1.jsp</title>

    </head>

    

    <body bgcolor=blue>

        Welcome<br>

        Here is forforward1.jsp<br>

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

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

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

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

    </body>

</html> 

测试结果:

访问http://localhost:8888/test/forward/forward1.jsp?name=yyg&address=34527144231

结果:

Welcome

Here is forforward1.jsp

m yyg manager 34527144231 

此时页面URL还是forward1.jsp,并没有跳转到forforward1.jsp,给用户的感觉还是刚才的页面在为自己服务。

说明:m 和manager 是forward1.jsp中传过来的;而yyg 和34527144231 是在URL中通过request传过来的。并且forward1.jsp中也没有address属性,这也从另一个角度说明了这两个jsp使用的是同一个request。 

test.jsp:和forward1.jsp使用的是不同的request

说明:访问过http://localhost:8888/test/forward/test.jsp后,页面跳转成http://localhost:8888/test/forward/forforward1.jsp

这个过程中客户和服务器之间产生了两个request,并且test.jsp后跟参数并不能传递到forforward1.jsp(原因也很明显:两次是不同的request) 

<%

    response.sendRedirect("forforward1.jsp")

%> 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐