内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

EL表達式&過濾器&監(jiān)聽器-創(chuàng)新互聯(lián)

這里寫目錄標題
  • 1 EL 表達式
    • 1.1 EL 表達式介紹
    • 1.2 EL 表達式快速入門
    • 1.3 EL 表達式獲取數(shù)據(jù)
    • 1.4 EL 表達式注意事項
    • 1.5 EL表達式運算符
    • 1.6 EL 表達式使用細節(jié)
    • 1.7 EL 表達式隱式對象
  • 2 JSTL
    • 2.1 JSTL 介紹
    • 2.2 JSTL 核心標簽庫
    • 2.3 JSTL基本使用
  • 3 Filter
    • 3.1 過濾器介紹
    • 3.2 Filter 介紹
    • 3.3 FilterChain 介紹
    • 3.4 過濾器的使用
    • 3.5 過濾器使用細節(jié)
    • 3.6 過濾器生命周期
    • 3.7 FilterConfig
    • 3.8 過濾器的五種攔截行為
  • 4 Listener
    • 4.1 監(jiān)聽器介紹
    • 4.2 監(jiān)聽對象的監(jiān)聽器
    • 4.3 監(jiān)聽域?qū)ο髮傩宰兓谋O(jiān)聽器
    • 4.4 監(jiān)聽會話相關的感知性監(jiān)聽器
    • 4.5 監(jiān)聽器的使用

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比奇臺網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式奇臺網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋奇臺地區(qū)。費用合理售后完善,10年實體公司更值得信賴。1 EL 表達式 1.1 EL 表達式介紹
  • EL(Expression Language):表達式語言
  • 在 JSP 2.0 規(guī)范中加入的內(nèi)容,也是 Servlet 規(guī)范的一部分
  • 作用:在 JSP 頁面中獲取數(shù)據(jù)。讓我們的 JSP 脫離 Java 代碼塊 和 JSP 表達式
  • 語法:${表達式內(nèi)容}
1.2 EL 表達式快速入門
  • 代碼演示
<%@ page contentType="text/html;charset=UTF-8" language="java" %>EL表達式快速入門<%--    設置共享數(shù)據(jù)--%><% request.setAttribute("username","zhangsan"); %>java 代碼塊:<%out.println("username");%>
java 表達式:<%=request.getAttribute("username")%>
EL 表達式:${username}
1.3 EL 表達式獲取數(shù)據(jù)
<%@ page import="com.txt.bean.Student" %><%@ page import="java.util.ArrayList" %><%@ page import="java.util.HashMap" %><%@ page contentType="text/html;charset=UTF-8" language="java" %>EL表達式獲取不同類型數(shù)據(jù)<%--    1. 獲取基本數(shù)據(jù)類型--%><% pageContext.setAttribute("num",10); %>基本數(shù)據(jù)類型:${num}
<%-- 2. 獲取自定義數(shù)據(jù)類型--%><% Student stu = new Student("張三",23); pageContext.setAttribute("stu",stu); %>自定義數(shù)據(jù)類型:${stu}
學生姓名:${stu.name}
學生年齡:${stu.age}<%-- 3. 獲取數(shù)組類型--%><% String[] arr = {"hello","world"}; pageContext.setAttribute("arr",arr); %>數(shù)組:${arr}
0索引元素:${arr[0]}
1索引元素:${arr[1]}
<%-- 4. 獲取List集合--%><% ArrayListlist = new ArrayList<>(); list.add("aaa"); list.add("bbb"); pageContext.setAttribute("list",list); %>List集合:${list}
0索引元素:${list[0]}
<%-- 5. 獲取Map集合--%><% HashMapmap = new HashMap<>(); map.put("stu01",new Student("張三",23)); map.put("stu02",new Student("李四",24)); pageContext.setAttribute("map",map); %>Map集合:${map}
第一個學生對象:${map.stu01}
第一個學生對象的姓名:${map.stu01.name}
1.4 EL 表達式注意事項
  • EL 表達式?jīng)]有空指針異常
  • EL 表達式?jīng)]有索引越界異常
  • EL 表達式?jīng)]有字符串的拼接異常
