JSP中response,session,cookie,application的作用及区别

<%

//服务端

Cookie cookie1 = new Cookie(“name”,“zx”);

Cookie cookie2 = new Cookie(“pwd”,“abc”);

response.addCookie(cookie1);

response.addCookie(cookie2 );

//页面跳转到客户端(转发,重定向)

response.sendRedirect(“result.jsp”);

%>

3.使用Cookie实现 记住用户名 功能


<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

Insert title here

<%!//登陆

String uname;

%>

<%

boolean falg=false;

Cookie [] cookies= request.getCookies() ;

for(Cookie cookie: cookies ){

if(cookie.getName().equals(“uname”)){

uname=cookie.getValue();

falg=true;

}

}

if(!falg){

out.print(“cookie失效”);

}else{

out.print(“cookie”+uname);

}

%>

用户名:<input type=“text” name=“uname” value=“<%=(uname==null?”“:uname) %>”>

密码:

提交:

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

Insert title here

<%

request.setCharacterEncoding(“utf-8”);

String name = request.getParameter(“uname”);

String pwd = request.getParameter(“upwd”);

//将用户名放到Cookie里面

Cookie cookie = new Cookie(“uname”, name); //建议 cookie只保存 英文数字,否则需要进行编码、解码

cookie.setMaxAge(10) ;

response.addCookie(cookie);

response.sendRedirect(“A.jsp”);

%>

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

Insert title here

4.session :会话


a.浏览网站:开始-关闭

b.购物: 浏览、付款、退出<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

Insert title here <% request.setCharacterEncoding(“utf-8”); String name = request.getParameter(“uname”); String pwd = request.getParameter(“upwd”); //将用户名放到Cookie里面 Cookie cookie = new Cookie(“uname”, name); //建议 cookie只保存 英文数字,否则需要进行编码、解码 cookie.setMaxAge(10) ; response.addCookie(cookie); response.sendRedirect(“A.jsp”); %> c.电子邮件:浏览、写邮件、退出 开始-结束

5.session机制:


客户端第一次请求服务端时,(jsessionid-sessionid)服务端会产生一个session对象(用于保存该客户的信息);

并且每个session对象 都会有一个唯一的 sessionId( 用于区分其他session);

服务端由会 产生一个cookie,并且 该cookie的name=JSESSIONID ,value=服务端sessionId的值;

然后 服务端会在 响应客户端的同时 将该cookie发送给客户端,至此 客户端就有了 一个cookie(JSESSIONID);

因此,客户端的cookie就可以和服务端的session一一对应(JSESSIONID - sessionID)

客户端第二/n次请求服务端时:服务端会先用客户端cookie种的JSESSIONID 去服务端的session中匹配sessionid,如果匹配成功(cookie jsessionid和sesion sessionid),说明此用户 不是第一次访问,无需登录;

例子:

客户端: 顾客(客户端)

服务端: 存包处 - 商场(服务端)

顾客第一次存包:商场 判断此人是 之前已经存过包(通过你手里是否有钥匙)。

如果是新顾客(没钥匙) ,分配一个钥匙 给该顾客; 钥匙 会和 柜子 一一对应;

第二/n次 存包:商场 判断此人是 之前已经存过包(通过你手里是否有钥匙)

如果是老顾客(有钥匙),则不需要分配;该顾客手里的钥匙 会 和柜子 自动一一对应。

6.session:


a. session存储在服务端(同一次会话共享,比如浏览同一个网页)

b. session是在 同一个用户(客户)请求时 共享

c. 实现机制:第一次客户请求时 产生一个sessionid 并复制给 cookie的jsessionid 然后发给客户端。最终 通过session的sessionid-cookie的jsessionid

7.session方法:


String getId() :获取sessionId

boolean isNew() :判断是否是 新用户(第一次访问)

void invalidate():使session失效 (退出登录、注销)

void setAttribute()

Object getAttribute();

void setMaxInactiveInterval(秒) :设置最大有效 非活动时间

int getMaxInactiveInterval():获取最大有效 非活动时间 比如你设置的是一小时,在这期间你一直在浏览该页面,不会有影响,但是如果你去吃个饭回来,会让你重新登陆。

示例:

登录

image-20200606103122339

客户端在第一次请求服务端时,如果服务端发现 此请求没有 JSESSIONID,则会创建一个 name=JSESIONID的cookie 并返回给客户端

Cookie:

a.不是内对对象,要使用必须new

b.但是,服务端会 自动生成一个(服务端自动new一个cookie) name=JSESIONID的cookie 并返回给客户端

8.cookie和session的区别:


| | session | cookie |

| — | — | — |

| 保存的位置 | 服务端 | 客户端 |

| 安全性 | 较安全 | 较不安全 |

| 保存的内容 | Object | String |

9.appliation 全局对象


String getContextPath() 虚拟路径

String getRealPath(String name): 绝对路径(虚拟路径 相对的绝对路径)

10.JSP9大内置对象


pageContext JSP页面容器

request 请求对象

session 会话对象

appliation 全局对象

response 响应对象

config 配置对象(服务器配置信息)

out 输出对象

page 当前JSP页面对象(相当于java中的this)

exception 异常对象

11.四种范围对象(小1->大4)


| | | |

| :-: | :-: | :-: |

| 2request | 请求对象 | 同一次请求有效 |

| 3session | 会话对象 | 同一次会话有效 |

| 4appliation | 全局对象 | 全局有效(整个项目有效) |

| 1pageContext | JSP页面容器 (page对象) | 当前页面有效 |

以上4个对象共有的方法:

Object getAttribute(String name):根据属性名,或者属性值

void setAttribute(String name,Object obj) :设置属性值(新增,修改)

setAttribute(“a”,“b”) ;//如果a对象之前不存在,则新建一个a对象 ;

如果a之前已经存在,则将a的值改为b

void removeAttribute(String name):根据属性名,删除对象

a.pageContext

pageContext 当前页面有效 (页面跳转后无效)

<%=pageContext.getAttribute(“hello”) %>

b.request

request 同一次请求有效;其他请求无效 (请求转发后有效;重定向后无效)

response.sendRedirect(“rq1.jsp”);

request.getRequestDispatcher(“rq1.jsp”).forward(request, response);

c.session

session 同一次会话有效 (无论怎么跳转,都有效;关闭/切换浏览器后无效 ; 从 登陆->退出 之间 全部有效)

session.setAttribute(“hello”, “word”);

response.sendRedirect(“ss1.jsp”);

d.application

application

全局变量;整个项目运行期间 都有效 (切换浏览器 仍然有效);关闭服务、其他项目 无效

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-jBrhtvi7-1714929033927)]

[外链图片转存中…(img-RDiCqagd-1714929033928)]

[外链图片转存中…(img-tUGOZHof-1714929033928)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值