黑马程序员技术交流社区

标题: 【石家庄校区】java小白总结前端第20天的笔记-Listener&JSON [打印本页]

作者: 隔壁小白    时间: 2017-12-16 23:38
标题: 【石家庄校区】java小白总结前端第20天的笔记-Listener&JSON
本帖最后由 隔壁小白 于 2017-12-16 23:50 编辑

[学习交流] 【石家庄校区】java小白总结前端第20天的笔记-Listener&JSON
© 隔壁小白 初级黑马   /  2017-12-16 23:38  /  1 人查看  /  0 人回复  /   0 人收藏 [url=]保留作者信息[/url] [url=]禁止商业使用(站长自定义文字)[/url]






*AJAX的响应数据
文本,一段html的数据,XML,JSON
*使用工具生成XML的文件
通常使用xStream工具,将集合,数组,对象转成XML
qqBB0481296A56989BF7E01398425AC5B3/f3ab7e38f4704dfab79c98cf26505f4f/cad4cdaf82e5410a89c8fffb57336823.jpg
*JSON
D:/%E6%9C%89%E9%81%93%E4%BA%91%E7%AC%94%E8%AE%B0/qqBB0481296A56989BF7E01398425AC5B3/808e3ff67e6044eda86eb13078cc5b76/wpsde08.tmp.jpeg
*JSON的数据格式的介绍
{ " id " :1 , "name" :aaa}
[ { " id " :1 , "name" :aaa} , { " id " :2 , "name" :bbb} ]
{
            “city”:{“cid”:1,”cname”:”xxx”}
}
*JSON的生成工具
*JSONLIB 转换JSON数据:
* JSONArray :将数组或List集合转成JSON.
* JSONObject :将对象或Map集合转成JSON.
*监听器Listener
*监听器:就是一个Java类,用来监听其他的Java的状态的变化
*监听器的用途
用来监听去他的对象的变化;
主要应用在图形化界面中比较多:
GUI,Android
*监听器的术语
*事件源:指的是监听器的对象(汽车)
*监听器:指的是监听的对象(报警器)
*事件源与监听器的绑定:就是汽车上安装报警器
*事件:指的是事件源的改变(踢一脚汽车)
主要功能:得到事件源对象
*事件处理:  eg:onclick                    =              ...
触发一件事       绑定   处理事件
*WEB中的监听器
WEB中的Listener和filter是属于Servlet规范中的高级的技术.
WEB中的监听器共有三类八种(监听三个域对象)
事件源:Servlet中的三个域对象.ServletContext,HttpSession,ServletRequest.
监听器:自定义类实现8个接口.
事件源和监听器的绑定:配置.
*WEB监听器的分类
三类八种:
* 一类:监听三个域对象的创建和销毁的监听器:
    * ServletContextListener
    * HttpSessionListener
    * ServletRequestListener
* 二类:监听三个域对象的属性变更的监听器(属性添加,移除,替换):
    * ServletContextAttributeListener
    * HttpSessionAttributeListener
    * ServletRequestAttributeListener
* 三类:监听HttpSession中的JavaBean的状态改变(绑定,解除绑定,钝化,活化)
    * HttpSessionBindingListener
    * HttpSessionActivationListener
* 一类:监听三个域对象的创建和销毁的监听器:
*ServletContextListener:监听ServletContext对象的创建和销毁:
*方法:
[attach]202907[/attach]

*ServletContext对象的创建和销毁:
* 创建:服务器启动的时候,服务器为每个WEB应用创建一个属于该web项目的对象ServletContext.
* 销毁:服务器关闭或者项目从服务器中移除的时候.
*企业中的应用:
1.加载框架的配置文件:Spring框架 ContextLoaderListener
2.定时任务调度:Timer,TimerTask;
*HttpSessionListener:监听HttpSession的创建和销毁的监听器:
*方法


*HttpSession何时创建和销毁的
* 创建:服务器端第一次调用getSession();
* 销毁:
    * 非正常关闭服务器(正常关闭session会序列化):
    * session过期了默认30分钟.
    * 手动调用session.invalidate();

*HttpSession的问题
* 访问Servlet会不会创建Session : 不会
* 访问JSP会不会创建Session :会.(内置对象调用了getSession)
* 访问html会不会创建Session :不会
*应用
记录网站在线人数
*ServletRequestListener:监听ServletRequest对象的创建和销毁的监听器:
*方法:

*request对象何时创建和销毁:
* 创建:客户端向服务器发送一次请求,服务器就会创建request对象.
* 销毁:服务器对这次请求作出响应后就会销毁request对象.
*问题:
访问一个Servlet会不会创建request对象:会
访问一个JSP会不会创建request对象:会
访问一个HTML会不会创建request对象:会
*应用
某网站或者网页的访问量
*二类
*ServletContextAttributeListener:监听ServletContext对象的属性变更:


*HttpSessionAttributeListener:监听HttpSession中的属性变更:


*ServletRequestAttributeListener:监听ServletRequest对象的属性变更的:

*三类
第三类监听器很特殊,不需要进行配置的.作用在JavaBean上的监听器.JavaBean可以自己感知到在Session中的状态.
* HttpSessionBindingListener:监听HttpSession中的JavaBean的绑定和解除绑定的


* HttpSessionActivationListener:监听HttpSession中的JavaBean的钝化和活化的.

* sessionDidActivate(); :--活化(反序列化)
* sessionWillPassivate(); :--钝化(序列化到硬盘)
*优化Session:
*为什么要优化
每个人或者访问量太大,导致内存大,占用大量资源,所以需要序列化到硬盘上,需要的时候,重新反序列化运行.
* 通过配置<Context>标签配置定时session序列化.
* 在tomcat/conf/context.xml中配置<Context> :在tomcat中所有的虚拟主机和虚拟路径都会按照这个配置执行.
* 在tomcat/conf/Catalina/localhost/context.xml配置<Context> :在tomcat中的localhost虚拟主机中的所有虚拟路径按照这个配置执行.
* 在当前的工程下的META-INF/context.xml配置<Context> :当前这个工程按照配置执行.










欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2