request和response

request和response

在这里插入图片描述
request是请求信息,response是响应信息

response使用的方法:
response.addCookie(Cookie cookie):服务端向客户端增加cookie对象
★★★response.sendRedirect(String location) throws IOException:页面跳转的一种方式(重定向
response.setContentType(“utf-8”):设置编码格式响应时的设置)

request的使用方法:
★★★request.getRequestDispatcher(“success.jsp”).forward(request,response);:页面跳转的一种方式(请求转发
request.setCharacterEncoding(“utf-8”);设置编码格式请求时的设置)

下面演示页面跳转,(示例:登录) 用到了response.sendRedirect(不常使用)request.getRequestDispatcher().forward(request,response)(常使用)

login.jsp --> check.jsp -->success.jsp

login.jsp

<%--
  Created by IntelliJ IDEA.
  User: xfj
  Date: 2021/5/29
  Time: 15:43
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <form action="check.jsp" method="post">
        用户名:<input type="text" name="uname"><br>
        密码:<input type="password" name="upwd"><br>
        <input type="submit" value="登录" ><br>
    </form>
</body>
</html>

check.jsp

<%--
  Created by IntelliJ IDEA.
  User: xfj
  Date: 2021/5/29
  Time: 15:45
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        request.setCharacterEncoding("utf-8");
        String name=request.getParameter("uname");
        String pwd=request.getParameter("upwd");
        if (name.equals("zs")&& pwd.equals("abc")){
            response.sendRedirect("success.jsp");
        }else{
            out.print("用户名密码错了!");
        }
    %>
</body>
</html>

success.jsp

<%--
  Created by IntelliJ IDEA.
  User: xfj
  Date: 2021/5/29
  Time: 15:52
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    成功了,欢迎你<br>
    <%
        String name=request.getParameter("uname");
        out.print(name+"!");
    %>
</body>
</html>

在这里插入图片描述

此方法看似成功了,可是我们的欢迎界面用户名zs并没有显示出来,显示为空(如上图),另外在地址栏中,我们确实是跳转到了success.jsp页面,这种方式有数据缺失。
现在我们来换一种方式:
在check.jsp中第19行(15行)不使用response.getRedirect(“success.jsp”)
改成 request.getRequestDispatcher(“success.jsp”).forward(request,response);

在这里插入图片描述
在这里插入图片描述
我们再来试一下:
在这里插入图片描述
1.此时我们已经显示出来了用户名zs,没有发生数据缺失。
2.注意观察路径,此时的路径已经不是success.jsp,而改成了check.jsp

请求转发request重定向response的区别
请求转发:
1.地址栏的地址不变
2.数据保留,不缺失
3.请求次数是1次
重定向:
1.改变地址,跳到真实地址中
2.数据缺失
3.请求次数是2次

请求转发
在这里插入图片描述
重定向
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值