国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

java—實(shí)現(xiàn)一個(gè)監(jiān)聽器HttpServletRequest的創(chuàng)建銷毀、在線人數(shù) (56)

2019-11-15 00:05:22
字體:
供稿:網(wǎng)友
java—實(shí)現(xiàn)一個(gè)監(jiān)聽器HttpServletRequest的創(chuàng)建銷毀、在線人數(shù) (56)在JavaWeb中的監(jiān)聽器分類

在Javaweb中存在三個(gè)被監(jiān)聽對象:

HttpServletRequest

HttpSessoin

ServletContext

監(jiān)聽者

被監(jiān)聽者

監(jiān)聽到事件對象

HttpsessionActivationListener

HttpSession – 監(jiān)聽HttpSession活化和頓化。

HttpSessionEvent

HttpSessionAttributeListener[W1]

HttpSession – 監(jiān)聽session的屬性變化的。S.setAttributee();

HttpSessionBindingEvent

HttpSessionBindingListener

HttpSession - 監(jiān)聽哪一個(gè)對象,綁定到了session上。S.setAtrri(name,User);

HttpSessionListener[W2]

HttpSesion – 監(jiān)聽sessioin創(chuàng)建銷毀

HttpSessionEvent

ServletContextAttributeListener

ServletContext – 屬性變化的

ServletContextListener

servletContext 創(chuàng)建銷毀

ServletRequestListener - serlvetRequestAttibuteListner

Rrequest -創(chuàng)建銷毀


實(shí)現(xiàn)一個(gè)監(jiān)聽器HttpServletRequest的創(chuàng)建銷毀

第一步:實(shí)現(xiàn)一個(gè)類:

package cn.hx.listener;

import javax.servlet.ServletRequestEvent;

import javax.servlet.ServletRequestListener;

public class RequestListener implements ServletRequestListener {

public void requestDestroyed(ServletRequestEvent sre) {

System.err.

Object o = sre.getSource();

System.err.println("這個(gè)o is :"+o);//apache.RequestFaced@22222

}

public void requestInitialized(ServletRequestEvent sre) {

System.err.println("request創(chuàng)建了:");

Object o = sre.getSource();

System.err.println("這個(gè)o是 :"+o);//apache.RequestFaced@22222

}

}

第二步:必須要配置到web.xml

<listener>

<listener-class>cn.itcast.listener.RequestListener</listener-class>

</listener>

說明:

1:配置一個(gè)Listener只要求提供類名就可以了。

2:在tomcat啟動時(shí),會自動的初始化這個(gè)監(jiān)聽器類。

3:tomcat創(chuàng)建的Listner,Serlvet,Filter都是單列的.

在線人數(shù)

只要有人訪問本站點(diǎn),成功創(chuàng)建一個(gè)Session就是一個(gè)會話,一個(gè)會話就是一個(gè)在線人數(shù)。

用HttpSSessionListener來監(jiān)聽Session的創(chuàng)建。

第一步:

package cn.hx.listener;

import java.util.ArrayList;

import java.util.List;

import javax.servlet.ServletContext;

import javax.servlet.http.HttpSession;

import javax.servlet.http.HttpSessionEvent;

import javax.servlet.http.HttpSessionListener;

/**

* 以下實(shí)現(xiàn)在線人數(shù)的統(tǒng)計(jì)

*/

public class MySessionListener implements HttpSessionListener {

private Integer online=1;

//request.getSession();

public void sessionCreated(HttpSessionEvent se) {

System.err.println("有人訪問本網(wǎng)點(diǎn)了");

HttpSession hs1 = (HttpSession) se.getSource();

HttpSession hs2 = se.getSession();

System.err.println("hs1:"+hs1.getId()+","+hs2.getId()+",

//獲取整個(gè)域的對象

ServletContext sc= se.getSession().getServletContext();

sc.setAttribute("online",online++);

//將所有session放到servletContext

//先從application獲取所有已經(jīng)維護(hù)的sesison

List<HttpSession> list = (List<HttpSession>) sc.getAttribute("sessions");

if(list==null){//第一個(gè)訪問的人

list = new ArrayList<HttpSession>();

sc.setAttribute("sessions", list);

}

list.add(hs2);

}

//過期(30),s.invalidate();

public void sessionDestroyed(HttpSessionEvent se) {

System.err.println("有人退出了..."+se.getSession().getId());

ServletContext sc= se.getSession().getServletContext();

sc.setAttribute("online",online--);

}

}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 绥棱县| 旺苍县| 和平区| 罗甸县| 商洛市| 吉隆县| 临猗县| 临汾市| 凤山县| 黑河市| 平武县| 南郑县| 聂拉木县| 赞皇县| 白山市| 宜阳县| 仙游县| 孙吴县| 呼图壁县| 大宁县| 平顶山市| 佛学| 云和县| 凤翔县| 宜兰县| 乐陵市| 双流县| 崇明县| 攀枝花市| 桐城市| 平顶山市| 齐河县| 海宁市| 克山县| 丰原市| 连江县| 宁武县| 隆化县| 淳安县| 湖口县| 清新县|