JavaWebday05

<meta charset="utf-8">

JSP

  1. 指令
    作用:用于配置JSP頁面杨箭,導(dǎo)入資源文件
    格式:<%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ... %>
    分類:

page相關(guān)

  • page: 配置JSP頁面的, *contentType:等同于response.setContentType();1. 設(shè)置響應(yīng)體的mime類型以及字符集, 2. 設(shè)置當(dāng)前jsp頁面的編碼(只能是高級的IDE才能生效赵讯,如果使用低級工具荆忍,則需要設(shè)置pageEncoding屬性設(shè)置當(dāng)前頁面的字符集)
  • import:導(dǎo)包
  • errorPage:當(dāng)前頁面發(fā)生異常后闯狱,會自動跳轉(zhuǎn)到指定的錯誤頁面
  • isErrorPage:標(biāo)識當(dāng)前也是是否是錯誤頁面。true:是咕晋,可以使用內(nèi)置對象exception, * false:否趁矾。默認(rèn)值。不可以使用內(nèi)置對象exception

include

include : 頁面包含的槽袄。導(dǎo)入頁面的資源文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@include file="top.jsp"%>

top.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>這是頭部</h1>
</body>
</html>

taglib 導(dǎo)入資源

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> prefix:前綴烙无,自定義的
注釋:
1. html注釋:
:只能注釋html代碼片段
2. jsp注釋:推薦使用
<%-- --%>:可以注釋所有

內(nèi)置對象: 在jsp頁面中不需要創(chuàng)建,直接使用的對象

一共有9個:

變量名                 真實(shí)類型                        作用
pageContext             PageContext                 當(dāng)前頁面共享數(shù)據(jù)遍尺,還可以獲取其他八個內(nèi)置對象
request                 HttpServletRequest          一次請求訪問的多個資源(轉(zhuǎn)發(fā))
session                 HttpSession                 一次會話的多個請求間
application             ServletContext              所有用戶間共享數(shù)據(jù)
response                    HttpServletResponse         響應(yīng)對象
page                        Object                      當(dāng)前頁面(Servlet)的對象  this
out                     JspWriter                   輸出對象截酷,數(shù)據(jù)輸出到頁面上
config                  ServletConfig               Servlet的配置對象
exception                   Throwable                   異常對象

EL表達(dá)式

  1. 概念:Expression Language 表達(dá)式語言
  2. 作用:替換和簡化jsp頁面中java代碼的編寫、
  3. 語法:${表達(dá)式}
  4. 注意:
    jsp默認(rèn)支持el表達(dá)式的乾戏。如果要忽略el表達(dá)式
    設(shè)置jsp中page指令中:isELIgnored="true" 忽略當(dāng)前jsp頁面中所有的el表達(dá)式
    ${表達(dá)式} :忽略當(dāng)前這個el表達(dá)式
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %><%--
  Created by IntelliJ IDEA.
  User: Eric
  Date: 2020/8/31
  Time: 08:50
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java"  %>
<%--<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="true" %>--%>
<html>
<head>
    <title>Title</title>
</head>
<body>
${3>4}
<br>
\${3>4}
<br>
<h3>算術(shù)運(yùn)算符</h3>
${3+4}
${3*4}
${3/4}
${3%4}
${3 mod 4}
<h3>比較運(yùn)算符</h3>
${3==4}
<h3>邏輯運(yùn)算符</h3>
${3>4 && 3<4}
${3>4 and 3<4}
<h3>empty運(yùn)算符</h3>
<%
    String str = "";
    request.setAttribute("str", str);
    List<String> list = new ArrayList<>();
    list.add("haha");
    request.setAttribute("list", list);
%>
<%--${empty }--%>
${empty str}
${empty list}
${not empty str}
${not empty list}

</body>
</html>

獲取值

  1. el表達(dá)式只能從域?qū)ο笾蝎@取值
  2. 語法:
    1. ${域名稱.鍵名}:從指定域中獲取指定鍵的值
    • 域名稱:
      1. pageScope --> pageContext
      2. requestScope --> request
      3. sessionScope --> session
      4. applicationScope --> application(ServletContext)
<%--
  Created by IntelliJ IDEA.
  User: Eric
  Date: 2020/8/31
  Time: 09:31
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
// 在域中存儲數(shù)據(jù)
    session.setAttribute("name", "李四");
    request.setAttribute("name", "張三");
    session.setAttribute("age", "23");
    request.setAttribute("str", "");
%>
<h3>el獲取值</h3>
${requestScope.name}
${sessionScope.name}
${sessionScope.age}
${name}
</body>
</html>

  1. ${鍵名}:表示依次從最小的域中查找是否有該鍵對應(yīng)的值迂苛,直到找到為止。

  2. 獲取對象鼓择、List集合三幻、Map集合的值

    1. 對象:${域名稱.鍵名.屬性名}

      • 本質(zhì)上會去調(diào)用對象的getter方法
        · 2. List集合:${域名稱.鍵名[索引]}
    2. Map集合:
      [圖片上傳失敗...(image-2ab0a0-1598868857105)]

      {域名稱.鍵名["key名稱"]}

