JavaWeb16-HTML篇笔记(一)
原创
我是小谷粒2018-06-04 15:46:27著作权
©著作权归作者所有:来自51CTO博客作者我是小谷粒的原创作品,如需转载,请注明出处,否则将追究法律责任
https://blog.51cto.com/u_13517854/2124612
```
1.1 上次课内容回顾:
AJAX:
* AJAX:异步的JavaScript And XML.
* XMLHttpRequest:
* 属性:
* onreadystatechange :当对象的状态改变的时候会触发.
* readyState :记录的是对象的状态.
* status :状态码.
* responseText :响应文本.
* responseXML :响应的XML.
* 方法:
* open(“请求方式”,”请求路径”,true);
* send(“请求参数”);
* setRequestHeader(“头名称”,”头的值”);
JQuery中的AJAX:
* load();
* get();
* post();
* ajax();
* $.ajax({
url:,
data:,
success:function(){
}
});
* AJAX中的数据的格式:
* 文本,HTML代码,XML,JSON.
```
1.2 监听器:Listener1.2.1 监听器的概述:1.2.1.1 什么是监听器:
* 监听器:就是一个Java类,用来监听其他的Java的状态的变化.
1.2.1.2 监听器的用途:
* 用来监听其他的对象的变化的.
* 主要应用在图形化界面中比较多:
* GUI,Android.
1.2.1.3 监听器的术语:
* 事件源:指的是被监听的对象.(汽车)
* 监听器:值的是监听的对象.(报警器)
* 事件源与监听器的绑定:就是在汽车上安装报警器.
* 事件:指的是事件源的改变.(踹汽车一脚)---主要的功能获得事件源对象.
1.2.2 WEB中的监听器的概述:1.2.2.1 WEB中的监听器:
WEB中的Listener和Filter是属于Servlet规范中的高级的技术.
WEB中的监听器共有三类八种(监听三个域对象)
* 事件源:Servlet中的三个域对象.ServletContext,HttpSession,ServletRequest.
* 监听器:自定义类实现8个接口.
* 事件源和监听器的绑定:配置.
1.2.2.2 WEB中的监听器的分类:
三类八种:
* 一类:监听三个域对象的创建和销毁的监听器:
* ServletContextListener
* HttpSessionListener
* ServletRequestListener
* 二类:监听三个域对象的属性变更的监听器(属性添加,移除,替换):
* ServletContextAttributeListener
* HttpSessionAttributeListener
* ServletRequestAttributeListener
* 三类:监听HttpSession中的JavaBean的状态改变(绑定,解除绑定,钝化,活化)
* HttpSessionBindingListener
* HttpSessionActivationListener
1.2.2.3 WEB中的监听器的使用:
编写一个类实现监听器的接口:
通过配置文件配置监听器:
1.2.3 一类:监听三个域对象的创建和销毁的监听器:1.2.3.1 ServletContextListener:监听ServletContext对象的创建和销毁:
【方法】:
![](https://s4.51cto.com/images/blog/201806/04/9e8e62990ba1d866c4aec30d6a64e604.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
【ServletContext对象的创建和销毁】:
* 创建:服务器启动的时候,服务器为每个WEB应用创建一个属于该web项目的对象ServletContext.
* 销毁:服务器关闭或者项目从服务器中移除的时候.
【应用代码】
public class MyServletContextListener implements ServletContextListener{
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("ServletContext对象被创建了...");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("ServletContext对象被销毁了...");
}
}
配置:
com.itheima.weblistener.MyServletContextListener
【企业中的应用:】
* 1.加载框架的配置文件 :Spring框架 ContextLoaderListener
* 2.定时任务调度:
* Timer,TimerTask
1.2.3.2 HttpSessionListener:监听HttpSession的创建和销毁的监听器:
【方法】
![](https://s4.51cto.com/images/blog/201806/04/d23112f6fa53caa37a80384eba40e007.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
【HttpSession何时创建和销毁的】
* 创建:服务器端第一次调用getSession();
* 销毁:
* 非正常关闭服务器(正常关闭session会序列化):
* session过期了默认30分钟.
* 手动调用session.invalidate();
【HttpSession的问题】
* 访问Servlet会不会创建Session : 不会
* 访问JSP会不会创建Session :会.
* 访问html会不会创建Session :不会
【应用的代码】
```
public class MyHttpSessionListener implements HttpSessionListener{
@Override
public void sessionCreated(HttpSessionEvent se) {
System.out.println("HttpSession被创建了...");
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("HttpSession被销毁了...");
}
}
配置:
com.itheima.weblistener.MyHttpSessionListener
```
1.2.3.3 ServletRequestListener:监听ServletRequest对象的创建和销毁的监听器:
【方法】:
![](https://s4.51cto.com/images/blog/201806/04/6128466a893ab1b25f51f228f211bece.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
【request对象何时创建和销毁】:
* 创建:客户端向服务器发送一次请求,服务器就会创建request对象.
* 销毁:服务器对这次请求作出响应后就会销毁request对象.
【问题】:
访问一个Servlet会不会创建request对象:会
访问一个JSP会不会创建request对象:会
访问一个HTML会不会创建request对象:会
【应用的代码】
```
public class MyServletRequestListener implements ServletRequestListener{
@Override
public void requestDestroyed(ServletRequestEvent sre) {
System.out.println("ServletRequest被销毁了...");
}
@Override
public void requestInitialized(ServletRequestEvent sre) {
System.out.println("ServletRequest被创建了...");
}
}
配置:
```
com.itheima.weblistener.MyServletRequestListener
1.2.4 二类:监听三个域对象的属性变更的监听器:(属性添加,移除,替换)1.2.4.1 ServletContextAttributeListener:监听ServletContext对象的属性变更:
![](https://s4.51cto.com/images/blog/201806/04/54e1525cdbe8e20d8d2a086c7ff7a4b3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
1.2.4.2 HttpSessionAttributeListener:监听HttpSession中的属性变更:
![](https://s4.51cto.com/images/blog/201806/04/f047f07979dbe8462d9f1f1b41351fb1.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
1.2.4.3 ServletRequestAttributeListener:监听ServletRequest对象的属性变更的:
![](https://s4.51cto.com/images/blog/201806/04/db03791e413ff6b4ecb13863bdb7c93b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
1.2.5 三类:监听HttpSession中的JavaBean的对象的状态改变的监听器
第三类监听器很特殊,不需要进行配置的.作用在JavaBean上的监听器.JavaBean可以自己感知到在Session中的状态.
1.2.5.1 HttpSessionBindingListener:监听HttpSession中的JavaBean的绑定和解除绑定的
![](https://s4.51cto.com/images/blog/201806/04/26f2dd989b49a99784337f151989e980.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
1.2.5.2 HttpSessionActivationListener:监听HttpSession中的JavaBean的钝化和活化的.
![](https://s4.51cto.com/images/blog/201806/04/c273e0107047c980638c5ee67173f4f6.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
```
* sessionDidActivate(); :--活化(反序列化)
* sessionWillPassivate(); :--钝化(序列化到硬盘)
***** 优化Session:
* 通过配置标签配置定时session序列化.
* 在tomcat/conf/context.xml中配置:在tomcat中所有的虚拟主机和虚拟路径都会按照这个配置执行.
* 在tomcat/conf/Catalina/localhost/context.xml配置:在tomcat中的localhost虚拟主机中的所有虚拟路径按照这个配置执行.
* 在当前的工程下的META-INF/context.xml配置:当前这个工程按照配置执行.
```
赞
0收藏
评论