13-Java-JSP知識梳理

1、JSP瞭解html

      JSP(java server pages,服務器頁面),可理解爲HTML+ Java = = JSP,它可生成動態的HTML(拼標籤)。是以.jsp爲後綴的文件,java

   內容是以標籤爲主體,能夠內聯java代碼,本質上是servlet。web

2、JSP文件建立數組

  第一步:建立一個web項目,步驟見http://www.javashuo.com/article/p-kvquzmlz-d.html瀏覽器

    第二步:在項目文件夾下的webRoot下建立.jsp結尾的文件
服務器

    第三步:jsp文件的默認編碼爲:ISO-8859-1,需修改成utf-8,步驟以下:session

        點擊Window->點擊Preference->在搜索框中輸入jsp->找到JSP並點擊->在右側的Encoding下拉框中向上翻選中UTF-8
app

3、JSP引擎jsp

  大概瞭解編碼

      JSP引擎和JSP容器指的同同樣東西,他們都指用來統一管理和容許Web應用程序的軟件,常見的JSP引擎有Tomcat、JRun等,最經常使用的就是Tomcat。

   安裝JSP引擎的計算機,其實就是Web服務器。當瀏覽器要訪問一個JSP文件時,JSP文件會通過JSP引擎轉換爲一個Servlet,被編譯成class,而後經過class

   生成的的對象給用戶進行響應。

    JSP執行流程

      首先請求JSP引擎,將文件生成java文件,再將java文件編譯成class文件,再經過class建立對象,而後給用戶響應

4、JSP頁面組成部分

  1.靜態內容

  2.指令

    JSP指令用來設置整個JSP頁面相關的屬性,指令能夠有多個屬性,以鍵值對的形式表示,並用空格隔開

    1)與頁面相關的page指令:設置頁面相關的屬性

      <%@page 屬性1 = "屬性值1"  屬性2 = "屬性值2"  屬性3 = "屬性值3" ...%>

      

    2)與文件引入相關的include指令:將一個外部文件嵌入到另外一個JSP或HTML文件,同時解析這個頁面中的JSP語句

      <%@include file = "hh.html"%>

    3)與標籤相關的taglib指令:使用標籤庫定義新的自定義標籤

      <%@taglib url = "tablibburl" prefix = "tagpre"%>

      

 

      這裏對於以JSTL標籤庫爲例的使用可看:http://www.javashuo.com/article/p-avctvebk-eo.html

 

  3.表達式

    提供的是一種特殊的JSP語法格式,用來將java中的變量輸出到頁面上,是出如今__jspService方法中的

    在Servlet中所生成的代碼爲:

      out.print(變量名);

    在JSP文件中使用以下:

       <%=變量名或是有返回值的方法%>

  4.小腳本

    在JSP文件中編寫的java代碼,在引擎解析後,也是出如今__jspService方法中的

    在JSP文件中使用以下:

      <%

        <%--寫任何的java代碼(能夠是定義的變量,編寫的java語句,不能定義方法)--%>

        show();

        System.out.println("這就是小腳本的做用");

      %>

  5.聲明

    其實就是Java程序中的成員聲明,能夠用來聲明成員變量、成員方法。此處的聲明都是出如今類體中的而不是出如今方法體中的

    在JSP文件中使用以下:

      <%!

         private Integer num = 10;

         public void show(){

           System.out.println(num);

         }

      %>

  6.註釋

     JSP註釋分三種:

        HTML註釋:(客戶端可見)

          <!--html註釋-->

        JSP註釋:(客戶端不可見)

          <%--JSP註釋--%>

        JSP腳本註釋:

          //單行註釋

          /*多行註釋*/

5、案例

  1.JSP代碼

 

 1   <body>
 2           <%
 3               List<order> list = DealWithorder.findAll();
 4           %>
 5           <input type = "text">
 6         <input type = "button" value = "搜索">
 7         <table>
 8             <tr>
 9                 <th>訂單表
10                     <input type = "button" value = "全刪">
11                     <input type = "button" value = "添加">
12                 </th>
13             </tr>
14             <tr>
15                 <td>下單時間</td>
16                 <td>姓名</td>
17                 <td>詳細地址</td>
18                 <td>預留電話</td>
19                 <td>車牌號碼</td>
20                 <td>故障描述</td>
21                 <td>預定時間</td>
22                 
23             </tr>
24             <%
25                 for(order o : list){ 
26                     System.out.println(o);
27             %>    
28             <tr>
29                 <td><%= o.getTime() %></td>
30                 <td><%= o.getName() %></td>
31                 <td><%= o.getAddress() %></td>
32                 <td><%= o.getPhonenum() %></td>
33                 <td><%= o.getCarnum() %></td>
34                 <td><%= o.getProblem() %></td>
35                 <td><%= o.getDatetime() %></td>
36                 <td>
37                     <input type = "button" value = "刪除">
38                     <input type = "button" value = "修改">
39                 </td>
40             </tr>
41             <%
42                 }
43              %>
44              <tr>
45                  <td colspan = "8">
46                      當前 頁/共   頁     首頁   上一頁  1 2 3 ... 下一頁    尾頁
47                  </td> 
48              </tr>
49         </table>
50   </body>

 

  2.頁面效果

      

 

