Java WEB 第6章 登錄功能實現(xiàn)-頁面中錯誤提示

第6章 登錄功能實現(xiàn)-頁面中錯誤提示

6.1 涉及的技術(shù)知識點:

  • 請求重定向 ?
  • 請求轉(zhuǎn)發(fā) ?
  • Jsp頁面 ?
  • EL表達式 ?
  • JS簡單應用

6.2 請求重定向 redirect

  • Servlet接收到瀏覽器端請求并處理完成后,給瀏覽器端一個特殊的響應,這個特殊的響應要求瀏覽器去請求一個新的資源,整個過程中瀏覽器端會發(fā)出兩次請求,且瀏覽器地址欄會改變?yōu)樾沦Y源的地址。
  • 重定向的情況下,原Servlet和目標資源之間就不能共享請求域數(shù)據(jù)了
  • 實現(xiàn)重定向的API

6.3 請求轉(zhuǎn)發(fā)

  • Servlet接收到瀏覽器端請求后,進行一定的處理,先不進行響應,而是在服務器端內(nèi)部“轉(zhuǎn)發(fā)”給其他Servlet程序繼續(xù)處理。在這種情況下瀏覽器端只發(fā)出了一次請求,瀏覽器地址欄不會發(fā)生變化,用戶也感知不到請求被轉(zhuǎn)發(fā)了。
  • 轉(zhuǎn)發(fā)請求的Servlet和目標Servlet共享同一個request對象。
  • 實現(xiàn)轉(zhuǎn)發(fā)的API

6.4 重定向與轉(zhuǎn)發(fā)的區(qū)別

6.5 JSP頁面

  • JSP全稱Java Server Pages,顧名思義就是運行在java服務器中的頁面,也就是在我們JavaWeb中的動態(tài)頁面,其本質(zhì)就是一個Servlet。
  • 其本身是一個動態(tài)網(wǎng)頁技術(shù)標準,它的主要構(gòu)成有HTML網(wǎng)頁代碼、Java代碼片段、JSP標簽幾部分組成,后綴是.jsp
  • 相比于Servlet,JSP更加善于處理顯示頁面,而Servlet跟擅長處理業(yè)務邏輯,兩種技術(shù)各有專長,所以一般我們會將Servlet和JSP結(jié)合使用,Servlet負責業(yè)務,JSP負責顯示。
  • 一般情況下, 都是Servlet處理完的數(shù)據(jù),轉(zhuǎn)發(fā)到JSP,JSP負責顯示數(shù)據(jù)的工作
  • JSP的基本語法:
    • JSP的腳本元素
    • 腳本片段是嵌入到JSP中Java代碼段,格式以<%開頭,%>結(jié)尾,兩個%號之間就可以編寫Java代碼了
    • JSP的表達式
    • JSP表達式用來直接將Java變量輸出到頁面中,格式以<%=開頭,以%>結(jié)尾,中間是我們要輸出的內(nèi)容

  • JSP的隱含對象
    • out(JspWriter):相當于response.getWriter()獲取的對象,用于在頁面中顯示信息。
    • config(ServletConfig):對應Servlet中的ServletConfig對象。
    • page(Object):對應當前Servlet對象,實際上就是this。
    • pageContext(PageContext):當前頁面的上下文,也是一個域?qū)ο蟆?/li>
    • exception(Throwable):錯誤頁面中異常對象
    • request(HttpServletRequest):HttpServletRequest對象
    • response(HttpServletResponse):HttpServletResponse對象
    • application(ServletContext):ServletContext對象
    • session(HttpSession):HttpSession對象
      • EL表達式
      • EL是JSP內(nèi)置的表達式語言,用以訪問頁面的上下文以及不同作用域中的對象 ,取得對象屬性的值,或執(zhí)行簡單的運算或判斷操作。EL在得到某個數(shù)據(jù)時,會自動進行數(shù)據(jù)類型的轉(zhuǎn)換。
      • EL表達式用于代替JSP表達式(<%= %>)在頁面中輸出操作。
      • EL表達式僅僅用來讀取數(shù)據(jù),而不能對數(shù)據(jù)進行修改。
      • 使用EL表達式輸出數(shù)據(jù)時,如果有則輸出數(shù)據(jù),如為null則什么也不輸出。
      • EL表達式的語法:

       

      • EL取值的四個域:

      pageScope

      requestScope

      sessionScope

      applicationScope

      ?

6.6 頁面中錯誤提示的功能效果

6.7 JavaScript

    • 1)? 在1995年時,由Netscape公司的Brendan Eich,在網(wǎng)景導航者瀏覽器上首次設(shè)計實現(xiàn)而成。Netscape在最初將其腳本語言命名為LiveScript,因為NetscapeSun合作,網(wǎng)景公司管理層希望它外觀看起來像Java,因此取名為JavaScript。
    • ?2)? 特性
    • 腳本語言。JavaScript是一種解釋型的腳本語言,C、C++、Java等語言先編譯后執(zhí)行, 而JavaScript是在程序的運行過程中逐行進行解釋。
    • 基于對象。JavaScript是一種基于對象的腳本語言,它不僅可以創(chuàng)建對象,也能使用現(xiàn)有的對象。
    • 簡單。JavaScript語言中采用的是弱類型的變量類型,對使用的數(shù)據(jù)類型未做出嚴格的要求,是基于Java基本語句和控制的腳本語言。
    • 動態(tài)性。JavaScript是一種采用事件驅(qū)動的腳本語言,它不需要經(jīng)過Web服務器就可以對用戶的輸入做出響應。
    • 跨平臺性。JavaScript腳本語言不依賴于操作系統(tǒng),僅需要瀏覽器的支持。因此一個JavaScript腳本在編寫后可以帶到任意機器上使用,前提是機器上的瀏覽器支 持JavaScript腳本語言,目前JavaScript已被大多數(shù)的瀏覽器所支持。
    • ? 3)? 編寫位置
    • 編寫到HTML中<script>標簽中。
    • 寫在外部的.js文件中。然后通過script標簽引入。

? ? ? ? ? ? ? 4)? JavaScript的事件驅(qū)動

  • 用戶事件:用戶操作,例如單擊、鼠標移入、鼠標移出等
  • 系統(tǒng)事件:由系統(tǒng)觸發(fā)的事件,例如文檔加載完成。
  • 常用的事件:
  • onload

    onclick

    onblur

    onfocus

    onmouseover

    onmouseout

    5)? ?BOM
    • Borwser Object Model 瀏覽器對象模型
    • 瀏覽器對象模型提供了獨立于內(nèi)容的、可以與瀏覽器窗口進行互動的對象結(jié)構(gòu)。BOM由多個對象組成,其中代表瀏覽器窗口的Window對象是BOM的頂層對象,其他對象都是該對象的子對象
    • 常用的對象(window的子對象)

    document ??history ???location ???screen ??navigator ???frames

? ? ? ? ? 6)? ?DOM

  • Document Object Model 文檔對象模型
  • document對象: window對象的一個屬性,代表當前HTML文檔,包含了整個文檔的樹形結(jié)構(gòu)。獲 取document對象的本質(zhì)方法是:document,而“window.”可以省略。
  • DOM樹
  • 元素查詢

    功能

    API

    返回值

    根據(jù)id值查詢

    document.getElementById(“id值”)

    一個具體的元素節(jié)點

    根據(jù)標簽名查詢

    document.getElementsByTagName(“標簽名”)

    元素節(jié)點數(shù)組

    根據(jù)name屬性值查詢

    document.getElementsByName(“name值”)

    元素節(jié)點數(shù)組