JSP初學筆記(一)

1、什麼是Web應用程序

     Web應用程序是一種通過Web訪問的應用程序。Web應用程序一個最大優點就是用戶很容易訪問。用戶只需要有瀏覽器即可,不需要再安裝其他軟件。Web開發是目前軟件開發領域的三大方向之一。(桌面應用程序,Web應用程序,嵌入式應用程序)

2、靜態頁面與動態頁面

    靜態網頁 
        表現形式:網頁內容固定,不會更新。 
        所需技術:HTML,CSS 
    動態網頁 
       表現形式:網頁中的內容通過程序動態的顯示,自動更新,能與用戶進行交互(比如登錄輸入正確用戶名和密碼時,系統提示登錄成功) 
       所需技術:HTML,CSS,數據庫技術,至少一門高級語言(Java,C#,Php),Javascript,XML等。主流的動態網頁腳本技術(Jsp/Asp.net/Php)

3、修改Tomcat默認端口號

    tomcat安裝目錄–>conf–>server.xml

<Connector 
        port="8888" 
        protocol="HTTP/1.1"
        connectionTimeout="20000"
        redirectPort="8443" 
        URIEncoding="utf-8"
    />

4、Jsp簡介

    JSP全名爲Java Server Pages,其根本是一個簡化的Servlet設計,他實現了在Java當中使用HTML標籤。Jsp是一種動態網頁技術標準也是JAVAEE的標準。JSP與Servlet一樣,是在服務端執行的。

5、jsp運行原理

第一次訪問jsp或修改後訪問jsp

A) 將jsp翻譯成java文件

B) 將java文件編譯成class文件

C) 通過反射創建對象

D) 執行init方法

E) 執行Service方法

正常訪問jsp(非第一次或沒有修改)

E ) 只執行Service方法

6、jsp語法

    JSP模版元素

        Html標籤

    JSP表達式

        <%=表達式 %> <==> out.print(表達式);  //<%=表達式; %> 加分號錯誤

        注:內容會輸出到瀏覽器

    JSP腳本片斷

        <% java代碼 %>  不能有輸出語句(服務器沒有控制檯)

        翻譯成java代碼後,在_JspService()中

       腳本片段中不能寫方法

    JSP聲明

        <%!  %>

        翻譯成java代碼後,在_JspService()外

        聲明的變量是成員變量,聲明的方法是成員方法。

    JSP註釋

        <%--  --%>不能使用html註釋<!-- -->

    JSP指令

        <%@ 指令 屬性名="值" %>

 

        #include指令 靜態包含

        作用:include指令用於引入其它JSP頁面

        語法:<%@ include file="relativeURL"%2

 

        #page指令

        作用:page指令用於定義JSP頁面的各種屬性

        language="java"//告訴服務器以哪種語言翻譯文件

        import="{package.class | package.*}, ..."  

        //導入程序包 多個包用“,”隔開。

        session="true | false" //是否支持內置對象session

        buffer="none | 8kb | sizekb"//緩存大小,默認8KB

        autoFlush="true | false"

        isThreadSafe="true | false"

        info="text"

        errorPage="relative_url"//指定一個錯誤頁面

        isErrorPage="true | false"

        //指定當前頁面爲錯誤頁面 能使用exception

        contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1"

        pageEncoding="characterSet | ISO-8859-1"

        isELIgnored="true | false" //是否支持EL表達式

7、JSP內置對象

    名稱 數據類型

        request HttpServletRequest

        response HttpServletResponse

        session HttpSession

        application ServletContext

        config   ServletConfig

        exception(特殊情況下使用 page指令中有 isErrorPage="true")

        page    this(本JSP頁面)

        out      JspWriter(帶緩衝的PrintWriter)

        pageContext(使普通Java類可訪問WEB資源,自定義標籤常用)

 

    #out內置對象的特點

        將內容存在緩存數組中

         寫出到文件的條件:

        1). 調用刷新方法時

        2). 關閉流對象時

        3). 內存滿了

        4). 程序執行完(_JspService())

 

    #pageContext

        作用1. 用來獲取其他內置對象

        作用2. 域對象:作用域爲當前jsp頁面

        設置方法:

        //默認域對象方法(pageContext)

        pageContext.setAttribute("message", "pageContext message");

        //指定域對象方法

        pageContext.setAttribute("message", "request message", pageContext.REQUEST_SCOPE);

 

    獲取方法:

        //默認域對象方法(pageContext)

        pageContext.getAttribute("message")

        //指定域對象方法

        pageContext.getAttribute("message",pageContext.REQUEST_SCOPE)

        //搜索方法

        pageContext.findAttribute("message")

        優先級

        pageContext>request>session>application

 

    四大域對象:

        pageContext:作用於當前jsp頁面

        Request:相同的請求中有效(轉發中使用)

        Session:同一會話中有效(保存用戶私有信息)

        Application:同一web應用中有效(全局)

8、EL表達式

    語法:

        ${ 域對象中保存的key }

    #獲取數據

        1). 獲取非對象

        pageContext.setAttribute("name", "tom");

        ${name }

        ${name }<==>pageContext.findAttribute("name")

 

        2). 獲取對象

        Person p = new Person("tom",21);

        pageContext.setAttribute("person", p);

        <!-- person.name<==> p.getName() -->

        <!-- 獲取域對象中的對象的屬性值 -->

        <%-- name=${person.name1 },age=${person.age } --%>

9、後續學習

    還需要將EL表達式中的獲取集合中對象和 獲取map集合中的對象學習完成,然後完成教學視頻中的小demo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章