response请求转发重定义cookie
Posted zuiaimiusi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 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拿到
以上是关于response请求转发重定义cookie的主要内容,如果未能解决你的问题,请参考以下文章
从零开始的Java开发2-10-4 Servlet与jsp进阶:请求与响应的结构请求转发与响应重定向Cookie
ServletRequest的请求转发和Response重定向的不同
response.sendRedirect()和request.getRequestDispatcher().forward(request,response)使用