javaEE之第三周之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的路径请求(意思就是返回的浏览器地址栏的整个地址) } }
session
一:概念:
在计算机中,尤其是在网络应用中,称为“会话”。具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,
也就是用户浏览这个网站所花费的时间。session实际上是一个特定的时间概念。
二:工作原理:
当有Session启动时,服务器生成一个威一值,称为Session ID(好像是通过取进程ID的方式取得的)。 服务器开辟一块内存,对应于该Session ID。
服务器再将该Session ID写入浏览器的cookie。 服务气内有一进程,监视所有Session的活动状况,如果有Session超时或是主动关闭,服务器就释放改内存块。 当浏览器连入IIS时并请求的ASP内用到Session时,IIS就读浏览器Cookie中的Session ID。 然后,服务检查该Session ID所对应的内存是否有效。 如果有效,就读出内存中的值。 如果无效,就建立新的Session。
三:session的用法:
Session 是 用于保持状态的基于 web服务的方法。Session 允许通过将对象存储在 Web服务器的内存中在整个用户会话过程中保持任何对象,常用于执行以下操作: 存储需要在整个用户会话过程中保持其状态的信息,例如登录信息或用户浏览 Web应用程序时需要的其它信息。 存储只需要在页重新加载过程中或按功能分组的一组页之间保持其状态的对象。 Session 的作用就是它在 Web服务器上保持用户的状态信息供在任何时间从任何页访问。因为浏览器不需要存储任何这种信息,所以可以使用任何浏览器,即使是像 PDA 或手机这样的浏览器设备
四:session与cook的区别与联系:
https://blog.csdn.net/jiangpingjiangping/article/details/77618907