<%@ page import="neusoft.el.User" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.HashMap" %><%--
  Created by IntelliJ IDEA.
  User: Eric
  Date: 2020/8/31
  Time: 09:35
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        User user = new User();
        user.setName("小桌子");
        user.setAge(23);
        user.setBirthday(new Date());
        request.setAttribute("u", user);

        List<Object> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add(user);
        request.setAttribute("list", list);

        HashMap<String, Object> map = new HashMap<>();
        map.put("sname", "趙四");
        map.put("gender", "男");
        map.put("user", user);
        request.setAttribute("map", map);

    %>

<h1>el獲取對象中的值</h1>
${requestScope.u}
<%--    對象屬性獲取
       setter 或者 getter方法  去掉 set和get
        將剩余部分首字母變?yōu)樾?        getName() ---> Name ----> name
--%>
${requestScope.u.name}<br>
${u.age} <br>
${u.birthday}<br>

<h3>獲取list值</h3>
    ${requestScope.list}
    ${list}
    ${list[0]}
    ${list[2]}
    ${list[2].name}
    <h5>list[10]</h5>
    ${list[10]}
<h3>獲取map值</h3>
    ${requestScope.map}
    ${map}
    ${map.gender}
    ${map["gender"]}
    ${map.user.name}

</body>
</html>

JSTL

概念:JavaServer Pages Tag Library JSP標(biāo)準(zhǔn)標(biāo)簽庫,是由Apache組織提供的開源的免費(fèi)的jsp標(biāo)簽<標(biāo)簽>呐能。 作用:用于簡化和替換jsp頁面上的java代碼

使用步驟:

  1. 導(dǎo)入jstl相關(guān)jar包
  2. 引入標(biāo)簽庫:taglib指令: <%@ taglib %>
  3. 使用標(biāo)簽
  4. 常用的JSTL標(biāo)簽
1. if:相當(dāng)于java代碼的if語句
  1. 屬性:
  • test 必須屬性念搬,接受boolean表達(dá)式
  • 如果表達(dá)式為true,則顯示if標(biāo)簽體內(nèi)容,如果為false锁蠕,則不顯示標(biāo)簽體內(nèi)容
  • 一般情況下夷野,test屬性值會結(jié)合el表達(dá)式一起使用
  1. 注意:
  • c:if標(biāo)簽沒有else情況,想要else情況荣倾,則可以在定義一個c:if標(biāo)簽
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
<head>
    <title>if標(biāo)簽</title>
</head>
<body>
<%--c:if
  1悯搔、 屬性 test 必須屬性, 接受的是boolean表達(dá)式
    一般 test配合 el表達(dá)式一起使用
    2舌仍、 沒有else部分妒貌, 想要的話需要在定義一個 c:if
--%>
<c:if test="fasle">
    <h1>還有一個月就過節(jié)了</h1>
</c:if>
<%
    List<Object> list = new ArrayList<>();
    list.add("aaaa");
    request.setAttribute("list", list);
    request.setAttribute("number", 6);
%>
<c:if test="${not empty requestScope.list}">
    <h2>遍歷集合</h2>
</c:if>
<br>
<c:if test="${number % 2 != 0}">
    <h2>${number}為奇數(shù)</h2>
</c:if>
<c:if test="${number % 2 == 0}">
    <h2>${number}為偶數(shù)</h2>
</c:if>

</body>
</html>

2. choose:相當(dāng)于java代碼的switch語句
  1. 使用choose標(biāo)簽聲明 相當(dāng)于switch聲明
  2. 使用when標(biāo)簽做判斷 相當(dāng)于case
  3. 使用otherwise標(biāo)簽做其他情況的聲明 相當(dāng)于default
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="d" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
<head>
    <title>choose標(biāo)簽</title>
</head>
<body>
<%
    request.setAttribute("number", 7);
%>
<d:choose>
    <d:when test="${number == 1}">星期一</d:when>
    <d:when test="${number == 2}">星期二</d:when>
    <d:when test="${number == 3}">星期三</d:when>
    <d:when test="${number == 4}">星期四</d:when>
    <d:when test="${number == 5}">星期五</d:when>
    <d:when test="${number == 6}">星期六</d:when>
    <d:when test="${number == 7}">星期天</d:when>

    <d:otherwise >過年</d:otherwise>

</d:choose>

</body>
</html>

3. foreach:相當(dāng)于java代碼的for語句

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
<head>
    <title>forEach標(biāo)簽</title>
