response请求转发、重定义、cookie

response:响应对象

提供的方法:

void addCookie(Cookie cookie);服务端向客户端增加cookie对象

void sendRedirect(String location);throw IOExeption; :页面跳转的一种方式(重定向)

void setContentType(String type):设置服务端的contentType类型

以下是编写下面的登入操作时需要注意到的细节:

1.name 属性用于在 JavaScript 中引用元素,或者在表单提交后引用表单数据。

注意:只有设置了 name 属性的表单元素才能在提交表单时传递它们的值。

2.java equals方法和==的区别

用"=="来比较,这种比较是针对两个String类型的变量的引用,也就是说如果两个String类型的变量,它们所引用同一个String对象(即指向同一块内存堆),则"=="比较的结果是true。

用Object对象的equals()方法来比较,String对象继承自Object,并且对equals()方法进行了重写。两个String对象通过equals()方法来进行比较时,其实就是对String对象所封装的字符串内容进行比较,也就是说如果两个String对象所封装的字符串内容相同(包括大小写相同),则equals()方法将返回true。

1、登入

index.jsp->register.jsp->success.jsp

重定向会导致数据丢失

请求转发             重定向

地址栏是否改变       不变register.jsp    改变success.jsp

是否保留第一次

请求时的数据           保留                   不保留

请求的次数              1                         2

跳转发生的位置        服务端                 客户端发出的第二次跳转

重定向:

服务端从客户端拿到数据,第一次响应给客户端,客户端指向新的跳转地址success.jsp

客户端发出第二次请求request,success.jsp响应给客户端

请求转发:

客户端第一次请求request,服务端拿到数据,请求转发给success.jsp,success.jsp响应给客户端

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.Date" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <form action="register.jsp" method="post">
    用户名:<input type="text" name="uname"/><br/>
    密码:<input type="password" name="upwd"/><br/>
    <input type="submit" value="submit">
  </form>
  </body>
</html>

register.jsp

<%@ 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("z")&&pwd.equals("z"))
    {
        response.sendRedirect("success.jsp");//导致数据丢失
        //request.getRequestDispatcher("success.jsp").forward(request,response);
    }
%>
<br/>
</body>
</html>

success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>title</title>
</head>
<body>
登入成功!!
<%
    //out.print(request.getParameter("uname"));
    String name=request.getParameter("uname");
    out.print(name);
%>
</body>
</html>

2.session(服务端)

Cookie(客户端,不是内置对象) Cookie是由 服务端生成的,再发送给客户端保存

相对于 本地缓存的作用:客户端->服务端

就比如你看一个hello.mp4,第一次看的时候由服务端生成,并发送给客户端,第二次再看的时候本地已经有保留

作用:提高访问服务端的效率,但是安全性较差

Cookie:name=value

public Cookie(String name,String value)

String getName() 获取name

String getValue() 获取value

void  setMaxAge(int expiry); 最大有效期(秒)

服务端准备Cookie

response.addCookie(Cookie cookie)

页面跳转(转发、重定向)

客户端获取cookie: request.getCookies();

注意:

1.服务端增加cookie:response对象,客户端获取对象:request对象

2.不能直接获取某一个单纯对象,只能一次性将全部的cookie拿到

原文地址:https://www.cnblogs.com/zuiaimiusi/p/11470611.html

时间: 2024-10-13 23:20:37

response请求转发、重定义、cookie的相关文章

javaweb中重定向和请求转发(response.sendRedirect()和request.getRequestDispatcher(rul).forward(request,response)))的区别

