cookie&session&application总结

Cookie【key-value】(不是内置对象必须new):

1. Cookie 是由服务端生成的,在发送给客户端保存

2. 作用:提高访问效率,但安全性较差

  *服务端 自动new生成一个cookie(name为JSESSIONID的)

3. 常用方法

  Cookie(String name,String value)  构造方法需new

  String getName()          得到name

  String getValue()          得到value

  setMaxAge(int time)        最大有效期(秒)

4. 代码示例(实现记住用户名功能)

登陆界面

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<%!
String uname;
%>
<%
//用作保留用户名
Cookie[] cookies=request.getCookies();
for(Cookie cookie : cookies){
if(cookie.getName().equals("uname")){
uname=cookie.getValue();
}
}
%>
<form action="check.jsp" method="post">
用户名:<input type="text" name="uname" value="<%=(uname==null?"":uname)%>"><br/>
密码: <input type="password" name="upwd"/><br/>
<input type="submit" value="登陆"><br/>
</form>
</body>
</html>

将登入的cookie返回

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body> <%
request.setCharacterEncoding("utf-8");
String name=request.getParameter("uname");
String pwd=request.getParameter("upwd");
//将用户名 加入cookies中
Cookie cookie=new Cookie("uname",name);
//设置该cookie最大有效期10s
cookie.setMaxAge(10);
response.addCookie(cookie); //实现了一次跳转,目的将cookie转回客户端
//response.sendRedirect("A.jsp");
%>
</body>
</html>

session(内置对象)

1. session机制:

一、客户端第一次请求服务端时:

  服务端会产生一个session对象(用于保存该客户的信息)

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

  服务端又会产生一个cookie,并且 将该cookie发送给客户端 因此客户端的cookie中JSESSIONID会与服务端的sessionid一一对应

二、客户端之后请求服务端时:

  服务端会先用客户端的cookie中的JSESSIONID去服务端的session中匹配sessionid 如果匹配成功则无需登录

2. session要点:

1. 存储在服务端

2. 在同一个用户请求时 共享

3. session常用方法:

getId();    //获取sessionid

isNew();   //判断用户是否为新用户(第一次登陆)

invalidate();  //使session失效  (退出登陆、注销)

setAttribute();

getAttribute();

setMaxInactiveInterval(int time)  //设置最大有效 非活动时间(登陆京东 一段时间不动 则会要求重新登陆)

getMaxInactiveInterval()    //得到最大有效 非活动时间

cookie&session的区别

补充:

html中的超链接:<a href="跳转的jsp">name</a>

跳转的jsp中:session.invalidate();  实现注销-删除session所有信息

application(内置对象)

方法:

1. application.getContextPath()  获取当前项目的虚拟路径

2. application.getRealPath()    获取当前项目的绝对路径