</head>
<body>
<!--
   begin 開始
   end 結(jié)束
   var 臨時變量
   step 步長
   varStatus :循環(huán)狀態(tài)對象
      index : 容器中元素的索引
      count : 循環(huán)次數(shù) (從開始)
      items : 容器對象
 -->
<c:forEach begin="0" end="10" var="i"  step="2" varStatus="s">
    ${i}
    <h3>index ${s.index}</h3>
    <h4>count ${s.count}</h4>
</c:forEach>
<hr>
<%
    List<String> list = new ArrayList<>();
    list.add("小魯班");
    list.add("妲己");
    list.add("后羿");
    request.setAttribute("list", list);
//    for (String str:
//         list) {
//
//    }

%>

<c:forEach items="${list}" var="str" varStatus="s">
    ${s.index} ---- ${s.count} ${str}<br>
</c:forEach>

</body>
</html>

Spring JDBC JdbcTemplate

Spring框架對JDBC的簡單封裝。提供了一個JDBCTemplate對象簡化JDBC的開發(fā)

  1. 導(dǎo)入jar包
  2. 創(chuàng)建JdbcTemplate對象铸豁。依賴于數(shù)據(jù)源DataSource, JdbcTemplate template = new JdbcTemplate(ds);
  3. 調(diào)用JdbcTemplate的方法來完成CRUD的操作
* update():執(zhí)行DML語句灌曙。增、刪节芥、改語句
* queryForMap():查詢結(jié)果將結(jié)果集封裝為map集合在刺,將列名作為key,將值作為value 將這條記錄封裝為一個map集合
* 注意:這個方法查詢的結(jié)果集長度只能是1
* queryForList():查詢結(jié)果將結(jié)果集封裝為list集合
* 注意:將每一條記錄封裝為一個Map集合头镊,再將Map集合裝載到List集合中
* query():查詢結(jié)果蚣驼,將結(jié)果封裝為JavaBean對象 * query的參數(shù):RowMapper
* 一般我們使用BeanPropertyRowMapper實(shí)現(xiàn)類∠嗤В可以完成數(shù)據(jù)到JavaBean的自動封裝  new BeanPropertyRowMapper<類型>(類型.class)
* queryForObject:查詢結(jié)果颖杏,將結(jié)果封裝為對象
* 一般用于聚合函數(shù)的查詢
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市坛芽,隨后出現(xiàn)的幾起案子留储,更是在濱河造成了極大的恐慌,老刑警劉巖咙轩,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件获讳,死亡現(xiàn)場離奇詭異,居然都是意外死亡活喊,警方通過查閱死者的電腦和手機(jī)赔嚎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胧弛,“玉大人,你說我怎么就攤上這事侠畔〗岣浚” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵软棺,是天一觀的道長红竭。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么茵宪? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任最冰,我火速辦了婚禮,結(jié)果婚禮上稀火,老公的妹妹穿的比我還像新娘暖哨。我一直安慰自己,他們只是感情好凰狞,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布篇裁。 她就那樣靜靜地躺著,像睡著了一般赡若。 火紅的嫁衣襯著肌膚如雪达布。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天逾冬,我揣著相機(jī)與錄音黍聂,去河邊找鬼。 笑死身腻,一個胖子當(dāng)著我的面吹牛产还,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播霸株,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼雕沉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了去件?” 一聲冷哼從身側(cè)響起坡椒,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎尤溜,沒想到半個月后倔叼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宫莱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年丈攒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片授霸。...
    茶點(diǎn)故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡巡验,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出碘耳,到底是詐尸還是另有隱情显设,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布辛辨,位于F島的核電站捕捂,受9級特大地震影響瑟枫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜指攒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一慷妙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧允悦,春花似錦膝擂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至驶鹉,卻和暖如春绩蜻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背室埋。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工办绝, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人姚淆。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓孕蝉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親腌逢。 傳聞我的和親對象是個殘疾皇子降淮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容

  • JSP 指令作用:用于配置JSP頁面,導(dǎo)入資源文件格式:<%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ...
    淺瞳_e42e閱讀 156評論 0 0
  • JSP 指令作用:用于配置JSP頁面搏讶,導(dǎo)入資源文件格式:<%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ...
    __method__閱讀 395評論 0 1
  • JSP 指令作用:用于配置JSP頁面佳鳖,導(dǎo)入資源文件格式:<%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ...
    wangylll閱讀 134評論 0 0
  • JSP 指令作用:用于配置JSP頁面,導(dǎo)入資源文件格式:<%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ...
    王希杰閱讀 134評論 0 0
  • 黑色的海島上懸著一輪又大又圓的明月,毫不嫌棄地把溫柔的月色照在這寸草不生的小島上妒蔚。一個少年白衣白發(fā)穿挨,悠閑自如地倚坐...
    小水Vivian閱讀 3,102評論 1 5