Servlet和JSP学习指导与实践(二):Session追踪
前言:
web应用中经常需要对某些有用的信息进行存储或者附加一些信息。本文主要介绍session,即“会话”跟踪的几种不同方式~
----------------------------
4种管理session的方式:
1.重写url
通过在请求的url后面追加参数信息进行会话跟踪。如:
"http://localhost:8080/shop/index.jsp?page=1&name=admin"
2.使用隐藏域
比如更新用户信息时,因为id不可更改,故将传到更新页面的user.id设置为hidden:
<form action="${pageContext.request.contextPath}/userAction_update.action" method="post">
用户名:<input type="text" name="name" value="${requestScope.user.name }" /><br>
<input type="submit" value="提交" />
<input type="hidden" name="id" value="${requestScope.user.id}" />
</form>
3.Cookie
javax.servlet.http的package下面专门有Cookie类,通过 new Cookie()我们可以解决前面2种方式的缺陷,即不只是将信息传送到下一个页面或者下一个请求,而是实现将信息保存在进行多个页面。Cookie中的信息相当于一个“信息块”,其可以在浏览器和服务器之间传送。但是,浏览器默认的可容纳的Cookie数量有限,一般不超过20个。而且,Cookie无法准确定位。想要确认当前页面是否含有“A”这个Cookie,必须通过枚举才可能得知!
4.HttpSessioin
HttpSession对象是一种更强大的会话管理方式。其可通过http访问过程中的request获得,并将其保存到服务器中。由于其可以跨页面保存,因此一般用于保存重要的用户信息或者购物车信息等!
-----------------------------------
附:session与cookie的联系与区别:
(1)联系:
cookie与session都可以用于跨页面的信息保存,比url重写和hidden的方式更稳定。
(2)区别:
- cookie一般存在于客户端的本地浏览器,而session存在于远程的server端。
- cookie存储机制不同于session。前者,每次必须遍历完所有的cookie信息才能进行;后者可通过getAttribute(String s)来判断当前是否存在“s”的session,因此存取session方便;
- session较cookie灵活,而且更安全。
Servlet和JSP学习指导与实践(二):Session追踪的更多相关文章
- Servlet和JSP学习指导与实践(一):Servlet API初探
前言: JavaSE如何跨度到JavaEE?原本java语言只是专门用于application桌面小应用程序的开发,但自从其追随CGI进入服务器端的开发之后便一发不可收拾.先是Servlet1.0,再 ...
- Servlet和JSP学习指导与实践(三):JSP助阵
前言: JSP(Java Server Page)虽然作为一门服务端的语言,但它并没有创新新的语言标准.有些人一接触jsp之后发现易学易懂.实际上,jsp的内部原理仍然是基于Servlet,它是Ser ...
- Servlet和JSP学习总结
目录 Jsp会被编译成servlet,在页面被第一次访问的时候 Jsp中可以在html页面中嵌入java代码或者引入jsp标签 可以在html中引入自定义标签 Web工程的目录结构 Jsp的注释 Js ...
- 《Servlet和jsp学习指南》 笔记1
chapter 1 Servlet 4个java 包: 对于每一个http请求,Servlet请求都会创建一个ServletRequest实例,并将它传给Servlet的service方法.Servl ...
- jsp学习与提高(二)——JSP 隐式对象、表单处理及过滤器
1.JSP 隐式对象 JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明.JSP隐式对象也被称为预定义变量. JSP所支持的九大隐式对象: 对象 描述 req ...
- 《Servlet和jsp学习指南》 笔记2
chapter 13 请求和响应的装饰 初步了解Decorator模式: 在不修改一个对象的类的源码的情况下,装饰这个对象的行为. chapter 14 异步处理 异步Servlet和Filter,只 ...
- jsp学习笔记 - 内置对象 session
1.session 主要用来用户的登录和注销 设置用户名,获取用户名 session.setAttribute("username","johnson"); s ...
- Servlet和JSP读书笔记(二)
一. GenericServlet 1. 前面写的 Servlet和JSP学习笔记(一) 中的实例都是通过实现Servlet接口编写的,这样存在的问题就是:你必须实现Servlet中的所有方法,而不管 ...
- JSP 学习二
在基于昨天对JSP学习的基础上,今天我们来学习JSP的指令和JSP 对中文的处理. 一.JSP指令简介 JSP 指令是为JSP引擎而设计,它并不直接产生任何可见的输出,而只是告诉引擎如何处理JSP页面 ...
随机推荐
- 从英文变形规则计算到Restful Api设计
➠更多技术干货请戳:听云博客 一天在研究Restful API设计,命名的时候我总是很纠结,我相信大多数人也有这种感觉,不是说想不出来某个单词怎么写的问题,像我这种没事背单词背到13000词量的人也要 ...
- CoreData
之前在学习使用SQLite时, 需要编写大量的sql语句,完成数据的增删改查,但对于不熟悉sql语句的开发人员来说,难度较大,调试程序比较困难. 由此出现CoreData框架,将sql的操作转换成为对 ...
- 学习Swift的点点滴滴
1.类型标注 之前不知道为啥别人写的Swift语言的时候,定义常量或者变量的格式是 常量: let 常量名: 常量类型 = 常量值 或者 变量: var 变量名: 变量类型 = 初始值 原来书上有记 ...
- 在 CentOS7 上部署 zookeeper 服务
在 CentOS7 上部署 zookeeper 服务 1 用 SecureCRT 或 XShell 等 Linux 客户端工具连接至 CentOS7 服务器: 2 进入到 /usr/local/too ...
- 解决方法:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
在Windows Server 2008 x64 上部署一个Vs 2008开发的.net2.0 的asp.net web 程序,调用了office的组件来导入导出excel文件,其中托管管道模式为集成 ...
- DBCC CheckDB遇到a database snapshot could not be created
在备份一个客户的数据库时(数据库版本为SQL 2005 Express版本),做DBCC CHECKDB时遇到了下面错误信息: dbcc checkdb('DB_NAME'); 消息 5030,级别 ...
- mysql 单表排序,相同值排序
两种方式: 第一种是利用笛卡尔积,两对比排序 -- 学校类型数据 SELECT t.examid,'-' AS unitcode,t.schooltype,'-' AS classname,t.bkr ...
- web.xml is missing and <failOnMissingWebXml> is set to true 错误解决办法
对web项目的解决方案: 右击项目——>Java EE Tools——>Generate Deployment Descriptor Stub. 然后系统会在src/main/webapp ...
- C# 自定义文件图标 双击启动 (修改注册表)
程序生成的自定义文件,比如后缀是.test 这种文件怎么直接启动打开程序,并打开本文件呢 1.双击打开 2.自定义的文件,有图标显示 3.自定义的文件,点击右键有相应的属性 后台代码:(如何在注册表中 ...
- gitlab备份及迁移
Gitlab 创建备份 使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的Gitlab备份: gitlab-rake gitlab:ba ...