response请求转发、重定义、cookie

匿名 (未验证) 提交于 2019-12-02 23:57:01

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
重定向会导致数据丢失
是否保留第一次

重定向:

服务端从客户端拿到数据,第一次响应给客户端,客户端指向新的跳转地址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

服务端准备Cookie

response.addCookie(Cookie cookie)

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

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

注意:

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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!