先来两张图,方便理解: 可以看出,重定向时,是服务器向游览器重新发送了一个response命令,让游览器再次向url2发送请求,以获取url2的资源 而请求转发时,类似于是服务器自己向自己发了一个跳转,然后将结果直接给游览器,这也是问什么游览器会不改变url地址.下面是具体总结他们的区别 一.response.sendRedirect(url)-服务器将新url发送给游览器,游览器再根据新url请求 Request.getRequestDispatcher(url).forward(reques

javaWeb中request请求转发和response重定向

1.访问资源 运用forward方法只能重定向到同一个Web应用程序中的一个资源. 而sendRedirect方法可以让你重定向到任何URL. 2.request.get Forward代码中的"/uu"则代表相对与WEB应用的路径. 举例: Servlet 和 目标文件的包路径: Servlet  代码:中 doPost 和doGet代码: request 重定向url地址 或者是是相对于 本项目 (WEB13)  http:localhost:8080/WEB13+url     

HTTP协议基础与web服务的重定向,跳转以及请求转发

JavaWeb中,HttpServletRequest与HttpServletResponse几乎是处理各种请求与操作必备的参数,与原始的ServletRequest/ServletResponse相比,它们符合HTTP协议,所以首先从http协议入手,回顾一些基本的内容,而后根据协议来总结常用的知识点. 首先来介绍一下dos环境下简单的http发送报文,接收报文的方法.运行输入cmd,打开命令提示符输入telnet 127.0.0.1 8080,回车后会出现一个输入界面,但此时输入的字符都无法

request请求转发和request域运用

1.请求转发 1.概述:让服务器跳转到另一个资源上 2.方法     1.request.getRequestDispatcher("跳转资源路径").forward(request, response); 2.域对象 1.作用:实现servlet与servlet之间的数据传输功能 2.例如:Request本质上就是一个域对象, 域对象就是一个容器. 3.域对象的方法 1.request.setAttribute(key,value);往request对象中存数据 2.requet.g

请求转发和重定向的区别以及他们的实现方式?

1.请求转发是什么? 答:请求转发是RequestDispatcher.forword方法:作用是:在服务器端内部将请求转发给另一个资源,浏览器只知道发出请求并得到响应结果,但不知道在服务器程序内部发生了转发行为. 举例:别名为“浏览器”的人写信找张三100块,张三只有50块,于是张三找李四借了50块,然后将钱转给“浏览器”.可知,“浏览器”只发出一封信和收到一次回复,他只知道钱是张三借给他的,并不知道有一部分是李四的. 2.重定向是什么? 答:重定向是HttpServletResponse.s

03 重定向,请求转发,cookie,session

重定向: /* 之前的写法 response.setStatus(302); response.setHeader("Location", "login_success.html");*/ //重定向写法: 重新定位方向 参数即跳转的位置 response.sendRedirect("login_success.html"); 1. 地址上显示的是最后的那个资源的路径地址 2. 请求次数最少有两次, 服务器在第一次请求后,会返回302 以及一个地

java:JSP(JSPWeb.xml的配置,动态和静态导入JSP文件,重定项和请求转发,使用JSP实现数据库的增删改查实例)

1.JSP的配置: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":&qu

重定向(response.sendRedirect())与请求转发(RequestDispatcher.foward())

两个方法都是让浏览器转向其他资源,它们的区别是: 1.请求转发要将HttpServletRequest与HttpServletResponse作为参数传入RequestDispatcher的forward方法,也就是新资源中也会用上上个资源的request跟response. 例如登陆页面传入了姓名与密码,登陆成功就会转向其他页面,此时的姓名作为string也被带到其他页面去了. 因为response也是作为forward的参数传输,所以不能因为在原页面上使用response来输出,不然会报错.

servlet的同步请求异步请求以及请求转发与重定型的区别

在javaWeb阶段,前端页面发送请求有两种: 1.同步请求 2.异步请求 同步请求与异步请求的区别是:同步请求跳转界面,异步请求只传递数据,不会跳转界面 (即使用同步请求,servelt响应的是一个界面,前台需要加载这个新的界面的图片样式脚本等诸多资源,而是用异步请求的话,只传递数据,不会刷新资源) 做一个简单的案例: 1.新建一个页面login.jsp <%@ page contentType="text/html;charset=UTF-8" language="