6、JSP九大內置對象

  大概瞭解

      內置對象(又稱隱含對象),在JSP中不須要建立(由服務器/容器建立),能夠直接使用的對象

  內置對象

      out:

        out對象是JSPWriter類的實現,是向客戶端輸出內容經常使用的對象

        類型:JSPWriter

        做用:向客戶端進行響應字符打印流

      request(四大做用域對象之一,important):

        類型:HttpServletRequest

        做用:請求對象,包含了請求信息

        getParameter("key");獲取用戶提交的表單信息

        setCharcterEncoding("字符集");設置請求編碼格式,防止亂碼

        setAtrribute("key","value");將數據保存到Request範圍內的變量

        forward(String url);轉發

        getParametersValues(String name);返回包含參數name全部值的數組

      response(important):

        類型:HttpServletResponse

        做用:響應對象,用來給用戶進行響應

          addCookie();將一個Cookie對象發送到客戶端

          sendRedirect(String url);重定向

      session(四大做用域對象之一,important):

        類型:HttpSession

        做用:會話對象,用來進行數據的共享和會話的跟蹤

        setMaxInactiveInterval(int num);設置session對象的有效活動時間

        invalidate();銷燬當前的session

      application(四大做用域對象之一,important):

        類型:ServletContext

        做用:全局的Servlet上下文對象,每一個應用只有一個,從應用啓動,就建立了,直到應用消亡,對象才被釋放。

      config:

        類型:ServletConfig

        做用:Servlet配置對象,較少使用

      page:

        類型:Object

        做用:指的當前JSP頁面對象

      pageContext(四大做用域對象之一,important):

        類型:pageContext

        做用:頁面的上下文,用來在一個頁面中進行數據的共享與通訊

      exception:    

        類型:Throwable

        做用:經常使用於錯誤處理的頁面,用來收集其餘頁面產生的錯誤信息,只有isErrorpage="true"時,纔會產生這個對象

7、JSP四大做用域

  大概瞭解

        爲了頁面、請求和用戶之間傳遞和共享數據,JSP提供了四個不一樣的做用域:pageContext(頁面做用域)、request(請求做用域)、

      session(會話做用域)、application(應用程序做用域),這些做用域規定了數據能夠傳遞和共享的範圍以及數據的存活時間。

    四大做用域(由上向下,做用域範圍由小到大)

      pageContext:一個頁面

      request:一個請求(可能包含多個頁面)  

      session:一次會話(可能包含屢次請求,默認數據存儲時間30分鐘)

      application:一次服務(包含屢次會話)

      經常使用方法:

        setAtrribute("key","value");將數據保存在對應做用域範圍內的變量

        Object val = getAtrribute("key");將數據從對應做用域範圍內取出來

        removeAtrribute("key");將指定數據從對應做用域範圍內的刪除

     1.添加數據到對應的做用域

      

      2.將數據從對應的做用域取出來

      

    3.方式二取值結果(從做用域小的先取值)

      

    4.將數據轉發到頁面

      

      

      

     5.將數據重定向到頁面

      

      

      

    6.請求轉發和請求重定向的區別

      請求重定向:客戶端行爲,response.sendRedirection("redirect.jsp");從本質上等於兩次請求,前一次的請求對象不會保存,地址欄的url地址會改變

      請求轉發:服務器行爲,request.getRequestDispatcher("forward.jsp").forward(request,response);是一次請求,轉發後請求對象會保存,地址欄和url地址不會改變

8、EL表達式

     用於快速從域對象中取出信息,並輸出至網頁

     格式:

       取出基本數據類型的格式:${key}

       取出對象的屬性的格式:

            ${對象的key.屬性名}

       取出數組/集合中對象的屬性值:

              方式1:${數組的key[下標].屬性名稱}

              方式2:${數組的key[下標]["屬性名"]}

              方式3:${數組的key[下標][屬性名的key]}

        EL表達式獲取數據流程:

        採用就近原則,按照四大做用域由小到大的順序依次取數據。

9、JSP的六大動做

  include動做

    用於引入jsp文件,在轉換時期,是沒有引入的,只有當執行到include代碼的時候纔會被動態的編譯載入

    <jsp:include page = "引用文件的地址" flush = "false"></jsp:include>

    

    include動做與include指令區別:

       include指令是JSP程序的轉換時期,將引入的文件嵌入,而後容易進行編譯 

  userbean、setProperty、getProperty動做

    用於給實體對象賦值

    <jsp:userbean id = "別名"  class = "全限定名" scope = "做用範圍" />

    <jsp:setProperty property = "屬性名稱" name = "別名" value = "值"/>

    <jsp:getProperty property = "屬性名稱" name = "別名" />

  forward動做、param動做

    <jsp:forward page = "轉發目標文件的地址">

      <jsp:param value = "值" name = "別名"/>

      <jsp:param value = "值" name = "別名"/>

    </jsp:forward>

相關文章
相關標籤/搜索