2020年JSP課堂筆記

JSP

JSP簡介

概念:java Servlet Pages:java服務器端頁面,本質上是一個Servlet

JSP頁面中可以同時有HTML標籤java代碼,用於簡化書寫

使用方式:

方式 功能描述
<% java代碼 %> Java代碼等效於在Service方法中執行
<%! java代碼 %> java代碼
<%= java代碼 %> java代碼會直接輸出到頁面上

JSP的內置對象:

  • 在jsp頁面中的對象不需要獲取和創建,可以直接使用

  • jsp一共有9個內置對象。

    • request

    • response

    • out:字符輸出流對象。可以將數據輸出到頁面上。

      out.write()response.getwriter()區別:

      • response.getWriter()數據輸出永遠在out.write()在前

指令

作用:用於配置JSP頁面,導入資源文件

格式:

<%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ...%>

分類:

  1. page:配置JSP頁面的
  2. include:頁面包含的。導入頁面的資源文件
  3. taglib:導入資源

page

屬性:

  • contentType

    1. 設置響應體的mine類型以及字符集
    2. 設置當前jsp頁面的編碼

    注意:只能是高級的IDE才能生效,如果使用低級工具,則需要設置pageEncoding屬性值設置當前頁面的字符集

  • import:導包

  • errorPage:當前頁面發生異常後,會自動跳轉到指定的錯誤頁面

  • isErrorPage:標識當前頁面是否可以顯示異常信息

    • true:可以使用內置對象Exception
    • false:默認,不可以使用

include(極少用)

<%@include file="top.jsp" %>

taglib

<%@ taglib prefix="自定義前綴" url="jsp庫的路徑"
  • prefix:前綴,自定義的,用於引用

註釋

  1. html註釋:<!--註釋內容-->(只能用於HTML註釋)
  2. jsp註釋:<%-- 註釋內容 --%>(註釋所有)

注意:最好使用jsp註釋

內置對象

概念:在jsp頁面中不需要註釋,直接使用的對象

一共有9個:

變量名 真實類型 作用
pageContext PageContext 當前頁面共享數據,還可以獲取其他8個內置對象
request HttpServletRequest 一次請求訪問的多個資源
session HttpSession 一次會話的多個請求間
application ServletContext 所有用戶間共享數據
response HttpServletResponse 響應對象
page Object 當前頁面的對象
out JspWriter 輸出對象,數據輸出到頁面上
config ServletConfig Servlet的配置對象
exception Throwable 異常對象

MVC開發模式

含義:

  1. M(model),模型,使用javaBean

作用:完成具體的業務操作,如:查詢數據庫,封裝對象

  1. V(view),視圖,使用JSP

作用:展示數據

  1. C(Controller),控制器,使用Servlet

作用:獲取用戶的輸入,調用模型,將數據交給視圖進行展示

優缺點:

  1. 優點:耦合性低,方便維護,可以利於分工協作,重用性高
  2. 缺點:使項目架構複雜

EL表達式

概念:Expression Language 表達式語言

作用:替換和簡化jsp頁面中的編寫

語法:${表達式}

注意

jsp默認支持el表達式。如果要忽略el表達式

  1. 設置jsp中page指令中:isELIgnored="true",忽略當前jsp頁面中所有的el表達式
  2. \${表達式}:將el表達式原樣顯示

運算:

  1. 算數運算符:+ - * /(div) %(mod)
  2. 比較運算符:> < >= <= !=
  3. 邏輯運算符:&&(and) ||(or) !(not)
  4. 空運算符:empty
    • 功能:用於判斷字符串、集合、數組對象是否是null並且長度是否爲0
    • 如:${empty list}

獲取值:

el表達式只能從域對象中獲取值

語法:

  1. ${域名稱.鍵名}:從指定域中獲取指定鍵的值
域名稱 原來域
pageScope pageContext
requestScope request
sessionScope session
applicationScope application(ServletContext)

例子:${requestScope.name}

  1. ${鍵名}:表示依次從最小的域中查找是否有該鍵對應的值,直到找到爲止。

獲取對象、List集合、Map集合的值

獲取值來源 語法
對象 ${域名稱.鍵名.屬性值}
List集合 ${域名稱.鍵名[索引]}
Map集合 ${域名稱.鍵名.key名稱}
${域名稱.鍵名["key名稱"]}
  1. 隱式對象:el表達式中有11個隱式對象

pageContext:獲取其他8個內置對象

${pageContext.request.contextPath}:動態獲取虛擬目錄

JSTL

概念:JSP標準標籤庫,由Apache組織提供的

作用:用於簡化和替換jsp頁面上的java代碼

使用步驟:

  1. 導入jstl相關的jar包
  2. 引入標籤庫:taglib指令:<%@ taglib %>
  3. 使用標籤

常用的jstl標籤:

標籤名稱 類似java關鍵字
if if
choose switch
when case
otherwise default
foreach for

標籤if的屬性注意:

  1. test爲必須屬性,接收boolean表達式
  2. 標籤if沒有else情況。

三層架構:軟件架構

架構層次:

  1. 界面層(表示層):用戶看的得界面。用戶可以通過界面上的組件和服務器進行交互

  2. 業務邏輯層:處理業務邏輯的。

  3. 數據訪問層:操作數據存儲文件。

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