IT兄弟连 JavaWeb教程 Servlet会话跟踪 经典面试题
1.描述Cookie的作用
Cookie是网站保存在浏览器客户端的信息,也就是说保存在访客的机器里的变量,一般随着HTTP头发送到客户端。在Cookie生效之后及失效之前,客户每次发出页面请求的时候,都会把Cookie -块发送到服务器,只要我们针对它进行相应的处理,就可以改变它的值。
2.描述Session的作用
Session的中文译名叫做”会话”,其本来的含义是指有始有终的一系列动作/消息,比如用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。
3.Cookie和Session有什么区别?它们各自的应用范围是什么?
● cookie数据存放在客户的浏览器上,session数据放在服务器上。
● cookie不是很安全,别人可以分析存放在本地的Cookie并进行Coo kie欺骗,考虑到安全应当使用session。
● session在一定时间内保存在服务器上。当访问增多,会比较占用服务器的资源。
● 考虑到提高服务器的性能,应当使用Cookie。
● 单个cookie保存的数据不能超过4K,很多浏览器Coo kie有数量限制。
● 将登录信息等重要信息存放为Session:其它信息如果需要保留,可以放在Cookie中。
4.Session的工作原理是什么?
Session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。当程序需要为某个客户端的请求创建—个session时,服务器首先检查这个客户端的请求里是否已包含了—个session标识(称为session id),如果已包合则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建—个),如果客户端请求不包含session id,则为此客户端创建—个session并且生成—个与此session相关联的session id,session id的值应该是—个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。倮存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。—般这个cookie的名字都是类似于SEEESIONID。但cookie可以被人为的禁止,则必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。
5.Session如何存取?Session何时被创建?Session何时被删除?如何在关闭浏览器的时候删除Session?
通过HttpServletRequest对象的getSession0来获取session。
存储数据方式:session.setAttribute(”key”,value);
获取数据方式:session.getAttribute(”key”);
Session对象在调用HttpServletRequest.getSession(true)语句时被创建。
删除session:
调用HttpSession.invaldata()方法:
距离上一次收到客户端发送的session id时间间隔超过了session的超时设置。
关闭浏览器的时候删除session:
在页面中添加onunload事件,当关闭浏览器时,执行服务器端删除session代码。
优点:退出时,能及时进行处理。缺点:当用户打开多个页面时,关闭任何—个页面都有可能导致用户的退出。
6.什么是Session超时?如何修改默认的超时时间?
Session超时指的是: Web服务器会将空闲时间过长的Session对象删除掉,以节省服务器内存空间资源。web服务器缺省的超时时间限制:—般是30分钟。修改Session的缺省时间限制,有如下两种方式:
● 通过修改tomcat中conf/web.xml文件的设置,代码如下所示:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
● 通过编程的方式来修改,通过调用Session对象的setMaxInactiveInterval方法来修改,该方法的声明如下所示:
void setMaxInactiveInterval(int seconds);
7.HttpSession session = request.getSession()与HttpSession session = request.getSession(true)的区别?getParameter与getAttribute的区别?
● HttpSession session = request.getSession()与HttpSession session = request.getSession(true)的区别如下:
HttpSession session = request.getSession(true)表示当参数为true时:先查看请求中有没有Sessionld,如果没有Sessionld,服务器创建—个Session对象:如果有Sessionld,依据Sessionld查找对应Session对象,找到则返回,找不到则创建—个新的Session对象,所以flag为true时,一定能得到—个Session对象;当flag为false时,没有Sessionld及有Sessionld但没有找到Session对象,均返回nu(七)找到则返回。HttpSession session = request.getSession0等价于HttpSession session=request.getSession(true),供该方法是为了代码书写更方便一些,大部分情况下是不管找没找到都需要返回一Session对象。
● getParameter与getAttribute的区别如下:
request.getParameter()方法是获得客户端传送给服务器的参数值,代表http请求数据。由URL传入或由FORM提交的内容,返回值是String类型。request.getAttribute()属性值,数据在具有转发关系的Web组件之间共享,返回值为Object类型。
IT兄弟连 JavaWeb教程 Servlet会话跟踪 经典面试题的更多相关文章
- IT兄弟连 JavaWeb教程 Servlet会话跟踪 经典案例
案例需求:编写一个servlet,可以向session中存放一个消息,再编写一个servlet可以从session取得session中存放的这个消息. 案例实现: package com.xdl.se ...
- IT兄弟连 JavaWeb教程 Servlet会话跟踪 Session常用方法
● public Object getAttribute(String name) 该方法返回在该session会话中具有指定名称的对象,如果没有指定名称的对象,则返回null. ● public ...
- IT兄弟连 JavaWeb教程 Servlet会话跟踪 Session技术
Servlet提供了HttpSession接口,该接口提供了一种跨多个页面请求或访问网站时识别用户以及存储有关用户信息的方式. Servlet容器使用这个接口来创建一个HTTP客户端和HTTP服务器之 ...
- IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie常用方法
以下是在Servlet中操作Cookie时可使用的有用的方法列表 ● public void setDomain(String pattern) 该方法设置cookie适用的域,例如 itxdl.c ...
- IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie路径问题
操作Cookie时,需要注意路径问题: 设置操作:任何路径都可以设置Cookie,但是有时我们也是用设置进行替换Cookie和删除Cookie(maxAge=0)! 替换:只能由完全相同的路径来操作! ...
- IT兄弟连 JavaWeb教程 Servlet会话跟踪 创建Cookie
Tomcat作为Web服务器,对Cookie提供了良好的支持.那么,运行在Tomcat的Servlet该如何访问Cookie呢?幸运的是,Servlet无需直接和HTTP请求或响应中的原始Cookie ...
- IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie技术原理
Cookie使用HTTPHeader传递数据.Cookie机制定义了两种报头,Set-Cookie报头和Cookie报头.Set-Cookie报头包含于Web服务器的响应头(ResponseHeade ...
- IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie技术简介
Cookie的英文原意是“点心”,它是在客户端访问Web服务器时,服务器在客户端硬盘上存放的信息,好像是服务器送给客户的“点心”.服务器可以根据Cookie来跟踪客户状态,这对于需要区别客户的场合(如 ...
- IT兄弟连 JavaWeb教程 Servlet会话跟踪 Session优缺点
● 数据存储在服务器,安全. ● session能保存Object类型数据,也就是说能存储任意数据. ● 可存储的数据大小,理论上是无限制的. ● 因为数据存储在服务器端,当用户比较多时,会占 ...
随机推荐
- python网络爬虫之使用scrapy下载文件
前面介绍了ImagesPipeline用于下载图片,Scrapy还提供了FilesPipeline用与文件下载.和之前的ImagesPipeline一样,FilesPipeline使用时只需要通过it ...
- Machine Learning in Action(6) AdaBoost算法
Adaboost也是一种原理简单,但很实用的有监督机器学习算法,它是daptive boosting的简称.说到boosting算法,就不得提一提bagging算法,他们两个都是把一些弱分类器组合起来 ...
- (转)Android--UI之ImageView
前言 这篇博客聊一聊在Android下ImageView的使用,在此篇博客中,会讲解到ImageView的一些属性的使用,以及ImageView展示图片的放大.缩小.旋转等操作.最后再讲解一下Andr ...
- Gym - 100283K K. Cubes Shuffling —— 贪心
题目链接:http://codeforces.com/gym/100283/problem/K 题解: 要使其相邻两项的差值之和最小,那么越靠中间,其数值越小. 那么剩下的问题就是如何放数字了.一开始 ...
- 人生苦短之Python函数的健壮性
如何评论一个开发代码写的好?清晰简洁明了?No,No,一个处女座就可以写出来了,整齐地代码,详细的注释不是代码好的标准,应该说不是最重要的标准.代码写的是否健壮才是检验的重要标准. 代码的健壮性: 当 ...
- 转:Windows下WSH/JS实现SVN服务器钩子脚本阻止提交空日志信息和垃圾文件
http://blog.csdn.net/caikanxp/article/details/8279921 如何强制用户在提交SVN时填写日志信息? 如果用户使用的都是TortoiseSVN客户端,可 ...
- nginx ,node 配置项目
nginx ,node 配置项目 1.安装好node,npm 2.安装cnpm,-g是全局的 sudo npm install -g cnpm --registry=https://registry. ...
- struts2 小例子(教训篇)
学了一阵子的struts2了,到了最后,想自己写个小程序,发现最简单的配置文件都 竟然能弄错,是我这几天睡眠不足么.怎么可能,爱好这门的,怎么会这样.这样真的很伤心啊.小小心灵受不了这种打击啊.... ...
- 【转载】Myeclipse中实现js的提示
近期需要大量使用JS来开发,但是MyEclipse2014自带的JS编辑器没有代码提示的功能,开发效率有点低,所以安装了一个Spket的插件,过程非常简单,SVN插件的安装比这个更简单. Spket插 ...
- APTM敏捷性能测试模型
随着应用系统的日趋复杂,仅在系统测试和验收测试阶段执行性能测试已经不能满足迟早发现和解决系统性能瓶颈的要求,Connie Smith博士和Lloyd Winlliams博士在他们提出 的软件性能工程( ...