亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

監聽器(web基礎學習筆記二十二)

2019-11-14 22:52:22
字體:
來源:轉載
供稿:網友
監聽器(web基礎學習筆記二十二)一、監聽器

監聽器是一個專門用于對其他對象身上發生的事件或狀態改變進行監聽和相應處理的對象,當被監視的對象發生情況時,立即采取相應的行動。監聽器其實就是一個實現特定接口的普通java程序,這個程序專門用于監聽另一個java對象的方法調用或屬性改變,當被監聽對象發生上述事件后,監聽器某個方法立即被執行。

二、監聽器統計在線人數--HttpsessionListener實現
package com.pb.news.listenter;public class OnlineCounter {    public static long ONLINE_USER_COUNT=0;    public static long getonline(){        return ONLINE_USER_COUNT;    }    public static void raise() {        ONLINE_USER_COUNT++;    }    public static void reduce() {        ONLINE_USER_COUNT--;    }}
package com.pb.news.listenter;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;/** * application Lifecycle Listener implementation class OnlineCounterListener * */public class OnlineCounterListener implements HttpSessionListener {    /**     * @see HttpSessionListener#sessionCreated(HttpSessionEvent)     */    public void sessionCreated(HttpSessionEvent arg0)  {          // TODO Auto-generated method stub        //session創建里用戶加1        OnlineCounter.raise();    }    /**     * @see HttpSessionListener#sessionDestroyed(HttpSessionEvent)     */    public void sessionDestroyed(HttpSessionEvent arg0)  {         //session銷毀里里用戶減1        OnlineCounter.reduce();    }    }

只需要在頁面中寫入

在線人數:<%=OnlineCounter.getonline() %>
三、監聽器統計在線人數--HttpSessionBindingListener實現綁定用戶登錄查詢在線人數

創建靜態變量類

package com.pb.news.constants;public class Constants {//統計在線人線人數靜態常量    public static int ONLINE_USER_COUNT=0;}

創建用戶類來實現-接口-HttpSessionBindingListener

package com.pb.news.listenter;import javax.servlet.http.HttpSessionBindingEvent;import javax.servlet.http.HttpSessionBindingListener;import com.pb.news.constants.Constants;/** * Application Lifecycle Listener implementation class UserLoginCount * */public class UserLoginCount implements HttpSessionBindingListener {    PRivate int id;                  //用戶id;                            private String username;       //用戶姓名                         private String passWord;       //用戶密碼                          private String email;          //用戶郵箱             private int usertype;             //用戶類型              //getter和setter方法    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }    public int getUsertype() {        return usertype;    }    public void setUsertype(int usertype) {        this.usertype = usertype;    }    /**     * Default constructor.      */    public UserLoginCount() {        // TODO Auto-generated constructor stub    }    /**     * @see HttpSessionBindingListener#valueBound(HttpSessionBindingEvent)     */    public void valueBound(HttpSessionBindingEvent arg0)  {         Constants.ONLINE_USER_COUNT++;    }    /**     * @see HttpSessionBindingListener#valueUnbound(HttpSessionBindingEvent)     */    public void valueUnbound(HttpSessionBindingEvent arg0)  {         Constants.ONLINE_USER_COUNT--;    }    }

創建登錄servlet類

package com.pb.news.web.servlet;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.pb.news.dao.impl.UsersDaoImpl;import com.pb.news.entity.Users;import com.pb.news.listenter.UserLoginCount;import com.pb.news.service.impl.UsersserviceImpl;/** * Servlet implementation class UserLoginServlet */public class UserLoginServlet extends HttpServlet {    private static final long serialVersionUID = 1L;           /**     * @see HttpServlet#HttpServlet()     */    public UserLoginServlet() {        super();        // TODO Auto-generated constructor stub    }    /**     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)     */    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub    }    /**     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)     */    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        //request.setCharacterEncoding("utf-8");        String username=request.getParameter("username");        String password=request.getParameter("password");        UsersServiceImpl usersService=new UsersServiceImpl();        UsersDaoImpl usersDao=new UsersDaoImpl();        usersService.setUsersDao(usersDao);        boolean flag=usersService.login(username, password);        if(flag==true){            //request.getSession().setAttribute("user", username);            //創建HttpSessio對象            /*Users users=new Users();            users.setUsername(username);            users.setPassword(password);*/            UserLoginCount users= new UserLoginCount();            users.setUsername(username);            users.setPassword(password);            HttpSession s=request.getSession();            s.setAttribute("user", users);            //s.setAttribute("pwd", password);            //request.getRequestDispatcher("jsp/index.jsp").forward(request, response);            response.sendRedirect("jsp/index.jsp");                    }else{            request.setAttribute("msg", "用戶名或者密碼不正確");            RequestDispatcher rd=request.getRequestDispatcher("jsp/userLogin.jsp");            rd.forward(request, response);            //request.getRequestDispatcher("jsp/userLogin.jsp").forward(request, response);            //response.sendRedirect("jsp/userLogin.jsp");        }            }}

在要顯示的頁面顯示

已登錄用戶:<%=com.pb.news.constants.Constants.ONLINE_USER_COUNT %> 

相比較,第一種更簡潔,這里可能還有理簡單的輸出,暫時沒發現

四、監聽器統計在線人數--HttpSessionListener實現
package com.pb.news.web.servlet;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;public class UserCountListener implements HttpSessionListener {    private int count = 0;    public void sessionCreated(HttpSessionEvent se) {        // TODO Auto-generated method stub        //人數加1        count++;        setContext(se);    }    public void sessionDestroyed(HttpSessionEvent se) {        // TODO Auto-generated method stub        //人數減1         count--;         setContext(se);    }    private void setContext(HttpSessionEvent se){        se.getSession().getServletContext().setAttribute("userCount",new Integer(count));    }}
創建UserCountListener監聽器,注意web.xml中要有:<listener>        <listener-class>com.pb.news.web.servlet.UserCountListener</listener-class></listener>創建監聽器后,可以在需要顯示人數的頁面加入下面的語句:Object userCount=session.getServletContext().getAttribute("userCount");out.print(userCount.toString());
五、不需要登錄統計在線人數
package com.pb.listenter;import javax.servlet.ServletContext;import javax.servlet.annotation.WebListener;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;/** * Application Lifecycle Listener implementation class CountListenter * */@WebListenerpublic class CountListenter implements HttpSessionListener {    //private int count=0;    /**     * Default constructor.      */    public CountListenter() {        // TODO Auto-generated constructor stub    }    /**     * 創建seesion+1     */    public void sessionCreated(HttpSessionEvent se)  {          // TODO Auto-generated method stub        ServletContext context=se.getSession().getServletContext();        Integer count=(Integer) context.getAttribute("count");        if(count==null){            //count=new Integer(1);            context.setAttribute("count", 1);        }else{            count++;            context.setAttribute("count", count);        }                    }    /**     * 銷毀session時次數-1     */    public void sessionDestroyed(HttpSessionEvent se)  {          // TODO Auto-generated method stub        ServletContext context=se.getSession().getServletContext();        Integer count=(Integer) context.getAttribute("count");        count--;        context.setAttribute("count", count);            }    }

在需要顯示的頁面輸入以下代碼顯示

<%ServletContext context=session.getServletContext();Integer count=(Integer)context.getAttribute("count");%>  <%=count%>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
538国产精品视频一区二区| 欧美制服第一页| 亚洲色图五月天| 欧美人成在线视频| 精品亚洲va在线va天堂资源站| 亚洲人成网站色ww在线| 国产精品入口尤物| 亚洲一区中文字幕| 国内精品免费午夜毛片| 亚洲成人黄色在线观看| 亚洲成av人影院在线观看| 亚洲精品女av网站| 久久人人爽人人爽爽久久| 久久久噜噜噜久久久| 欧美国产精品va在线观看| 97在线看福利| 成人精品一区二区三区电影免费| 欧美日韩精品在线观看| 久久久人成影片一区二区三区观看| 欧美成人精品三级在线观看| 久久精品国产v日韩v亚洲| 国产欧美欧洲在线观看| 久久久久久网站| 日本午夜人人精品| 裸体女人亚洲精品一区| 欧美精品日韩三级| 亚洲国产天堂久久综合网| 北条麻妃一区二区三区中文字幕| 中文字幕av一区二区| 国产一区二区美女视频| 日韩专区在线观看| 日韩中文字幕免费| 91国产视频在线播放| 亚洲第一二三四五区| 国产福利视频一区| 在线视频欧美性高潮| 中文字幕欧美日韩在线| 久久亚洲精品中文字幕冲田杏梨| 国产精品久久久久7777婷婷| 日本最新高清不卡中文字幕| 国产精品第七影院| 国产精品一久久香蕉国产线看观看| 国产精品爽爽ⅴa在线观看| 黑人与娇小精品av专区| 欧美日韩激情美女| 欧美电影在线观看高清| 亚洲第五色综合网| 久久久久久久久久久免费精品| 一本色道久久综合亚洲精品小说| 欧美精品一区二区三区国产精品| 亚洲精品美女在线观看| 亚洲欧美日韩中文在线制服| 精品视频在线观看日韩| 一区国产精品视频| 久久久久久久亚洲精品| 亚洲999一在线观看www| 欧美激情视频网站| 国内精品久久久久久| 成人久久久久久| 日韩av电影在线播放| 亚洲欧美精品suv| 欧美做受高潮1| 亚洲欧洲国产伦综合| 欧美专区中文字幕| 国产成人免费91av在线| 亚洲午夜精品久久久久久久久久久久| 在线观看中文字幕亚洲| 亚洲一区亚洲二区亚洲三区| 国产一区视频在线| 亚洲人成网在线播放| 精品国产31久久久久久| 在线观看91久久久久久| 最近2019中文字幕第三页视频| 26uuu另类亚洲欧美日本老年| 91久久久国产精品| 97精品久久久中文字幕免费| 一二美女精品欧洲| 国产精品视频导航| 日韩久久精品电影| 97精品久久久| 国产91色在线|| 久久精品国产亚洲一区二区| 成人福利视频网| 性欧美激情精品| 51色欧美片视频在线观看| 欧美日韩一区二区在线播放| 九九久久精品一区| 日韩电影免费在线观看中文字幕| 国产福利精品在线| 国产精品入口免费视频一| 欧美又大又粗又长| 欧美最顶级丰满的aⅴ艳星| 高跟丝袜欧美一区| 高清一区二区三区四区五区| 91久久综合亚洲鲁鲁五月天| 欧美激情第三页| 51久久精品夜色国产麻豆| 亚洲一区制服诱惑| 亚洲人成自拍网站| 欧美黑人国产人伦爽爽爽| 欧美黄色免费网站| 国产精品va在线播放我和闺蜜| 国产亚洲欧美视频| 国产精品九九九| 久久久999国产精品| 精品无人区乱码1区2区3区在线| 色av中文字幕一区| 久久久国产精品亚洲一区| 亚洲九九九在线观看| 亚洲的天堂在线中文字幕| 成人av.网址在线网站| 亚洲性av网站| 在线观看中文字幕亚洲| 亚洲偷欧美偷国内偷| 国产日韩中文在线| 国产91精品不卡视频| 日韩风俗一区 二区| 日本精品一区二区三区在线播放视频| 夜夜嗨av色一区二区不卡| 热久久免费视频精品| 精品一区二区亚洲| 亚洲嫩模很污视频| 免费99精品国产自在在线| 欧美激情精品久久久久| 亚洲国产精品va在线观看黑人| 精品一区二区电影| 国内成人精品视频| 综合国产在线视频| 亚洲精品久久久久| 亚洲最大福利视频| 国产成人一区二区三区| 欧美日韩激情视频8区| 久久久亚洲影院你懂的| 亚洲精品一区久久久久久| 高潮白浆女日韩av免费看| 欧美激情区在线播放| 亚洲剧情一区二区| 亚洲最新av在线| 日韩一级裸体免费视频| 久久天天躁狠狠躁夜夜躁| 国产精品久久久久久av下载红粉| 蜜月aⅴ免费一区二区三区| 欧美孕妇孕交黑巨大网站| 欧美日韩xxxxx| 国产精品久久婷婷六月丁香| 亚洲国产私拍精品国模在线观看| 欧美一级大片在线免费观看| 成人黄色午夜影院| 亚洲国产精品人人爽夜夜爽| 性色av一区二区三区| 7777精品视频| 日韩在线观看网址| 色与欲影视天天看综合网| 97国产精品久久| 亚洲中国色老太| 色琪琪综合男人的天堂aⅴ视频| 91精品视频免费看| 国产精品久久久久久久久久久久| 亚洲成人黄色在线| 亚洲精品99999| 亚洲第一网站男人都懂| 中文字幕精品视频| 美女av一区二区三区| 欧美成人精品不卡视频在线观看|