最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaWeb的監(jiān)聽器和過濾器你了解嗎

 更新時間:2022年02月28日 16:28:56   作者:做最幸福的  
這篇文章主要為大家詳細介紹了JavaWeb的監(jiān)聽器和過濾器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

1.監(jiān)聽器---->Context,Session

what is listener?

監(jiān)聽器是一個接口內(nèi)容由我們實現(xiàn),會在特定時間被調(diào)用,監(jiān)聽器用于監(jiān)聽web應用中三大域對象(request,session,application),信息的創(chuàng)建,銷毀,增加,修改,刪除等動作的發(fā)生,然后做出相應的響應處理。當范圍對象的狀態(tài)發(fā)生變化的時候,服務器自動調(diào)用監(jiān)聽器對象中的方法。常用于統(tǒng)計在線人數(shù)和在線用戶,系統(tǒng)加載時進行信息初始化,統(tǒng)計網(wǎng)站的訪問量等。

ContextListener通過實現(xiàn)ServletContextListener來進行全局監(jiān)聽

ContextListener可以通過記錄用戶訪問網(wǎng)站的次數(shù)思路:用戶通過訪問index.jsp,來獲取存放在監(jiān)聽器中的hashmap< String,Integer>,然后在index.jsp中進行判斷。

ContextListener的代碼思路如下:

public class ContextListener1 implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("init");
        //創(chuàng)建map集合
        Map<String, Integer> map = new HashMap<String, Integer>();
        //    獲取全局對象
        ServletContext context = servletContextEvent.getServletContext();
        context.setAttribute("map", map);
        System.out.println(map.isEmpty());
        System.out.println(map);
    }
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("destory");
    }
}

index.jsp的代碼思路如下:

<%
    //獲取用戶ip地址
    String ServerName = request.getServerName();
    //獲取全局對象
    Map<String, Integer> map = (Map<String, Integer>) application.getAttribute("map");
    if (map.containsKey(ServerName)) {
        map.put(ServerName, map.get(ServerName) + 1);
    } else {
        map.put(ServerName, 1);
    }
    int count = map.get(ServerName);
    int size = map.size();
%>
<h4>ip地址是:<%=ServerName%>,您是第<%=count%>位訪問的用戶,當前服務器共被<%=size%>個用戶訪問過</h4>

2.監(jiān)聽器三大作用域

在這里插入圖片描述

在這里插入圖片描述

3.屬性監(jiān)聽器

屬性監(jiān)聽器主要監(jiān)聽屬性值的變化,例如request.setAttribute()等這些數(shù)據(jù)的變化。

package listener;
import javax.servlet.*;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
/**
 * @author wjs
 * @create 2022-02-27 15:09
 */
public class AttrListener implements ServletContextAttributeListener, ServletRequestAttributeListener, HttpSessionAttributeListener {
    @Override
    public void attributeAdded(ServletContextAttributeEvent servletContextAttributeEvent) {
    //    向全局作用域中添加值的監(jiān)聽器
    }
    @Override
    public void attributeRemoved(ServletContextAttributeEvent servletContextAttributeEvent) {
    //    向全局作用域刪除值的監(jiān)聽器
    }
    @Override
    public void attributeReplaced(ServletContextAttributeEvent servletContextAttributeEvent) {
    //    向全局域對象修改值的監(jiān)聽器
    }
    @Override
    public void attributeAdded(ServletRequestAttributeEvent servletRequestAttributeEvent) {
    //    向request域中添加值的監(jiān)聽器
    }
    @Override
    public void attributeRemoved(ServletRequestAttributeEvent servletRequestAttributeEvent) {
    //    向request域中刪除值的監(jiān)聽器
    }
    @Override
    public void attributeReplaced(ServletRequestAttributeEvent servletRequestAttributeEvent) {
    //    向request域中修改值的監(jiān)聽器
    }
    @Override
    public void attributeAdded(HttpSessionBindingEvent httpSessionBindingEvent) {
    //    向session域中添加值的監(jiān)聽器
    }
    @Override
    public void attributeRemoved(HttpSessionBindingEvent httpSessionBindingEvent) {
    //    向session域中刪除值的監(jiān)聽器
    }
    @Override
    public void attributeReplaced(HttpSessionBindingEvent httpSessionBindingEvent) {
    //    向session域中修改值的監(jiān)聽器
    }
}

4.過濾器

在這里插入圖片描述

4.1過濾器的使用

1.編寫java	類實現(xiàn)Filter接口
2.重寫doFilter()方法
3.設置攔截的url

4.2過濾器的攔截路徑

/*:根目錄下所有請求都攔截

/*.do:所有帶.do的請求都攔截

/*.jsp

4.3過濾器的攔截順序

過濾器的攔截順序,取決于在配置文件web.xml的先后順序

4.4過濾器的四種攔截方式

在這里插入圖片描述
在這里插入圖片描述

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容! 

相關文章

最新評論

池州市| 北票市| 夏津县| 沛县| 万荣县| 福鼎市| 谢通门县| 隆林| 鄂州市| 开江县| 彭山县| 库尔勒市| 远安县| 镇巴县| 潜江市| 株洲市| 保靖县| 常熟市| 商洛市| 景洪市| 信阳市| 莱州市| 台东县| 长沙县| 略阳县| 江源县| 若尔盖县| 济源市| 正定县| 邻水| 台北县| 利辛县| 西峡县| 凤冈县| 江孜县| 棋牌| 长宁区| 涟水县| 封丘县| 濉溪县| 乐安县|