一遍過JSP【JAVAEE基礎】

1.JSP:動態網頁(就是在html中嵌套java代碼)

  動態網頁:隨着 時間、地點、用戶操作的改變而改變,使用到服務端腳本語言(JSP)

2.JSP頁面元素:HTML、java代碼(腳本Scriptlet)、指令、註釋
頁面腳本

  1.
	   <%  
		局部變量、java語句(編譯後:service方法中)
	   %>
  2.
      <%!  
		全局變量、定義方法(編譯後:Servlet成員變量位置)
      %>
  3.
      <%= 輸出表達式 %>

指令

  1.page指令
  <%@ page contentType="text/html;charset=UTF-8" language="JSP頁面使用的腳本語言" import="導入類" %>

  2、taglib指令
	作用:導入標籤庫
	語法:<%@taglib  uri="文件的uri名稱"  prefix="前綴(簡寫)"%>

  3、include指令
	作用:在當前頁面用於包含其他頁面
	語法: <%@include  file="common/header.jsp%>

註釋

  html註釋<!-- -->
  java註釋//   /**/
  jsp註釋<%-- --%>

3.jsp執行流程:

   jsp ->java(Servlet文件) ->class

4.JSP九大內置對象:
內置對象:在jsp中,不需要創建,可以直接使用的對象

jsp
5.JavaBean(Java類)

   定義:(滿足以下兩點)
      1.public修飾的類,含有public無參構造函數
      2.所有屬性都是private,並提供set/get。

   作用:
      1.減輕jsp的複雜度
      2.提高代碼的複用度

   使用層面分爲兩大類:
     1.封裝業務邏輯的JavaBean(登錄邏輯 LoginDao.java 等)   可以將jsp中的JDBC代碼,封裝起來。
     2.封裝數據的JavaBean(實體類,Student.java  Person.java)   對應於數據庫中的一張表。

6.通過MVC設計模式瞭解JavaBean

 M:  Model 模型 (負責各個功能) javaBean
 V:  View  視圖 (負責頁面的顯示,以及與用戶的交互)  html/css/js/jsp
 C:  Controller 控制器 (接受請求,將請求跳轉到模型進行處理,模型處理完畢後,再將處理的結果返回給請求處) Servlet/jsp

。。。
7.三層架構

與MVC設計模式的目標一致:都是爲了解耦合、提高代碼複用;
 區別,二者對項目的理解的角度不同。
  1.三層組成:
    表示層(USL):視圖層    
       - 前臺:對應於MVC中的View,用於和用戶交互、界面的顯示(html/css/js/jsp)
       - 後臺:對應於MVC中的Controller,用於控制跳轉、調用業務邏輯層(Servlet/SpringMVC/Struts2 位於servlet包)

    業務邏輯層(BLL):service層
       - 組裝數據訪問層,邏輯性的操作(增刪改查 位於service包) eg:刪:查+刪
       
    數據訪問層(DAL):dao層
       - 直接訪問數據庫的操作,原子性的操作(增刪改查 位於dao包)

  2.三層間的關係:
    上層將請求傳遞給下層,下層處理後返回給上層。
    上層依賴於下層(上層持有下層成員變量,有上層的前提必須有下層)

  3.三層優化
    
- 加入接口
    建議面向接口開發:先接口-再實現類
- service、dao加入接口
 - 接口與實現類的         命名規範   
   接口:interface       IXxxService、IXxxDao
       
   實現類:implements    XxxServiceImpl、 XxxDaoImpl

    使用接口/實現類時。推薦寫法
   接口 x=new 實現類();


- DBUtil  通用的數據庫幫助類,可以簡化Dao層的代碼量

8.EL: 表達式語言,可以替代JSP頁面中的java代碼

   傳統的 在JSP中用java顯示數據的弊端:類型轉換、需要處理null、代碼參雜-->EL

 - EL示例:
     ${requestScope.student.address.schoolAddress}<br>
     ${域對象.域對象中的屬性.屬性.級聯屬性}<br>


 - EL操作符
     點操作符  .      -- 使用方便
     中括號操作符 [""]  -- 功能強大:可以包含特殊字符(. 、 -),獲取變量值

  獲取map屬性
       Map<String,Object> map=new HashMap<>();
       map.put("cn","中國");
       map.put("us","美國");
       request.setAttribute("map",map);
    ${requestScope.map.cn}

  isEmpty運算符:判斷一個值存在不存在。

- EL表達式的隱式對象(內置對象)
   - 作用域訪問對象
         pageScope requestScope sessionScope sessionScope applicationScope
	 如果不指定域對象,則默認會根據從小到大的順序,依次取值

   - 參數訪問對象:獲取表單數據。
	 ${param.xxx}
	 ${paranValues.xxx[]}

   - JSP隱式對象 : pageContext     
     ${pageContext.xxx} 通過pageContext間接獲取jsp的隱式對象。

9.JSTL:比EL更強大

   1.引入兩個jar包:jstl.jar standard.jar
   2.引入taglib  <%@ taglib uri="...core"> prefix="c" %>
   。。。。。。。。。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章