J2EE 第三周

一、Session

1.Session是什么

Session直接翻译成中文比较困难,一般都译成时域。

在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。以及如果需要的话,可能还有一定的操作空间。

具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到关闭浏览器所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。需要注意的是,一个Session的概念需要包括特定的客户端,特定的服务器端以及不中断的操作时间。A用户和C服务器建立连接时所处的Session同B用户和C服务器建立连接时所处的Session是两个不同的Session。

2.Session的工作原理

当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中。

首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量。

当执行PHP脚本时,通过使用session_register()函数注册session变量。

当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下的session库中,这个路径可以通过php.ini文件中的session.save_path指定,下次浏览网页时可以加载使用。

3.Session的使用方法

存储需要在整个用户会话过程中保持其状态的信息,例如登录信息或用户浏览 Web应用程序时需要的其它信息。

存储只需要在页重新加载过程中或按功能分组的一组页之间保持其状态的对象。

Session 的作用就是它在 Web服务器上保持用户的状态信息供在任何时间从任何设备上的页面进行访问。因为浏览器不需要存储任何这种信息,所以可以使用任何浏览器,即使是像 Pad 或手机这样的浏览器设备。

4.session与cook的区别与联系

Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;
     Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。

二、代码

@WebFilter(filterName="log"
,urlPatterns={"/*"})
//创建一个LOgFilter类
public class LogFilter implements Filter
{
//FilterConfig可用于访问Filter的配置信息
private FilterConfig config;
//实现初始化方法
public void init(FilterConfig config)
{
this.config = config;
}
//实现销毁方法
public void destroy()
{
this.config = null;
}
//执行过滤的核心方法
public void doFilter(ServletRequest request,
ServletResponse response, FilterChain chain)
throws IOException,ServletException//创建一个doFilter 类,request参数是用于获取客户请求数据,response参数是用于发送响应数据,chain参数是过滤调用链。
{
//---------下面代码用于对用户请求执行预处理---------
//获取ServletContext对象,用于记录日志
ServletContext context = this.config.getServletContext();
long before = System.currentTimeMillis();//是获得当前时间距离1970-1-1 00:00:00经过的毫秒数
System.out.println("开始过滤...");
//将请求转换成HttpServletRequest请求
HttpServletRequest hrequest = (HttpServletRequest)request;//把request强制类型转换为HttpServletRequest对象
//输出提示信息
System.out.println("Filter已经截获到用户的请求的地址: " +
hrequest.getServletPath());//hrequest.getServletPath()是返回的是项目名到当前jsp文件的路径(意思就是在这个项目首页到文件的路径)
//Filter只是链式处理,请求依然放行到目的地址
chain.doFilter(request, response);//调用下一个filter。
//---------下面代码用于对服务器响应执行后处理---------
long after = System.currentTimeMillis();//是获得当前时间距离1970-1-1 00:00:00经过的毫秒数
//输出提示信息
System.out.println("过滤结束");
//输出提示信息
System.out.println("请求被定位到" + hrequest.getRequestURI() +
" 所花的时间为: " + (after - before));//hrequest.getRequestURI()是返回的整个URL的路径请求(意思就是返回的浏览器地址栏的整个地址)
}
}

原文地址:https://www.cnblogs.com/wang-hao/p/8649833.html

时间: 2024-08-06 17:27:57

J2EE 第三周的相关文章

J2EE 第三周(03.19-03.25)

1.关于用户授权的Filter例子 用户授权的Filter:Filter负责检查用户请求,根据请求过滤用户非法请求. LoginFilter.java package com.ljq.servlet; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.Se

第三周活动进度

学习进度表:   第三周内容 时间 周一(4:10-6:00)上课,周二晚上(8:00-9:00),周四晚上(8:00-8:30),周四下午(4:10-6:00)javaweb课程 代码行数 200行 发博客量 3篇 了解到的知识 随机数的产生,四则运算的开发思路(分解),简单的数据库创建表. 周活动详细记录表: 日期/内容 写代码 上网查方法 上课 看书(构建执法) 3.6 2小时(150行)大概完成   2小时   3.7   查询缺失功能的方法   1小时 3.8         3.9

20145207《Java程序设计》第三周学习总结

20145207<Java程序设计>第三周学习总结 教材学习内容总结 这部分可能要扒一些课本而上的东西了.在第三章中,知道了Java可区分为基本类型和类类型两大类型系统,其中类类型也称为参考类型.在这一周主要学习了类类型. 对象(Object):存在的具体实体,具有明确的状态和行为 类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制. 简单来说,类是对象的设计图,对象是类的实例. 要深刻理解对象的含义,例如Clothes c1 = new Clot

每周学习进度--第三周

  第三周 所花时间(包括上课) 300min 代码量 258 博客量 2 了解到的知识点 初步了解了如何做软件需求分析

20145326蔡馨熠《信息安全系统设计基础》第三周学习总结

教材学习内容总结 书上有的内容我就不重复赘述了,只需要将部分重要的知识点归纳总结一下. 1.进制 二进制.八进制.十进制.十六进制(转换:以二进制作为中间变量) 2.字 每台计算机都有一个字长,指明整数和指针数据的大小. 虚拟地址是以这样的一个字来编码的,字长决定虚拟地址空间的最大范围. 3.字节顺序 小端法——在存储器中按照从最低有效字节到最高有效字节的顺序存储对象. 大端法——从最高有效字节到最低有效字节的顺序存储. 4.布尔代数 (1)二进制值是计算机编码.存储.操作信息的核心(0.1),

马哥2016全新Linux+Python高端运维班第三周作业作答

                    马哥2016全新Linux+Python高端运维班第三周作业                                           1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可.     [[email protected] ~]# who | awk '{print $1 $NF}'| uniq -d     [[email protected] ~]# who     yicx     :0  

第三周学习总结

20145336第三周JAVA实验报告 20145336 <Java程序设计>第三次实验实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 姓名:张子扬 指导教师:娄嘉鹏 实验日期:2016.04.22 实验名称:Java开发环境的熟悉(Linux + Eclipse) 实验内容: XP基础 XP核心实践 相关工具 实验目的与要求: 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 完成实验.撰

印度浦那三周感受

本来打算写印度浦那一周感受的,结果一周过去了一个字都没写,然后打算写二周感受,结果第二周也没找到时间来写.第三周是异常繁忙的一周,终于在周末找到了一点时间来编写. 这次去印度浦那是作为ThoughtWorks University的Coach,需要在印度呆3个多月. 2月27日从成都出发到浦那,整个过程非常纠结,需要成都飞上海,然后上海飞德里,最后德里飞浦那.整个行程从周六下午的2点到周日早上的7点才完成.周日早上的7点是浦那的时间.浦那和中国有两个半小时的时差,所以浦那的早上7点是中国的早上9

20145123刘森明《Java程序设计》第三周学习总结

教材学习内容总结 ·理解Clothes c1 = new Clothes();·构造方法决定类生成对象的方式:this.new·== 与 equals的区别:==比较是比较对象的地址,而equals 是逻辑上相等·基本类型包装:int-Integer.long-Long.byte-Byte.float-Float.double-Double.boolean-Boolean....·String/StringBuffer/StringBuilder·学会使用Java API,在Windows下一定