servlet同一用户不同页面共享数据
如何实现不同页面之间的数据传递,实现页面的数据共享?常见的方法有以下4种:
1)表单提交(form)
2)sendRedirect()跳转
3)session技术
4)Cookie技术
表单提交
这是最常见的一种方式,也是最简单的,但有时该技巧非常管用,形如:
<form action=login>
<input type=text name=a value=b>
<input type=hidden name=c value=d>
</form>
通过表单,我们也可以将一个页面信息,传递给另外的页面。特别注意隐藏表单的应用,如果不想讲提交的信息显示出来可以用它。
sendRedirect()跳转
sendRedirect("welcome?uname=xiangkejin");
优点:传送信息的速度比较快
缺点:它只能传送字符串,而不能传送一个对象
注意点:
1.welcome代表你要跳转的那个servlet的url
2.servlet url名和变量之间有?号
3.如要传递两个以上的值,它们间要用&号分开比如sendRedirect("welcome?uname=xiangkejin&PassWord=ok");
4.如果传递的是中文,那可能会是乱码,需要处理一下
session技术
当用户打开浏览器,访问某个网站时,服务器就会在服务器的内存中为该浏览器分配一个
空间,该空间被浏览器独占。
这个空间就是session空间,该空间中的数据默认存在时间30min,你也可以修改。
用处:
1.网上商城中的购物车
2.保存登录用户的信息
3.将某些数据放入到Session中,供同一用户的各个页面使用
4.防止用户非法登录到某个页面
session可以看做是一张表,这张表有两列。每一行即是session的一个属性
每个属性包含有两个部分,一个是该属性的名字(String)另一个是它的值(Object)
如何使用Session?
得到session的id,这是容器分配的,每个浏览器占有不是属于一个机器客户端,是属于一次请求
String sessionId=ht.getId();
1.得到session
HttpSession hs=req.getSession(true);
2.向session添加属性
hs.setAttribute(String name,Object val);
3.从session得到某个属性
String name=hs.getAttibute(String name);
4.从session删除某个属性
hs.removeAttribute(String name);
//这样讲删除全部的session
hs.setMaxInactiveInterval(0);
session的注意事项:
1.在web.xml中修改默认session时间30min,也可在程序中修改。可在tomcat中修改也可以在自己的站点修改
2.当某个浏览器访问网站时,服务器会给浏览器分配唯一一个session id,并以此来区分不同的浏览器
3.因为session的各个属性要占用服务器的内存,因此软件公司都是在迫不得已的情况下才使用
Cookie技术
cookie是服务器在客户端保存用户的信息这些信息就像是小甜饼一样,数据量不大,服务器端在需要的时候可以从客户端读取
一般保存在C:\Documents and Settings目录下
用处:
1.保存用户名、密码,在一定时间不用重新登录
2.记录用户访问网站的喜好
3.网站的个性化,定制网站的服务内容
如何使用Cookie?
1.Cookie优点像一张表,分两列,一个是名字,一个是值
数据类型都是String
2.如何创建一个Cookie(在服务器端创建的)
Cookie c=new Cookie(String name,String val);
3.如何将一个Cookie添加到客户端
response.addCookie(c)
4.如何读取Cookie(从客户端掉服务器)
Cookie [] cookie=request.getCookies();
其他说明:
1.可以通过IE-工具-Internet选项-隐私-高级来启用或是禁用cookie
2.由于cookie的信息是保存在客户端的,因此安全性不高
3.cookie信息的生命周期可以在创建时设置
Cookie和session的区别
1.存在的位置
cookie保存在客户端,session保存在服务器端
2.安全性
cookie的安全性比session要弱。cookie是明文保存,session是保存在内存中
3.网络传输量
cookie通过网络在客户端与服务器端传输
session保存在服务器端,不需要传输
4.生命周期(20分钟为例)
(1)cookie的生命周期是类的,从创建时,就开始计时,
20分钟后cookie生命周期结束。
(2)session的生命周期是间隔的,从创建时,开始计时如果在20分钟,
没有访问过session,那么session信息五小,如果在20分钟内,
访问过session,那么,它的生命周期将重新开始计算。
(3)另外,关机会造成session生命周期结束,但是cookie没有任何影响。
servlet同一用户不同页面共享数据的更多相关文章
- Serlvet学习笔记之二—不同页面共享数据
一共有四种方法实现共享页面共享数据 1.cookie 2.sendRedirect 3.session 4.隐藏表单提交(form) 5.ServletContex 1.cookie:服务器在客户端保 ...
- Vue总结第六天:Vuex (全局变量管理~多个页面共享数据)
Vue总结第六天:Vuex (全局变量管理~多个页面共享数据) 目录 一.Vuex (全局变量管理~~多个页面共享数据) ✿ 更详细的可以看官网:开始 | Vuex 1.什么是Vuex? 2.核心概念 ...
- servlet自动获取前端页面提交数据
servlet自动获取前端页面jsp提交数据 以下是本人在学习过程中,因前端页面提交参数过多,后台servlet封装实体类过于麻烦而写的一个工具类,应用于jsp/servlet数据提交后,基于MVC+ ...
- servlet同一用户的不同页面共享数据
一.cookie技术 cookie的讲解和使用 --------------- 服务器在客户端保存用户的信息,比如登录名,密码等...就是cookie, 服务器端在需要时可以从客户端读取. cooki ...
- servlet第3讲(中集)----同一用户的不同页面共享数据
5.session 5.1session概述 5.2.session应用举例
- servlet第3讲(上集)----同一用户的不同页面共享数据
1.方法综述 2.Cookie 3.sendRedict()方法 4.隐藏表单
- Servlet课程0425(五) sendRedirect实现不同页面共享数据
Login.java //登录界面 package com.tsinghua; import javax.servlet.http.*; import java.io.*; public class ...
- ASP.NET多种不同页面间数据传递的方法
1. Get(即使用QueryString显式传递) 方式:在url后面跟参数. 特点:简单.方便. 缺点:字符串长度最长为255个字符:数据泄漏在url中. 适用数据 ...
- Cookie&Seesion会话 共享数据 工作流程 持久化 Servlet三个作用域 会话机制
Day37 Cookie&Seesion会话 1.1.1 什么是cookie 当用户通过浏览器访问Web服务器时,服务器会给客户端发送一些信息,这些信息都保存在Cookie中.这样,当该浏览器 ...
随机推荐
- 安装指定版本的cordova
安装指定版本的cordova 刚接触cordova看到教程肯定是直接 npm install -g cordova 然后下载个集成的adt 以为万事大吉,开始hello world 玩玩没有想到最新的 ...
- How Google TestsSoftware - Part Three
Lots of questions in thecomments to the last two posts. I am not ignoring them. Hopefully many of th ...
- linux安装locust
linux安装locust 1. 安装epel扩展源(目的是为了在安装Pip时不出现一堆乱七八糟的错误信息) EPEL(http://fedoraproject.org/wiki/EPEL) 是由 F ...
- 有jQuery背景,该如何用AngularJS编程思想?
"我可以熟练使用jQuery进行客户端应用的开发,但是现在我希望开始使用Angular.js.哪位能描述一下这个过程中必要的模式变化吗?希望您的答案能够围绕下面这些具体的问题: 1. 我如何 ...
- WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping。请添加一个名为 jquery (区分大小写)的 ScriptResourceMapping。
WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping.请添加一个名为 jquery (区分大小写)的 ScriptRes ...
- poj2186Popular Cows(Kosaraju算法--有向图的强连通分量的分解)
/* 题目大意:有N个cows, M个关系 a->b 表示 a认为b popular:如果还有b->c, 那么就会有a->c 问最终有多少个cows被其他所有cows认为是popul ...
- VS2013正则表达式应用示例
VS2013正则表达式语法 在查找替换对话框中查看 VS2013语法可在查找替换对话框中查看,具体过程如下: 通过编辑->查找和替换->在文件中替换或者相应快捷键(Ctrl+Shift+H ...
- H5游戏开发之抓住小恐龙
第一次写技术性博文,以前都只是写一些生活感想,记录一些生活发生的事情. 博主大三学生一枚,目前学习JS一年多,还处于学习阶段,有什么说的不好的希望大牛指点下,由于第一次写博文,排版什么的有待改进,希望 ...
- Linux 内存管理
查看Linux内存使用情况 free -m Linux内存清理:绝大多数情况下都不需要此操作,因为cache的内存在需要的时候是可以自动释放的- 最好先sync几次,再清理内存,有下面三个级别,数值越 ...
- 大话PHP缓存头
304的请求机制和200有什么不一样呢?在fiddler中查看304请求的时候突然想到这个问题,就想到研究下这个304请求机制了. 我们自己在nginx上放一个文件,test.png.可以使用下面的地 ...