1.5 EL表達式運算符
  • 關系運算符
    在這里插入圖片描述
  • 邏輯運算符
    在這里插入圖片描述
  • 其他運算符
    在這里插入圖片描述
  • 代碼演示
<%@ page contentType="text/html;charset=UTF-8" language="java" %>EL表達式運算符<%--    empty--%><%
        String str1 = null;
        String str2 = "";
        int[] arr = {};
    %>${empty str1}
${empty str2}
${empty arr}
<%-- 三元表達式--%><% pageContext.setAttribute("gender","women"); %>gender == "men" ? "checked":""} />男gender == "women" ? "checked":""} />女
1.6 EL 表達式使用細節(jié)
  • EL 表達式能夠獲取四大域?qū)ο蟮臄?shù)據(jù),根據(jù)從小到大在域?qū)ο笾胁檎?/li>
  • 還有可以獲取 JSP 其他八個隱式對象,并調(diào)用其方法
  • 代碼演示
<%@ page contentType="text/html;charset=UTF-8" language="java" %>EL使用細節(jié)<%
//      pageContext.setAttribute("username","張三");
      request.setAttribute("username","張三");
//      session.setAttribute("username","張三");
//      application.setAttribute("username","張三");
    %>${username}
<%--獲取 JSP 其他八個隱式對象,并調(diào)用其方法--%>${pageContext.request.contextPath}
1.7 EL 表達式隱式對象

在這里插入圖片描述

  • 代碼演示
<%@ page contentType="text/html;charset=UTF-8" language="java" %>EL表達式11個隱式對象<%--pageContext對象 可以獲取其他三個域?qū)ο蠛蚃SP中八個隱式對象--%>${pageContext.request.contextPath}
<%--applicationScope sessionScope requestScope pageScope 操作四大域?qū)ο笾械臄?shù)據(jù)--%><% request.setAttribute("username","zhangsan"); %>${username}
${requestScope.username}
<%--header headerValues 獲取請求頭數(shù)據(jù)--%>${header["connection"]}
${headerValues["connection"][0]}
<%--param paramValues 獲取請求參數(shù)數(shù)據(jù)--%>${param.username}
${paramValues.hobby[0]}
${paramValues.hobby[1]}
<%--initParam 獲取全局配置參數(shù)--%>${initParam["pname"]}
<%--cookie 獲取cookie信息--%>${cookie}
<%--獲取Map集合--%>${cookie.JSESSIONID}
<%--獲取map集合中第二個元素--%>${cookie.JSESSIONID.name}
<%--獲取cookie對象的名稱--%>${cookie.JSESSIONID.value}<%--獲取cookie對象的值--%>
2 JSTL 2.1 JSTL 介紹
  • JSTL:JSP 標準標簽庫
  • 主要提供給開發(fā)人員一個標準通用的標簽庫
  • 開發(fā)人員可以利用這些標簽取代 JSP 頁面上的 Java代碼,從而提高程序的可讀性,降低程序的維護難度
    在這里插入圖片描述
2.2 JSTL 核心標簽庫

在這里插入圖片描述

2.3 JSTL基本使用
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>流程控制<%--    向域?qū)ο笾刑砑訑?shù)據(jù)--%>${pageContext.setAttribute("score","T")}
<%--    對成績進行判斷--%>  優(yōu)秀<%--    對成績進行多條件判斷--%>優(yōu)秀良好及格較差成績非法
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>循環(huán)<%
        ArrayListlist = new ArrayList<>();
        list.add("aa");
        list.add("bb");
        list.add("cc");
        list.add("dd");
        pageContext.setAttribute("list",list);
    %>${str}
3 Filter 3.1 過濾器介紹
  • 過濾器——Filter,它是JavaWeb三大組件之一。另外兩個是Servlet和Listener。
  • 它是在2000年發(fā)布的Servlet2.3規(guī)范中加入的一個接口。是Servlet規(guī)范中非常實用的技術。
  • 它可以對web應用中的所有資源進行攔截,并且在攔截之后進行一些特殊的操作。
  • 常見應用場景:URL級別的權限控制;過濾敏感詞匯;中文亂碼問題等等。
  • 過濾器一般用于完成通用操作,例如:登錄驗證、統(tǒng)一編碼處理、敏感字符過濾等等…