JavaWeb -cookie&session&application的更多相关文章

  1. Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期

    servlet的404错误困扰了两天,各种方法都试过了,翻书逛论坛终于把问题解决了,写此博客来纪念自己的第一个servlet经历. 下面我会将自己的编写第一个servlet的详细过程提供给初学者,大神 ...

  2. c# Cookie,Session,Application,Cache 四种缓存使用情景

    好记性不如烂笔头,记录一下C#缓存使用的情景模式....个人理解,不正之处,欢迎指正 讨论 Cookie,Session,Application,Cache 四种,有的缓存情景对人,有的缓存情景对事儿 ...

  3. JavaWeb——Cookie,Session学习汇总

    什么是Cookie Cookie的作用 安全性能 Cookie的语法 Cookie注意细节 Cookie实例练习 什么是会话Session Session语法 Session与浏览器窗口的关系 ses ...

  4. JavaWeb Cookie,Session

    Cookie 1.Cookie翻译过来是饼干的意思.Cookie是服务器通知客户端保存键值对的一种技术.客户端有了Cookie 后,每次请求都发送给服务器.每个Cookie的大小不能超过4kb. 2. ...

  5. JavaWeb:Cookie处理和Session跟踪

    JavaWeb:Cookie处理和Session跟踪 Cookie处理 什么是Cookie Cookie 是存储在客户端计算机上的文本文件,保留了各种跟踪信息.因为HTTP协议是无状态的,即服务器不知 ...

  6. JavaWeb -pageContext/request/session/application

    pageContext/request/session/application总结 一.范围差异 1. pageContext jsp页面容器 当前页面有效 2. request 请求对象 同一次请求 ...

  7. JavaWeb基于session和cookie的数据共享

    在了解session和cookie技术之前,我们需要先了解一下什么是会话?会话可以简单理解为用户打开一个浏览器,点击多个超链接,访问服务器的多个web资源,然后关闭浏览器,整个过程称为一个会话.这样, ...

  8. 【JavaWeb】Cookie&Session

    Cookie&Session Cookie 什么是 Cookie Cookie 即饼干的意思 Cookie 是服务器通知客户端保存键值对的一种技术 客户端有了 Cookie 后,每次请求都发送 ...

  9. JavaWeb请求与响应 Cookie&Session

    1.请求与响应 &Cookie&Session 1.1.请求与响应 HTTP协议 概念:英文全称:HyperText Transfer Protocol 中文全称:超文本传输协议   ...

随机推荐

  1. 你真的了解lambda吗?一文让你明白lambda用法与源码分析

    本文作者: cmlanche 本文链接: http://www.cmlanche.com/2018/07/22/lambda用法与源码分析/ 转载来源:cmlanche.com 用法 示例:最普遍的一 ...

  2. 为何在JDK安装路径下存在两个JRE?

    "两个jre"和"三个lib"的功能简单扼要的解释 安装JDK后,Java目录下有jdk和jre两个文件夹,但jdk下还有一个jre文件夹,而且这个jre比前面 ...

  3. 小菜鸟入门nginx

    实现功能:端口进行转发 比如我实际运行的是·http:localhost:5000 但是我想通过localhost:80 进行访问. 过程 1 下载nginx 2 解压到某个目录(比如我放在C盘根目录 ...

  4. java日期公共类

    package com.mall.common; import java.text.ParseException; import java.text.SimpleDateFormat; import ...

  5. 单源最短路:Bellman-Ford算法 及 证明

    描述: 求图中某一点到其他任一点的最短距离. 操作: 1. 初始化 结果保存在一个dist数组里,源点的结果初始化为0,其他初始化为无穷大(如INT32_MAX). 2. 计算: 两重for循环,第一 ...

  6. curl模拟多线程抓取网页(优化)

    通过上篇文章清楚了通过curl_multi_*函数可以一次请求多个url,但是也留下了问题,就是结果要等所有数据请求结束一起返回,才能逐个处理数据.优化代码,使先成功请求的url先返回处理结果,而不是 ...

  7. Shadow Map 实现极其细节

    这里不介绍算法原理,只说说在实现过程中遇到的问题,以及背后的原因.开发环境:opengl 2.0  glsl 1.0. 第一个问题:产生深度纹理. 在opengl中每一次离屏渲染需要向opengl提供 ...

  8. dedecms图片上传函数

    /** * 图片上传类 * @param $file上传图片信息 * @param $ty */ function upload_pic($file, $ty) { if (!is_uploaded_ ...

  9. 关于C语言中的Complex(复数类型)和imaginary(虚数类型)

    关于C语言中的Complex(复数类型)和imaginary(虚数类型) 其实这里的复数complex就是数学里的复数,包含实部和虚部两个部分,比如:x=2.1+6i,下面进行详细介绍. C99 新增 ...

  10. win2003 ent 64 + mssql ent 64

    1.打win2003补丁(取消IE8.0)2.msconfig->boot.int->高级中,将内核改成83.将cd1,cd2,高到Servers,Tools目录中,并保证Servers, ...