77范文网 - 专业文章范例文档资料分享平台

javaWeb知识总结 - 图文(3)

来源:网络收集 时间:2020-06-07 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

3.

第四章 Web

4.1 Web状态管理概述:

HTTP协议使用的是无状态连接。(每一次请求响应都是独立的,相互没有关系) 对容器而言,每一个请求都来自于一个新的客户。

4.2 状态管理解决方案:

4.2.1 隐藏字段 表单隐藏字段

不足:因为需要动态创建隐藏字段,所以只能支持动态网页,静态网页无法存储. 4.2.2 Cookie(协议)

Cookie数据存在客户端浏览器中,如果客户端禁止Cookie,这种方案将失效。 浏览器可以删除本地Cookie数据,禁止该功能。

//实例化Cookie对象

Cookie userNameCookie = new Cookie(\, userName); Cookie passwordCookie = new Cookie(\, password); //设置Cookie失效时长

userNameCookie.setMaxAge(14*24*3600);//两周后失效 passwordCookie.setMaxAge(14*24*3600);//两周后失效 //将Cookie信息返回给客户端

response.addCookie(userNameCookie); response.addCookie(passwordCookie); //获取Cookie中保存的用户名和密码

for (int i = 0; i < allCookies.length; i++) {

if (allCookies[i].getName().equals(\)) { userName = allCookies[i].getValue();

}

}

if (allCookies[i].getName().equals(\)) { password = allCookies[i].getValue(); }

4.2.3 Session会话对象

把客户的状态信息保存在服务器端。

Session对于的是浏览器进程,所以只要浏览器进程不关闭session都不会销毁。浏览器关闭时session对象不删除,会被释放。

//创建或获取sesiion对象

HttpSession session=request.getSession(); //判断sesion对象是新建还是已存在 if (session.isNew()) {

System.out.println(\新建的session会话\); }

//设置sesiion会话对象的最长不活动时间(单位秒)——不活动时间: 页面不操作,session释放

session.setMaxInactiveInterval(30); //获取session对象中的数据 String userName=(String)session.getAttribute(\); String password=(String)session.getAttribute(\); userName=\; password=\;

//向session会话对象中写入数据

session.setAttribute(\, userName); session.setAttribute(\, password);

session.getId()

4.2.4 URL重写

//向session会话对象ID

sessionInvalidate() //即时销毁session会话

解决用户禁用Cookie的方法。一样是通过session

第五章 对象作用域与servlet时间监听器

5.1 对象作用域

在Servlet里可以用一个名字绑定一个对象。 作用域 ServletContext(上下文) HttpSession(会话) HttpServletRequest(请求) 属性操作方法 作用域范围 整个web应用程序 一个会话交互过程 一次请求过程 1. ServletContext(上下文)对象作用域

对于整个web应用,只有一个ServletContext对象,而且在web应用中的所有地方都可以访问它。Servlet对象由Web容器创建并实例化,它可以多线程同时读/写属性,是线程不安全的,所以需要对属性的读写进行同步处理或深度Clone复制。当Web容器关闭,会销毁ServletContext对象。

建议:在ServletContext对象中尽量减少保存会被修改的数据,可以采用其他方式在多个Servlet中共享,常用的方法是使用单例模式来处理共享数据。

2. HttpSession对象作用域

HttpSession对象是用于维护与一个客户的会话状态,在HttpSession对象中设置的属性不能被web应用中的所有地方都可以访问。HttpSession对象在用户会话期间存在,只能在处理属于同一个HttpSession的请求的线程中被访问,因此HttpSession对象的属性是线程安全的,但是当用户打开多个同属于一个进程的浏览器窗口,在这些窗口的访问属于同一个HttpSession对象,,会出现对此请求,需要多个工作线程来处理请求,可能造成同时多个线程读写属性。这个时候我们需要对属性的读写进行同步处理,一般使用同步块synchronized来解决。当会话被销毁,HttpSession中设置的属性也会被销毁。 3. HttpServletRequest对象作用域

HttpServletRequest对象用于一次客户端请求过程。对于每一个请求,由一个线程来执行,都会创建有一个新的HttpServletRequest对象,所以HttpServletRequest对象只能在一个线程中被访问,他是绝对线程安全的。

注意:HttpServletRequest对象在doget/dopost方法的范围内有效,不要试图在方法调用结束后仍然保存请求对象的引用。

三个对象的共同点:都可以存取属性,拥有相同的属性操作方法, 三个对象的作用域大小:

ServletContext>HttpSession对象>HttpServletRequest对象 三个对象存活时间长短的比较

ServletContext>HttpSession对象>HttpServletRequest对象 三个对象对系统资源消耗的比较

ServletContext>HttpSession对象>HttpServletRequest对象 三个对象的线程安全性比较:

? ServletContext对象线程不安全 ? HttpSession对象线程较安全

? HttpServletRequest对象线程觉得安全

5.2 session的理解(重点)

1. 广义的session

中文名称叫会话,HTTP客户端和HTTP服务器开始通信就会产生会话,会话过程可以连续的,也可以中断,他有一个时间范围, 2. Servlet中的session

Session在Servlet中被定义为一个具体的接口(即HttpSession接口),这个接口有服务器来实现(如Tomact,Weblogic等),session通常是存储在服务器内存中,是由服务器创建和管理的。 3. session的创建

初次访问服务器上的一个servlet程序,该程序检测Http协议请求头中是否携带JSESSIONID或URL地址是否附加JSESSIONID。如果都没有找到,则调用getSession()方法创建一个新的Session会话对象,如果找到,就跳用getSession()方法返回以创建的session会话对象。 4. Session的销毁

1) 服务器被强制关闭,会根据服务器的具体实现对Session进行处理,如Tomecat在正常关闭时,会对session序列化到硬盘上,重新启动后会读取返序列化恢复session。 2) 程序中调用session.invalidate()方法,可以销毁当前Session对象,

3) session超时,指服务器连续一段时间内没有收到session所在的客户端浏览器的请求,超过了设置的时间。这时服务器会从内存中销毁该对象。

注意:浏览器关闭后只是对于服务器session的JSESSIONID失效,而服务器再也无法访问该session对象,导致session超时,服务器自动销毁该session对象。

5.3 监听器概述

监听session,request,servletContext三个对象里存取数据的变化。 监听器对象可以在事情发生前和发生后可以做一些必要的处理。 Servlt监听器主要目的是个web应用增加时间处理机制,以便于更好的监视和控制web应用的状态变化。

监听web应用程序范围内的事件: Web应用启动和销毁。

Web应用程序的属性发生改变的事件。

第六章 servlet过滤器

6.1 wed应用上的过滤器

在web应用程序中部署过滤器,对客户端和目标源来说都是透明的,他们并不知道过滤器的存在。

多个过滤器可以组成一个过滤连,链中每一个过滤器负责特定的操作和任务。 过滤器的一些常见的应用:

1.认证过滤:对用户请求进行统一的认证。

2.登录和审核过滤:对用户的访问请求进行记录和审核 3.图像转换过滤:转换图像格式

4.数据压缩过滤:对用户发生的数据进行压缩,从而减少传输量 5.加密过滤:对请求和响应进行加密解密处理 6.令牌过滤

7.资源访问触发时间过滤 8.XSLT过滤

9.MIME-type过滤

过滤连匹配规则:

1.web容器有限匹配请求URL的过滤器,然后再匹配Servlet名的过滤器 2.相同类型的过滤器始终按照web.xml文件中配置的顺序被调用。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库javaWeb知识总结 - 图文(3)在线全文阅读。

javaWeb知识总结 - 图文(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1097441.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: