三層的關系:
1.表示層接受用戶的請求,根據用戶請求去通知業務邏輯層
2.資料訪問層收到請求后開始訪問資料庫
3. 下一層不能呼叫上一層
4. 下一層不依賴上一層
4. 上一層中不能出現下一層的慨念
實作資料源連接:DataSource (資料源是由Tomcat維護的)
(資料源通過jndi來獲取資料源而不是實體化)
Context con = new InitialContext();
//通過"java:comp/env/" 為前綴來訪問jndi資源
DataSource ds =(DataSource)con.lookup("java:comp/env/資料源");
Connection conn = ds.getConnection();
連接池:Tomcat
1.是由容器提供的
2.用來管理池中連接物件
3.應用程式從連接池中獲取物件
4.連接池中的連接物件是由容器創建的
5.可以減輕資料庫訪問壓力
6.存放的都是資料庫連接
7.程式最后要使用Close()方法關閉連接
MVC: jsp三層架構
Serlvet控制層物件
V:表示層 (VIEW) JSP 用于顯示和獲取界面的資料
M:控制層 (Controller) Servlet 控制頁面跳轉等
C:模型層 (Model) javabean 處理上層傳遞的資料以及資料庫獲取的資料
maxActive 可以從物件池取出的最大物件數 為0表示無限制 默認為8
minldle 物件池中物件最小個數
maxidle 最大空閑連接數
validationQuery 驗證連接是否成功 Sql Select指令最少回傳一行
maxwait 最大等待秒數 單位ms -1為無限制
-----------------------------------------------------------------
| String contextPath = request.getContextPath(); |
| 獲取專案的路徑 |
-----------------------------------------------------------------
獲取Servlet初始化引數:
初始化引數配置 【必須要在 一對<web-app> 里面】
<init-param>
<param-name>initParam</param-name>
<param-value>Hello Servlet</param-value>
</init-param>
獲取引數:
//根據他的name來獲取value
String initParam = getInitParameter( "initParam" );
獲取Servlet背景關系引數:
配置Servlet背景關系 【必須要在 一對<web-app> 里面】
<context-param>
<param-name>contextParam</param-name> 初始化引數名
<param-value>Hello Servlet</param-value> 初始化引數值
</context-param>
獲取背景關系引數:
//根據引數名讀取值
String contextParam = this.getServletContext().getInitParameter( "contextParam" );
------- System.out.println("Servlet初始化引數" + initParam);
------- System.out.println("系統初始化引數" + contextParam);
第八章
---------------------------------JSTL EL運算式----------------------
EL運算式簡介:
1.什么是el: Expression Language(運算式語言)
2.EL的功能: 替代JSP頁面中資料訪問時的復雜編碼
3.EL的特點: 【自動轉換型別】 EL得到某個資料時可以自動轉換型別 使用簡單
EL運算式語法【6-1】 :
${ EL expression }
1. 通過變數名取值
2. 獲取物件的屬性值
3. 獲取集合元素
4. 執行運算式
EL運算式語法【6-2】:
${變數名}
代碼例:
// 在Servlet或JSP中保存資料
request.setAttribute("username", "LiYang");
// 在JSP中訪問資料
姓名: ${username} //輸出: 姓名:LiYang
按照page → request → session → application的作用域順序依次查找,找到即回傳,最終找不到回傳null
指定作用域:
----------------------------------------------------------------------------------------------------------------------------
| 屬性范圍 EL中的名稱 |
| page ageScope,例如${pageScope.username}表示在page作用域查找變數username,找不到回傳null | | request requestScope |
| session sessionScope |
| application applicationScope |
----------------------------------------------------------------------------------------------------------------------------
EL運算式語法【6-3】:
獲取物件的屬性值: <%= ( (User) request.getAttribute("user") ) .getName() %>
點運算子 : ${user.name}
[ ]運算子 : ${user["name"]}
EL運算式語法【6-4】: 獲取集合元素 List
// 在Servlet或JSP中保存資料
List names = new ArrayList();
names.add(0, "LiYang");
names.add(1,"WangHua");
request.setAttribute("names",names);
// 在JSP中訪問資料
姓名:${ names[0] }<br/>
姓名:${ names[1] }<br/> 使用 [ ] 指定元素的下標
EL運算式語法【6-5】: 獲取集合元素 Map
// 在Servlet或JSP中保存資料
Map names = new HashMap();
names.put("one", "LiYang");
names.put("two", "WangHua");
request.setAttribute("names", names);
// 在JSP中訪問資料
姓名:${ names.one }<br/> 使用 點運算子輸出
姓名:${ names["two"] }<br/> 使用 [ ]運算子輸出
EL運算式語法【6-6】:
執行運算式:
1.關系運算子
2.邏輯運算子
3.empty運算子
-------------------------------------------------------------------------------------------
- 關系運算子 說明 示例 回傳結果為 true -
- == eq 等于 ${5==5}或${5 eq 5} ${"a" =="a"}或${"a" eq "a"} -
- != ne 不等于 ${23!=5}或${23 ne 5} -
- < lt 小于 ${3<5}或${3 lt 5} -
- > gt 大于 ${23>5}或${23 gt 5} -
- <= le 小于等于 ${3<=5}或${3 le 5} -
- >= ge 大于等于 ${23>=5}或${23 ge 5} -
--------------------------------------------------------------------------------------------
----------------------------------------------------------------
- 邏輯運算子 說明 -
- && and 并且 條件同時成立為true -
- || or 或者 只要有一個條件成立就為true -
- ! not 非 條件結果反著來 -
----------------------------------------------------------------
------------------------------------------------------------------
- empty運算子 說明 -
- ${empty 變數} 判斷是否為空 空為true 有值為false -
-------------------------------------------------------------------
EL隱式物件:
1.作用域訪問物件
① pageScope
② requestScope
③ sessionScope
④ applicationScope
2.引數訪問物件
① param
② paramValues
3.JSP隱式物件
① pageContext
JSTL核心標簽庫 導包:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<p>${ "<a href='http://www.baidu.com'>百度</a>" }</p> // 超鏈接百度
<c:out escapeXmI="false"
value="https://bbs.csdn.net/topics/ // escapeXmI 默認為true 為true時-----文本輸出 false時----html輸出
<c:out value="https://bbs.csdn.net/topics/
<c:set var= "num" value="https://bbs.csdn.net/topics/10" scope= "session" /> //將 值10 賦值給 變數num 作用域是Session
<c:out value=https://bbs.csdn.net/topics/ "${sessionScope .num }" /> //輸出 Session作用域下的變數num的值
/*
C: choose 就是switch結構
C:when 可以寫n個 跟 case一樣
C: otherwise 可以寫0-1個 跟default一樣
整個 C: choose 里面只有一個輸出
*/
<C: choose>
<C :when test= "${ sessionScope.num >10} ">
結果大于10
</c: when>
<c:when test= "${ sessionScope .num <10 } " >
結果小于10
</c :when>
<c:when test= "${ sessionScope.num ==10 }' >
結果等于10
</c :when>
<C: otherwise>
沒有結果
</C: otherwise>
</C: choose>
-------------------------------------------------------------------------------------------------
<script> // jQuery代碼
var bTime=result[i].bTime //獲取當前的時間資訊
var btime=bTime.substr(0,10); // 截取前10位 打到yyyy-mm-dd格式
/*
// yyyy-mm-mm的時間格式
//獲取時間的文本
var time = $("input[name=btime]").val().trim(); //獲取input標簽的值
//正則運算式判斷格式
var dateFormat =/^(\d{4})-(\d{2})-(\d{2})$/;
//判斷時間格式是否是yyyy-mm-dd
if(!(dateFormat.test(time))){
alert("您輸入的時間格式不對哦");
return false;
}
*/
//拼接字串 回圈顯示內容 追加樣式
//引數拼接
// <a href='https://bbs.csdn.net/topics/bs?bid="+result[i].bId+"&mess=findByid' id='del'>洗掉</a></td></tr>");
var li=$("<tr><td>"+result[i].bName+"</td><td>"+result[i].bAuthor+"</td><td>"+result[i].bTime+"</td><td>"+btype+"</td><td><a href='https://bbs.csdn.net/topics/#?bid="+result[i].bId+"' class=\"Del\">洗掉</a></td><input type='hidden' value='"+result[i].bId+"' class='iid'></tr>"); //自動創建li
$("#ta").append(li); //追加子節點
$("tr:even").css("background-color","#ffc0c
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/11221.html
標籤:非技術區
上一篇:SpringBoot創建及啟動
