JSP数据交互(一)---内置对象》response

JSP内置对象之response:

response对象用于响应客户请求并向客户端输出信息(设置响应参数等)

页面重定向:

        void sendRedirect(String location)

        客户端将重新发送请求到指定的URL

实现登陆验证,并验证成功后跳转至欢迎页面

input.jsp:

<body>
<form action="controller.jsp" method="post">
    <table>
        <tr>
            <td>用户名:</td>
            <td><input type="text" name="username"></td>
        </tr>
        <tr>
            <td>密码:</td>
            <td><input type="password" name="password"></td>
        </tr>
        <tr>
            <td colspan="2">
                <input type="submit" value="提交">
            </td>
        </tr>
    </table>
</form>
</body>
controller.jsp:
<%
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    if (username.equals("curry") && password.equals("30")){
        response.sendRedirect("welcome.jsp");
    }else {
        out.print("用户名或密码不正确");
    }
%>

成功页面:welcome.jsp:

<body>
    欢迎访问
</body>

主要代码:  response.sendRedirect("welcome.jsp");

//1.通过响应告诉浏览器该请求这样的一个地址栏了

//2.浏览器访问指定的url  302代表告诉浏览器重定向一个url

 需要在welcome.jsp获取用户名:使用:

<%=request.getParameter("username")%> 欢迎访问:(X)

页面实现为null

//浏览器发起了两次请求  导致第一次请求 失败

//1.当第一次请求失败的时候,把数据进行保存 使用数据作为参数来发起第二次请求

        ---》1::response.sendRedirect("welcome.jsp?username="+username);

//2.只发送一次请求 完成页面跳转

        如何才能实现页面跳转后,请求数据不丢失?

使用转发取代重定向实现页面跳转

转发:

转发的作用:

        在服务器端,将请求发送给服务器上的其他资源,以共同完成一次请求的处理

转发的实现:

        RequestDispacher对象的forward()方法 

RequestDispatcher  rd=response.sendRedirect("welcome.jsp");
rd.forword(request,response)           

 转发/重定向: 

重定向与转发的详细区别:

1.重定向
    (1).客户端向服务器端发送请求1,接收到请求后,执行sendRedirect()方法,返回给客户端,
    (2).客户端向服务器端发送请求2
2.转发
    客户端向服务器端发送请求1,服务器端接收到后调用getRequestDispatcher()方法,把请求转发给请求2.
    整个过程是在服务器端完成的,并且是在一个request中完成,共享数据。
    
区别:
    1.行为不同
        重定向是客户端行为,转发是服务器端行为
    2.url不同
        重定向url地址栏会发生变化,转发不会发生变化
    3.请求次数不同
        重定向会发送2次请求而转发只会发送一次请求
    4.速度不同
        因为重定向会发送两次请求,所以响应速度要比转发慢
    5.数据共享不同
        重定向不会共享数据 ,转发共享数据
    6.跳转限制
        重定向可以跳转任何URL,而转发只能跳转本站资源

注意一种传参的方式:(*)

    <a href="welcome.jsp?name=库里">库里</a>
    <a href="welcome.jsp?name=詹姆斯">詹姆斯</a>
    <a href="welcome.jsp?name=欧文">欧文</a>
在后文只需要接收:
         球星是:<%=request.getParameter("name")%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值