jsp之监听器
来源:互联网 发布:avmask永久域名 编辑:程序博客网 时间:2024/05/17 12:55
(1)什么是监听器?
是servlet规范当中定义的一种特殊的组件,用来监听容器产生的事件并且进行相应的处理。
容器会产生两大类事件: a,生命周期相关的事件:容器创建或者销毁request,session,ServletContext(servlet上下文)这些对象时产生的事件。b,绑订相关的事件:
对request,session,ServletContext(servlet上下文)调用了setAttribute,removeAttribute产生的事件。
(2)如何写一个监听器?
step1, 写一个java类,实现相应的监听器接口(要看监听的事件类型: HttpSessionListener)。
step2, 在监听器接口对应的方法里面,实现监听的处理逻辑。
step3,注册(web.xml)
(3)ServletContext
1)什么是Servlet上下文?
容器在启动的时候,会为每一个应用创建唯一的一个
符合ServletContext接口的一个对象。该对象会一直存在,
除非关闭容器。
2)如何获得servlet上下文?
a,GenericServlet提供了getServletContext方法。
b,ServletConfig提供了getServletContext方法。
c, FilterConfig提供了getServletContext方法。
d, HttpSession提供了getServletContext方法。
3)servlet上下文的作用?
a,绑订相关的方法
setAttribute,removeAttribute,getAttribute
request,session,ServletContext这三个对象都有绑订
相关的方法,应该优先使用生命周期短(request<session
<servlet上下文)的。
b, 访问全局的初始化参数
step1, 使用<context-param>来配置,该参数可以被
所有的servlet,filter访问。
step2, 使用ServletContext提供的getInitParameter方法
来获取参数值。
c, 获得实际部署时的物理路径。
输出通过servletContext得到的内容:
配置web.xml:
在servlet中得到该数据:
最后写一个统计在线人数的程序,利用到监听器知识,即触发某个事件时,对应的方法自动触发执行:step2
step4,编写logout.jsp文件
是servlet规范当中定义的一种特殊的组件,用来监听容器产生的事件并且进行相应的处理。
容器会产生两大类事件: a,生命周期相关的事件:容器创建或者销毁request,session,ServletContext(servlet上下文)这些对象时产生的事件。b,绑订相关的事件:
对request,session,ServletContext(servlet上下文)调用了setAttribute,removeAttribute产生的事件。
(2)如何写一个监听器?
step1, 写一个java类,实现相应的监听器接口(要看监听的事件类型: HttpSessionListener)。
step2, 在监听器接口对应的方法里面,实现监听的处理逻辑。
step3,注册(web.xml)
(3)ServletContext
1)什么是Servlet上下文?
容器在启动的时候,会为每一个应用创建唯一的一个
符合ServletContext接口的一个对象。该对象会一直存在,
除非关闭容器。
2)如何获得servlet上下文?
a,GenericServlet提供了getServletContext方法。
b,ServletConfig提供了getServletContext方法。
c, FilterConfig提供了getServletContext方法。
d, HttpSession提供了getServletContext方法。
3)servlet上下文的作用?
a,绑订相关的方法
setAttribute,removeAttribute,getAttribute
request,session,ServletContext这三个对象都有绑订
相关的方法,应该优先使用生命周期短(request<session
<servlet上下文)的。
b, 访问全局的初始化参数
step1, 使用<context-param>来配置,该参数可以被
所有的servlet,filter访问。
step2, 使用ServletContext提供的getInitParameter方法
来获取参数值。
c, 获得实际部署时的物理路径。
String getRealPath(String path);
通过代码先了解一下servletContext,即servlet上下文。
- //获得ServletContext
- ServletContext sctx=getServletContext();
- sctx.setAttribute("username","user1");
- out.println("已经将username绑定"+"到了ServletContext上面");
- ServletContext sctx=getServletContext();
- String username=(String)sctx.getAttribute("username");
配置web.xml:
- <!-- 全局初始化参数 -->
- <context-param>
- <param-name>version</param-name>
- <param-value>1.0</param-value>
- </context-param>
- <listener>
- <listener-class>web.CountListener</listener-class>
- </listener>
在servlet中得到该数据:
- String version=sctx.getInitParameter("version");
- out.println("version:"+version);
最后写一个统计在线人数的程序,利用到监听器知识,即触发某个事件时,对应的方法自动触发执行:
step1
编写servlet
- import javax.servlet.ServletContext;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpSession;
- import javax.servlet.http.HttpSessionEvent;
- import javax.servlet.http.HttpSessionListener;
- public class CountListener implements HttpSessionListener {
- //session对象一旦创建成功,会执行该方法
- private int count=0;
- public void sessionCreated(HttpSessionEvent arg0) {
- // TODO Auto-generated method stub
- count++;
- HttpSession session=arg0.getSession();
- ServletContext sctx=session.getServletContext();
- sctx.setAttribute("count", count);
- }
- //session对象被销毁会执行该方法
- public void sessionDestroyed(HttpSessionEvent arg0) {
- // TODO Auto-generated method stub
- count--;
- HttpSession session=arg0.getSession();
- ServletContext sctx=session.getServletContext();
- sctx.setAttribute("count", count);
- }
- }
配置全局化参数:
- <listener>
- <listener-class>web.CountListener</listener-class>
- </listener>
step3,编写jsp文件
- <body style="font-size:30px;">
- 当前系统在线人数是:
- <%=application.getAttribute("count") %>
- <%=application.getAttribute("username") %>
- </br>
- <a href="logout.jsp">退出系统</a>
- </body>
step4,编写logout.jsp文件
- <body>
- <%
- session.invalidate();
- %>
- </body>
- jsp之监听器
- Servlet/jsp之监听器
- JSP高级应用之“监听器“
- 十八、初学jsp之八大监听器
- Jsp之五 过滤器与监听器
- jsp---->监听器
- JSP--监听器
- JSP-JSP监听器
- JSP的Servlet监听器
- jsp 过滤器和监听器
- JSP中的监听器
- JSP中的监听器
- jsp监听器Listener
- JSP监听器的使用
- 08 JSP&Servlet监听器
- jsp-servlet监听器
- jsp监听器listener
- jsp--对象感知监听器
- oracle 隨機取數據
- struts 表单乱码
- C#常用文件操作
- 使用spring配置RMI
- Android资源目录---assets与res/raw区别
- jsp之监听器
- zencart忘记后台密码的解决办法
- 第八次上机
- C++ map key 指针相关
- linux / mac 安装drush
- Git详解之三:Git分支
- C/C++代码格式优化工具----astyle
- 2013百度校园招聘-机器学习和数据挖掘工程师-笔试题
- 第八次