3.2 Filter 介紹
  • Filter 是一個借口。如果想實現(xiàn)過濾器的功能,必須實現(xiàn)該接口!
  • 核心方法
    在這里插入圖片描述
  • 配置方式
    注解方式
    配置文件
3.3 FilterChain 介紹
  • FilterChain 是一個接口,代表過濾器鏈對象,由 Servlet 容器提供實現(xiàn)類對象,直接使用即可
  • 過濾器可以定義多個,就會組成過濾器鏈
    在這里插入圖片描述

    如果有多個過濾器,在第一個過濾器中調(diào)用下一個過濾器,依次類推。直到到達最終訪問資源
    如果只有一個過濾器,放行時,就會直接到達最終訪問資源
3.4 過濾器的使用
  • 需求說明
    通過 Filter 過濾器解決多個資源寫出中文亂碼的問題
  • 最終目的
    通過本需求,最終掌握 Filter 過濾器的作用
  • 代碼演示
@WebServlet("/servletDemo01")
public class ServletDemo01 extends HttpServlet {@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("ServletDemo01執(zhí)行了...");

        resp.getWriter().write("ServletDemo01執(zhí)行了...");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);
    }
}
@WebServlet("/servletDemo02")
public class ServletDemo02 extends HttpServlet {@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("ServletDemo02執(zhí)行了...");

        resp.getWriter().write("ServletDemo02執(zhí)行了...");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);
    }
}
@WebFilter("/*")
public class FilterDemo01 implements Filter {@Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {System.out.println("filterDemo01執(zhí)行了...");

        servletResponse.setContentType("text/html;charset=UTF-8");

        filterChain.doFilter(servletRequest,servletResponse);
    }
}
3.5 過濾器使用細節(jié)
  • 配置方式
    注解方式@WebFilter(攔截路徑)
    配置文件方式
    在這里插入圖片描述
  • 多個過濾器使用順序
    如果有多喝過濾器,取決于過濾器映射的順序
3.6 過濾器生命周期
  • 創(chuàng)建
    當應用加載時實例化對象并執(zhí)行 init 初始化方法
  • 服務
    對象提供服務的過程,執(zhí)行 doFilter 方法
  • 銷毀
    當應用卸載時或服務器停止時對象銷毀,執(zhí)行 destroy 方法
3.7 FilterConfig

在這里插入圖片描述

  • FilterConfig 是一個接口。可以加載一些初始化參數(shù)
  • 核心方法
    在這里插入圖片描述
  • 代碼演示
