<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 總結 ~~~ 1. MVC開發模式 2. EL表達式 3. JSTL標簽 4. 三層架構 ~~~ ## JSP: ~~~ 1. 指令 * 作用:用于配置JSP頁面,導入資源文件 * 格式: <%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ... %> * 分類: 1. page : 配置JSP頁面的 * contentType:等同于response.setContentType() 1. 設置響應體的mime類型以及字符集 2. 設置當前jsp頁面的編碼(只能是高級的IDE才能生效,如果使用低級工具,則需要設置pageEncoding屬性設置當前頁面的字符集) * import:導包 * errorPage:當前頁面發生異常后,會自動跳轉到指定的錯誤頁面 * isErrorPage:標識當前也是是否是錯誤頁面。 * true:是,可以使用內置對象exception * false:否。默認值。不可以使用內置對象exception ~~~ ~~~ 2. include : 頁面包含的。導入頁面的資源文件 * <%@include file="top.jsp"%> 3. taglib : 導入資源 * <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> * prefix:前綴,自定義的 2. 注釋: 1. html注釋: <!-- -->:只能注釋html代碼片段 2. jsp注釋:推薦使用 <%-- --%>:可以注釋所有 ~~~ ~~~ 3. 內置對象 * 在jsp頁面中不需要創建,直接使用的對象 * 一共有9個: 變量名 真實類型 作用 * pageContext PageContext 當前頁面共享數據,還可以獲取其他八個內置對象 * request HttpServletRequest 一次請求訪問的多個資源(轉發) * session HttpSession 一次會話的多個請求間 * application ServletContext 所有用戶間共享數據 * response HttpServletResponse 響應對象 * page Object 當前頁面(Servlet)的對象 this * out JspWriter 輸出對象,數據輸出到頁面上 * config ServletConfig Servlet的配置對象 * exception Throwable 異常對象 ~~~ ## MVC:開發模式 ~~~ 1. jsp演變歷史 1. 早期只有servlet,只能使用response輸出標簽數據,非常麻煩 2. 后來又jsp,簡化了Servlet的開發,如果過度使用jsp,在jsp中即寫大量的java代碼,有寫html表,造成難于維護,難于分工協作 3. 再后來,java的web開發,借鑒mvc開發模式,使得程序的設計更加合理性 ? 2. MVC: 1. M:Model,模型。JavaBean * 完成具體的業務操作,如:查詢數據庫,封裝對象 2. V:View,視圖。JSP * 展示數據 3. C:Controller,控制器。Servlet * 獲取用戶的輸入 * 調用模型 * 將數據交給視圖進行展示 ~~~ ~~~ * 優缺點: 1. 優點: 1. 耦合性低,方便維護,可以利于分工協作 2. 重用性高 ? 2. 缺點: 1. 使得項目架構變得復雜,對開發人員要求高 ~~~ ## EL表達式 ~~~ 1. 概念:Expression Language 表達式語言 2. 作用:替換和簡化jsp頁面中java代碼的編寫 3. 語法:${表達式} 4. 注意: * jsp默認支持el表達式的。如果要忽略el表達式 1. 設置jsp中page指令中:isELIgnored="true" 忽略當前jsp頁面中所有的el表達式 2. \${表達式} :忽略當前這個el表達式 ~~~ ~~~ 5. 使用: 1. 運算: * 運算符: 1. 算數運算符: + - * /(div) %(mod) 2. 比較運算符: > < >= <= == != 3. 邏輯運算符: &&(and) ||(or) !(not) 4. 空運算符: empty * 功能:用于判斷字符串、集合、數組對象是否為null或者長度是否為0 * ${empty list}:判斷字符串、集合、數組對象是否為null或者長度為0 * ${not empty str}:表示判斷字符串、集合、數組對象是否不為null 并且 長度>0 2. 獲取值 1. el表達式只能從域對象中獲取值 2. 語法: 1. ${域名稱.鍵名}:從指定域中獲取指定鍵的值 * 域名稱: 1. pageScope --> pageContext 2. requestScope --> request 3. sessionScope --> session 4. applicationScope --> application(ServletContext) * 舉例:在request域中存儲了name=張三 * 獲取:${requestScope.name} ? 2. ${鍵名}:表示依次從最小的域中查找是否有該鍵對應的值,直到找到為止。 ~~~ ~~~ 3. 獲取對象、List集合、Map集合的值 1. 對象:${域名稱.鍵名.屬性名} * 本質上會去調用對象的getter方法 ? 2. List集合:${域名稱.鍵名[索引]} ? 3. Map集合: * ${域名稱.鍵名.key名稱} * ${域名稱.鍵名["key名稱"]} ~~~ ~~~ 3. 隱式對象: * el表達式中有11個隱式對象 * pageContext: * 獲取jsp其他八個內置對象 * ${pageContext.request.contextPath}:動態獲取虛擬目錄 ~~~ ## JSTL ~~~ 1. 概念:JavaServer Pages Tag Library JSP標準標簽庫 * 是由Apache組織提供的開源的免費的jsp標簽 <標簽> ? 2. 作用:用于簡化和替換jsp頁面上的java代碼 ? 3. 使用步驟: 1. 導入jstl相關jar包 2. 引入標簽庫:taglib指令: <%@ taglib %> 3. 使用標簽 ? 4. 常用的JSTL標簽 1. if:相當于java代碼的if語句 1. 屬性: ? ? ? ? ? * test 必須屬性,接受boolean表達式 ? ? ? ? ? ? ? * 如果表達式為true,則顯示if標簽體內容,如果為false,則不顯示標簽體內容 ? ? ? ? ? ? ? * 一般情況下,test屬性值會結合el表達式一起使用 ? 2. 注意: ? ? ? * c:if標簽沒有else情況,想要else情況,則可以在定義一個c:if標簽 2. choose:相當于java代碼的switch語句 1. 使用choose標簽聲明 ? ? ? ? 相當于switch聲明 ? ? ? 2. 使用when標簽做判斷 ? ? ? ? 相當于case ? ? ? 3. 使用otherwise標簽做其他情況的聲明 ? 相當于default ? 3. foreach:相當于java代碼的for語句 ? 5. 練習: * 需求:在request域中有一個存有User對象的List集合。需要使用jstl+el將list集合數據展示到jsp頁面的表格table中 ~~~ ## 三層架構:軟件設計架構 ~~~ 1. 界面層(表示層):用戶看的得界面。用戶可以通過界面上的組件和服務器進行交互 2. 業務邏輯層:處理業務邏輯的。 3. 數據訪問層:操作數據存儲文件。 ~~~ ## 案例:用戶信息列表展示 ~~~ 1. 需求:用戶信息的增刪改查操作 2. 設計: 1. 技術選型:Servlet+JSP+MySQL+JDBCTempleat+Duird+BeanUtilS+tomcat 2. 數據庫設計: create database day17; -- 創建數據庫 use day17; ? -- 使用數據庫 create table user( ? -- 創建表 id int primary key auto_increment, name varchar(20) not null, gender varchar(5), age int, address varchar(32), qq varchar(20), email varchar(50) ); ? 3. 開發: 1. 環境搭建 1. 創建數據庫環境 2. 創建項目,導入需要的jar包 ? 2. 編碼 ~~~ ~~~ 4. 測試 5. 部署運維 ~~~ 學生出現問題匯總: 1.jstl.jar和standard.jar放錯位置。 2.引用核心標簽庫的uri寫錯。 3.導航菜單類有參構造方法,參數有類型,有順序。 4.記得隨時保存代碼。 5.使用forEach的時候items里面沒有使用EL獲取集合數據,會導致菜單屬性找不到異常。 #### 1.列表查詢用戶數據過程分析圖 ![](http://h.yiniuedu.com/fe19c1c3309b7299b4d0a9c2a210cee4) #### 2.MVC三層架構圖 ![](http://h.yiniuedu.com/d5eef639d1699dccbc59b2241c8f09da) #### 3.MVC開發模式 ![](http://h.yiniuedu.com/c245a1830af74efe27e34462277de424)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看