java Servlet 监听器
来源:互联网 发布:java开发工作经历描述 编辑:程序博客网 时间:2024/05/01 12:54
什么是监听器?
答:
监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,
当被监听对象发生上述事件后,监听器某个方法将立即被执行。
java Servlet中有几种事件源?
答:
ServletContext, HttpSession 和 ServletRequest三个域对象
主要监听那些事件?
答:
监听三个域对象创建和销毁的事件监听器;
监听域对象中属性的增加和删除的事件监听器;
监听绑定到HttpSession 域中的某个对象的状态的事件监听器。
如何编写一个Servlet监听器?
答:
编写servlet监听器也需要实现一个特定的接口,并针对相应动作覆盖接口中的相应方法。
和其它事件监听器略有不同的是,servlet监听器的注册不是直接注册在事件源上,而是由web
容器负责注册,开发人员只需在web.xml文件中使用<listener>标签配置好监听器,web容器就会自动把监听器注册到事件源中。
一个 web.xml 文件中可以配置多个 Servlet 事件监听器,web 服务器按照它们在 web.xml 文件中的注册顺序来加载和注册这些 Serlvet 事件监听器。
ServletContext域对象如何创建和销毁?
答:
ServletContextListener 接口用于监听 ServletContext 对象的创建和销毁事件。
当 ServletContext 对象被创建时,激发contextInitialized (ServletContextEvent sce)方法
当 ServletContext 对象被销毁时,激发contextDestroyed(ServletContextEvent sce)方法。
ServletContext域对象何时创建和销毁:
答:
创建:服务器启动针对每一个web应用创建ServletContext
销毁:服务器关闭前先关闭代表每一个web应用的ServletContext
HttpSession域对象如何创建和销毁?
答:
HttpSessionListener接口用于监听HttpSession的创建和销毁创建一个Session时,sessionCreated(HttpSessionEvent se) 方法将会被调用。
销毁一个Session时,sessionDestroyed (HttpSessionEvent se) 方法将会被调用。销毁HttpSession不精确。
HttpSession域对象何时创建和销毁?
答:
创建:用户每一次访问时,服务器创建session;
销毁:如果用户的session 30分钟没有使用,服务器就会销毁session,我们在web.xml里面也可以配置session失效时间。
ServletRequest域对象如何创建和销毁?
答:
ServletRequestListener 接口用于监听ServletRequest 对象的创建和销毁。
Request 对象被创建时,监听器的requestInitialized方法将会被调用。
Request对象被销毁时,监听器的requestDestroyed方法将会被调用
ServletRequest域对象何时创建和销毁
创建:用户每一次访问,都会创建一个reqeust;
销毁:当前访问结束,request对象就会销毁。
如何监听三个域对象属性变化?
答:
Servlet规范定义了监听 ServletContext, HttpSession, ServletRequest 这三个对象中的属性变更信息事件的监听器。
这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener ServletRequestAttributeListener
这三个接口中都定义了三个方法来处理被监听对象中的属性的增加,删除和替换的事件,同一个事件在这三个接口中对应的方法名称完全相同,只是接受的参数类型不同。
Servlet3.0新特性-注解在Servlet中的使用?
答:
@WebServlet,部署servlet
@WebInitParam,用于设置参数,和@WebServlet和@WebFilter结合使用
@WebListener,部署Listener
WebFilter,部署Filter
MultipartConfig,用于处理表单enctype=multipart/formdata
Servlet3.0新特性-异步处理
答:
传统的Servlet必须等service执行完成后才能给浏览器响应,如果某个业务方法执行的时间比较长,那么浏览器也必须等待
异步执行可以解决这个问题,service方法可以开几个线程,分解一个线程的工作,等待所有线程执行完成后给浏览器响应
ServletRequest提供的api:
AsyncContext startAsync()
AsyncContext startAsync(ServletRequest,ServletResponse)
AsyncContext类代表异步处理的上下文,它提供了一些工具方法,可以分发请求、启动后台线程、获取request和response对象、设置异步调用超时时间等
注意事项:
1、必须在servlet中显示指定支持异步处理
2、在异步处理后的页面必须指定session=false
Servlet3.0新特性-改进的API有哪些?
答:
HttpServletRequest提供两个方法用于提取上传文件
Part getPart(String name);//根据文件名称获得文件
Collection<Part> getParts();//获取所有文件
Part类提供了文件类型、上传文件大小、输入流等信息
上传文件注意事项:
1、表单必须指定:enctype=“multipart/formdata”
2、在处理的Servlet中必须指定:@MultipartConfig
- JAVA EE Servlet监听器
- Java EE Servlet监听器
- Java EE Servlet监听器
- Java EE Servlet监听器
- java Servlet 监听器
- Java基础-Servlet监听器
- Java Servlet(四) 监听器
- Java Servlet(三) 监听器
- Java Servlet(三) 监听器
- Java乔晓松-Servlet事件监听器
- Java进阶(十三)servlet监听器
- JAVA Web servlet 与监听器
- Java进阶(十三)servlet监听器
- java web servlet servlet过滤器和监听器
- 传智播客java web 学习,Servlet事件监听器
- java servlet学习之监听器类
- java servlet学习之监听器类
- java servlet 监听器种类及介绍
- LauncherShortcuts 创建应用程序某个Activity的快捷方式
- oninput,onpropertychange,onchange的用法和区别
- JavaScript你所不知道的困惑(2)
- android 自定义webview 如何使用gps 如何用模拟的gps
- 伸展树的旋转和伸展操作
- java Servlet 监听器
- NSFileManager 方法
- 数位dp无前导零
- js前端导出excel表格
- 浏览器清浮
- 如何在PHP程序中使用FusionCharts创建JavaScript图表
- 漏洞都是怎么编号的CVE/CAN/BUGTRAQ/CNCVE/CNVD/CNNVD
- leetcode第一刷_Convert Sorted List to Binary Search Tree
- 性能优化--表索引优化