public class FilterDemo03 implements Filter {@Override
    public void init(FilterConfig filterConfig) throws ServletException {System.out.println("對象創(chuàng)建了...");

        String filterName = filterConfig.getFilterName();
        System.out.println(filterName);

        String username = filterConfig.getInitParameter("username");
        System.out.println(username);
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {System.out.println("filterDemo01執(zhí)行了...");

        servletResponse.setContentType("text/html;charset=UTF-8");

        filterChain.doFilter(servletRequest,servletResponse);
    }

    @Override
    public void destroy() {System.out.println("對象銷毀了...");
    }
}
  • 配置文件
filterDemo03com.txt.filter.FilterDemo03usernamezhangsanfilterDemo03/*
3.8 過濾器的五種攔截行為
  • Filter 過濾器默認攔截的是請求,但在實際開發(fā)中,我們還有請求轉發(fā)和請求包含,以及由服務器觸發(fā)調(diào)用的全局錯誤頁面,默認情況下過濾器是不參與過濾的,想要使用,就需要我們配置
    在這里插入圖片描述
4 Listener 4.1 監(jiān)聽器介紹
  • 觀察者設計模式,所有監(jiān)聽器都是基于觀察者設計模式的
  • 三個組成部分
    事件源:觸發(fā)事件的對象
    事件:觸發(fā)的動作,封裝了事件源
    監(jiān)聽器:當事件源觸發(fā)事件后,可以完成的功能
  • 在程序當中,我們可以對:對象的創(chuàng)建銷毀、域?qū)ο笾袑傩缘淖兓?、會話相關內(nèi)容進行監(jiān)聽
4.2 監(jiān)聽對象的監(jiān)聽器
  • ServletContextListener:用于監(jiān)聽 ServletContext 對象的創(chuàng)建和銷毀
    在這里插入圖片描述
  • HttpSessionListener:用于監(jiān)聽 HttpSession 對象的創(chuàng)建和銷毀
  • 核心方法
    在這里插入圖片描述
  • ServletRequestListener:用于監(jiān)聽 ServletRequest 對象的創(chuàng)建和銷毀
  • 核心方法
    在這里插入圖片描述
4.3 監(jiān)聽域?qū)ο髮傩宰兓谋O(jiān)聽器
  • ServletContextAttributeListener:用于監(jiān)聽 ServletContext 應用域中屬性的變化
  • 核心方法
    在這里插入圖片描述
  • HttpSessionAttributeListener:用于監(jiān)聽 HttpSession 會話域中屬性的變化
  • 核心方法
  • ServletRequestAttributeListener:用于監(jiān)聽 ServletRequest 請求域中屬性的變化
  • 核心方法
    在這里插入圖片描述
4.4 監(jiān)聽會話相關的感知性監(jiān)聽器
  • HttpSessionBindingListener:用于感知對象和會話域綁定的監(jiān)聽器
  • 核心方法
    在這里插入圖片描述
  • HttpSessionActivationListener:用于感知會話域中對象鈍化和活化的監(jiān)聽器
  • 核心方法
    在這里插入圖片描述
4.5 監(jiān)聽器的使用
  • 代碼演示
@WebListener
public class ServletContextListenerDemo implements ServletContextListener {@Override
    public void contextInitialized(ServletContextEvent sce) {System.out.println("監(jiān)聽到了對象的創(chuàng)建...");

        ServletContext servletContext = sce.getServletContext();
        System.out.println(servletContext);
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {System.out.println("監(jiān)聽到了對象的銷毀...");
    }
}
  • ServletContextAttributeListener 代碼演示
@WebListener
public class ServletContextAttributeListenerDemo implements ServletContextAttributeListener {@Override
    public void attributeAdded(ServletContextAttributeEvent scae) {System.out.println("監(jiān)聽到了屬性的添加...");

        ServletContext servletContext = scae.getServletContext();
        Object username = servletContext.getAttribute("username");
        System.out.println(username);
    }

    @Override
    public void attributeRemoved(ServletContextAttributeEvent scae) {System.out.println("監(jiān)聽到了屬性的移除...");

        ServletContext servletContext = scae.getServletContext();
        Object username = servletContext.getAttribute("username");
        System.out.println(username);
    }

    @Override
    public void attributeReplaced(ServletContextAttributeEvent scae) {System.out.println("監(jiān)聽到了屬性的修改...");

        ServletContext servletContext = scae.getServletContext();
        Object username = servletContext.getAttribute("username");
        System.out.println(username);
    }
}
@WebListener
public class ServletContextListenerDemo implements ServletContextListener {@Override
    public void contextInitialized(ServletContextEvent sce) {System.out.println("監(jiān)聽到了對象的創(chuàng)建...");

        ServletContext servletContext = sce.getServletContext();
        servletContext.setAttribute("username","zhangsan");

        servletContext.setAttribute("username","lisi");

        servletContext.removeAttribute("username");
//        System.out.println(servletContext);
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {System.out.println("監(jiān)聽到了對象的銷毀...");
    }
}

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

分享文章:EL表達式&過濾器&監(jiān)聽器-創(chuàng)新互聯(lián)
轉載注明:http://www.rwnh.cn/article30/pceso.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)手機網(wǎng)站建設、企業(yè)網(wǎng)站制作電子商務、網(wǎng)頁設計公司、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設
华阴市| 汉寿县| 南皮县| 嵊州市| 三原县| 凌云县| 峡江县| 盱眙县| 屏南县| 宁城县| 淳化县| 新河县| 正定县| 蚌埠市| 宁乡县| 伊宁市| 宝清县| 古田县| 高陵县| 大田县| 甘肃省| 佛教| 长海县| 蒙山县| 遂昌县| 容城县| 卓资县| 阿瓦提县| 姚安县| 南阳市| 高淳县| 西乌珠穆沁旗| 金乡县| 新龙县| 惠来县| 武义县| 白山市| 聊城市| 德昌县| 潼南县| 凤山市|