亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? jsp(day05).txt

?? 這是我們上課學(xué)習(xí)jsp時的上課筆記
?? TXT
字號:

                                  JSP第五天   2007年7月4日
                                  
一、EL語法

EL的語法很簡單,他最大的特點(diǎn)就是使用上很方便
例:
${sessionScope.user.sex}
所有EL都是以 ${ 為起始、以} 為結(jié)尾的。
上述EL范例的意思是:從Session取得用戶的性別。如果使用之前JSP代碼的寫法如下:
<%
  User user = (User)session.getAttribute("user");
  String sex = user.getSex( );
 %>
兩者相比較之下,可以發(fā)現(xiàn)EL的語法比傳統(tǒng)JSP代碼更為方便、簡潔。

EL提供 . 和 [ ] 兩種運(yùn)算符來存取數(shù)據(jù),[ ]可以訪問集合或者是數(shù)組的元素、Bean的屬性。下列兩者所代表的意思是一樣的,
但是需要保證要取得對象的那個的屬性有相應(yīng)的setXxx()和getXxx()方法才行。

例:
${sessionScope.user.sex}
等于
${sessionScope.user["sex"]}

. 和 [ ] 也可以同時混合使用,如下:
${sessionScope.shoppingCart[0].price}
返回結(jié)果為shoppingCart中第一項物品的價格。

在EL中,字符串既可以使用"abc",可以使用'abc'。

EL運(yùn)算符

EL的算術(shù)運(yùn)算符和Java中的運(yùn)算符的大致相同,優(yōu)先級也相同。

注意:'+' 運(yùn)算符不會連接字符串了,他只用于加法運(yùn)算。

EL關(guān)系運(yùn)算符有以下六個運(yùn)算符

關(guān)系運(yùn)算符      說 明                范 例             結(jié)果
= = 或 eq   |    等于   |${ 5 = = 5 } 或 ${ 5 eq 5 } | true
!= 或 ne    |   不等于  |${ 5 != 5 } 或 ${ 5 ne 5 }  | false
< 或 lt     |   小于    |${ 3 < 5 }或 ${ 3 lt 5 }    | true
> 或 gt     |   大于    |${ 3 > 5 }或 ${ 3 gt 5 }    | false
<= 或 le    |  小于等于 |${ 3 <= 5 }或 ${ 3 le 5 }   | true
>= 或 ge    |  大于等于 |${ 3 >= 5 }或 ${ 3 ge 5 }   | false

empty運(yùn)算符

Empty運(yùn)算符主要用來判斷值是否為null或空的,例如:
${ empty param.name }
接下來說明Empty運(yùn)算符的規(guī)則:
{empty} A
   如果A為null時,返回true
   如果A不存在時,返回true
   如果A為空字符串時,返回true
   如果A為空數(shù)組時,返回true
   如果A為空的Map時,返回true
   如果A為空的Collection時,返回true
   否則,返回false

注意:
在使用EL關(guān)系運(yùn)算符時,不能夠?qū)懗桑?${param.password1} = = ${param.password2}
或者
${ ${param.password1 } = = ${ param.password2 } }
而應(yīng)寫成
${ param.password1 = = param.password2 }

使用EL從表單中取得數(shù)據(jù)

與輸入有關(guān)的隱含對象有兩個:param和paramValues,它們是EL中比較特別的隱含對象。一般而言,我們在取得用戶的請求參數(shù)時,
可以利用下列方法:
request.getParameter(String name)
request.getParameterValues(String name)

在EL中則可以使用param和paramValues兩者來取得數(shù)據(jù)。
${param.name}
${paramValues.name}可以取得所有同名參數(shù)的值
${paramValues.hobbies[0]}可以通過指定下標(biāo)來訪問特定的參數(shù)的值

這里param的功能和request.getParameter(String name)相同,而paramValues和request.getParameterValues(String name)相同。
如果用戶填了一個form,form名稱有為username的文本框,則我們就可以使用${param.username}來取得用戶填入文本框的值。

EL函數(shù)

EL中使用函數(shù)要寫一個要使用到方法的類,然后在配置xxx.tld文件,然后在JSP中使用時和JSP的自定義標(biāo)簽相似。

xxx.tld中的配置

<function>
  <name>reverse</name><!--函數(shù)名-->
  <function-class>jsp2.examples.el.Functions</function-class><!--函數(shù)所在的類-->
  <function-signature>java.lang.String reverse( java.lang.String )</function-signature>
  <!--函數(shù)原型,也就是函數(shù)的返回值類型,函數(shù)名,參數(shù)表,注意一定要寫類型的全名-->
</function>

使用EL函數(shù)的寫法
${sn:upper('abc')}

注意:在定義EL函數(shù)時,都必須為公開靜態(tài)(public static)

EL的隱含對象

EL也可以使用內(nèi)置對象中設(shè)置的屬性,需要使用特定的EL內(nèi)置對象

屬性范圍     |    在EL中的對象
Page         |     pageScope
Request      |     requestScope
Session      |     sessionScope
Application  |     applicationScope

EL中使用內(nèi)置對象的屬性
${requestScope.user}
等價于
<%request.getAttribute("user")%>
如果不寫出特定的范圍 ,那就會在不同的范圍間進(jìn)行搜索了
例:{user}(user是在request范圍 request.setAttribute("user",user))
也就等于
${requestScope.user}
<%request.getAttribute("user")%>
EL的隱含對象

   對象                        類 型                  說 明
PageContext      |  javax.servlet.ServletContext |表示此JSP的PageContext
---------------------------------------------------------------------------------------------------------------------------- 
PageScope        |         java.util.Map         |取得Page范圍的屬性名稱所對應(yīng)的值
----------------------------------------------------------------------------------------------------------------------------
RequestScope     |         java.util.Map         |取得Request范圍的屬性名稱所對應(yīng)的值
----------------------------------------------------------------------------------------------------------------------------
sessionScope     |         java.util.Map         |取得Session范圍的屬性名稱所對應(yīng)的值
----------------------------------------------------------------------------------------------------------------------------
applicationScope |         java.util.Map         |取得Application范圍的屬稱所對應(yīng)的值
----------------------------------------------------------------------------------------------------------------------------
param            |         java.util.Map         |如同ServletRequest.getParameter(String name)返回String類型的值
----------------------------------------------------------------------------------------------------------------------------
paramValues      |         java.util.Map         |如同ServletRequest.getParameterValues(String name)。返回String []類型的值
----------------------------------------------------------------------------------------------------------------------------
header           |         java.util.Map         |如同ServletRequest.getHeader(String name)返回String類型的值
----------------------------------------------------------------------------------------------------------------------------
headerValues     |         java.util.Map         |如同ServletRequest.getHeaders(String name)返回String []類型的值
----------------------------------------------------------------------------------------------------------------------------
cookie           |         java.util.Map         |如同HttpServletRequest.getCookies( )
----------------------------------------------------------------------------------------------------------------------------
initParam        |         java.util.Map         |如同ServletContext.getInitParameter(String name)。返回String類型的值
----------------------------------------------------------------------------------------------------------------------------                                  


cookie對象

所謂的cookie是一個小小的文本文件,它是以key、value的方式將Session Tracking的內(nèi)容記錄在這個文本文件內(nèi),這個文本文件通常存在于
瀏覽器的暫存區(qū)內(nèi)。JSTL并沒有提供設(shè)定cookie的動作,因?yàn)檫@個動作通常都是后端開發(fā)者必須去做的事情,而不是交給前端的開發(fā)者。如果
我們在cookie中設(shè)定一個名稱為userCountry的值,那么可以使用${cookie.userCountry}來取得它。
${cookie.JSESSIONID.vlaue} 

header和headerValues(請求報頭對象)

header儲存用戶瀏覽器和服務(wù)端用來溝通的數(shù)據(jù),當(dāng)用戶要求服務(wù)端的網(wǎng)頁時,會送出一個記載要求信息的標(biāo)頭文件,例如:用戶瀏覽器的版本、
用戶計算機(jī)所設(shè)定的區(qū)域等其他相關(guān)數(shù)據(jù)。如果要取得用戶瀏覽器的版本,即${header["User-Agent"]}。另外在很少機(jī)會下,有可能同一標(biāo)頭名
稱擁有不同的值,此時必須改為使用headerValues來取得這些值。
注意:因?yàn)閁ser-Agent中包含“-”這個特殊字符,所以必須使用“[]”,而不能寫成${header.User-Agent}。

initParam

就像其他屬性一樣,我們可以自行設(shè)定web應(yīng)用的環(huán)境參數(shù)(Context),當(dāng)我們想取得這些參數(shù)時,可以使用initParam隱含對象去取得它,
例如:當(dāng)我們在web.xml中設(shè)定如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
  <context-param>
     <param-name>userid</param-name>
     <param-value>mike</param-value>
  </context-param>
</web-app>
那么我們就可以直接使用 ${initParam.userid}來取得名稱為userid,其值為mike的參數(shù)。
下面是之前的做法:String userid = (String)application.getInitParameter("userid");

pageContext對象

我們可以使用 ${pageContext}來取得其他有關(guān)用戶要求或頁面的詳細(xì)信息。下面列出了幾個比較常用的部分。

Expression                                說 明
${pageContext.request}                  |取得請求對象
${pageContext.session}                  |取得session對象   
${pageContext.request.queryString}      |取得請求的參數(shù)字符串
${pageContext.request.requestURL}       |取得請求的URL,但不包括請求之參數(shù)字符串
${pageContext.request.contextPath}      |服務(wù)的web application的名稱
${pageContext.request.method}           |取得HTTP的方法(GET、POST)
${pageContext.request.protocol}         |取得使用的協(xié)議(HTTP/1.1、HTTP/1.0)
${pageContext.request.remoteUser}       |取得用戶名稱
${pageContext.request.remoteAddr }      |取得用戶的IP地址
${pageContext.session.new}              |判斷session是否為新的,所謂新的session,表示剛由	                                         server產(chǎn)生而client尚未使用
${pageContext.session.id}               |取得session的ID
${pageContext.servletContext.serverInfo}|取得主機(jī)端的服務(wù)信息


二、JSTL(JSP標(biāo)準(zhǔn)標(biāo)簽庫)

JSTL由核心標(biāo)簽,<c:... > ,xml解析標(biāo)簽 <x:...>,國際化標(biāo)簽 <fmt:....>,數(shù)據(jù)庫訪問標(biāo)簽<sql:...>,函數(shù)標(biāo)簽<fn:...>

核心標(biāo)簽
Core
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

屬性設(shè)置
<c:set> 設(shè)置屬性
<c:remove> 移除設(shè)置的屬性

過程控制

<c:if test="..."> 條件標(biāo)簽 只有在test屬性的值為true是才會執(zhí)行標(biāo)簽體  
例:
<c:if test="${!(empty user.age)}"> 
      <h1>hello</h1>
</c:if>
   
<c:choose>choose和when是組合在一起使用的,有點(diǎn)類似于swith case的語法  。
<c:when test="...">when也是條件判斷標(biāo)簽,test屬性的值為true是才會執(zhí)行標(biāo)簽體。
例:
<c:choose>
 <c:when test="${param.age<18}">
   <h1>you is a child<h1>
 </c:when>
 <c:when test="${param.age>18 and param.age<50 }">
    <h1>you is a young person</h1>
 </c:when>
 <c:when test="${param.age>50}">
     <h1>you is a old person</h1>
 </c:when> <c:otherwise>     <h1>you is a other person</h1> </c:otherwise>
</c:choose>  

<c:forEach>迭代標(biāo)簽;可以分割字符串 按,號分割
例:
<c:forEach var="book" item="${store.books}" varStatus="status">
    <h1>${book.parice}</h1>
</c:forEach>
<c:forEach begin="1" end="5" step="1">
     <h1>hello</h1>
</c:forEach>

<c:forTokens>字符串迭代標(biāo)簽

<c:import>引入標(biāo)簽
<c:import url="引入內(nèi)容的url" var="別名">
${別名}

<c:url>url標(biāo)簽
<c:url value="...">
 <c:param name="..." value="..."/>
</c:url>
<c:url value="...">
使用url標(biāo)簽可以實(shí)現(xiàn)URL回寫

<c:redirect uri="xxx/xxx/xxx.xx"/>

國際化標(biāo)簽
<fmt:lauguage>
<fmt:bundel>資源指定標(biāo)簽
<fmt:message>消息標(biāo)簽
例:
<fmt:setLocale value="zh"/>
<fmt:bundel basename="message.MessageResources">
  <fmt:message>name</fmt:message>
</fmt:bundel>

xxxx.properties
name=\0060\0700\

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频狠狠干| 久久久国产精品麻豆| 国产米奇在线777精品观看| 欧美日本乱大交xxxxx| 午夜国产精品影院在线观看| 欧美日韩在线播放三区| 爽好久久久欧美精品| 日韩午夜激情电影| 韩国av一区二区三区四区| 国产亚洲精品aa午夜观看| 成人av在线资源| 有坂深雪av一区二区精品| 欧美猛男gaygay网站| 蜜桃一区二区三区在线观看| 国产三级三级三级精品8ⅰ区| 成人免费看视频| 亚洲黄网站在线观看| 69堂国产成人免费视频| 国产一区二区三区不卡在线观看 | 亚洲色图视频网| 欧美专区日韩专区| 久久99精品一区二区三区 | 成人性视频网站| 一区二区在线观看不卡| 日韩一区二区三区免费观看| 国产99久久久国产精品潘金| 亚洲亚洲精品在线观看| 久久综合给合久久狠狠狠97色69| 99久久精品免费看| 视频在线观看一区| 国产精品视频九色porn| 欧美日韩一区二区三区在线看| 精品一区二区三区视频在线观看| 国产精品久久久久久久蜜臀| 欧美久久久久久久久| 国产激情精品久久久第一区二区 | 国产亚洲欧美日韩日本| 欧美性生活一区| 岛国一区二区三区| 日本中文字幕一区二区有限公司| 国产精品久久久久影院亚瑟| 欧美一区二区三区日韩视频| 91小视频在线免费看| 卡一卡二国产精品| 亚洲成人av免费| 国产精品久久久爽爽爽麻豆色哟哟 | 亚洲视频你懂的| 精品久久久久一区二区国产| 在线观看国产日韩| 成人性生交大片免费| 美女一区二区三区| 亚洲成av人片在www色猫咪| 国产欧美精品一区| 欧美xxxx在线观看| 欧美日韩在线不卡| 欧美影院一区二区三区| 高清国产一区二区三区| 久久99精品久久只有精品| 亚洲高清三级视频| 一区二区三区欧美久久| 国产精品全国免费观看高清 | 国产精华液一区二区三区| 日韩有码一区二区三区| 亚洲电影在线免费观看| 亚洲精品成人悠悠色影视| 亚洲欧美一区二区三区极速播放| 国产亚洲欧美激情| 国产日本欧洲亚洲| 国产三区在线成人av| 久久色.com| 久久久久亚洲蜜桃| 26uuu色噜噜精品一区二区| 欧美大片一区二区| 欧美不卡视频一区| 精品成人a区在线观看| 精品国产制服丝袜高跟| 欧美成人精品福利| 精品国产乱码久久久久久免费| 欧美成人精品二区三区99精品| 日韩免费电影一区| 亚洲精品在线一区二区| 精品国产免费一区二区三区四区| 欧美sm极限捆绑bd| 久久天堂av综合合色蜜桃网| 久久久亚洲高清| 欧美国产一区二区| 亚洲欧洲精品一区二区三区不卡| 国产精品久久久久久久久图文区| 综合久久久久久久| 亚洲在线视频网站| 三级在线观看一区二区| 九一久久久久久| 成人夜色视频网站在线观看| 91在线无精精品入口| 欧美色成人综合| 欧美一区二区三区日韩| 26uuu亚洲| 亚洲欧美一区二区不卡| 五月天婷婷综合| 精品影视av免费| 不卡一区二区中文字幕| 欧美伊人精品成人久久综合97| 制服丝袜中文字幕一区| 欧美精品一区二区三区很污很色的| 国产色产综合产在线视频| 亚洲女爱视频在线| 日本中文字幕一区| 菠萝蜜视频在线观看一区| 在线观看91精品国产入口| 日韩一区二区视频在线观看| 久久精品亚洲一区二区三区浴池| 日韩一区中文字幕| 日韩av在线播放中文字幕| 国产99久久久国产精品潘金| 91官网在线观看| 久久婷婷色综合| 一区二区三区 在线观看视频| 久久99最新地址| 日本韩国欧美一区二区三区| 日韩精品一区二区三区在线| 国产精品久久国产精麻豆99网站 | 免费在线看一区| 白白色 亚洲乱淫| 日韩一级欧美一级| 亚洲欧美日韩久久| 久久aⅴ国产欧美74aaa| 色av成人天堂桃色av| 亚洲精品在线免费播放| 亚洲综合免费观看高清在线观看| 国产在线精品国自产拍免费| 欧美系列在线观看| 国产欧美视频一区二区| 日韩中文字幕1| 色综合一区二区| 国产亚洲午夜高清国产拍精品| 亚洲成人在线网站| 99re成人精品视频| 久久五月婷婷丁香社区| 午夜视频在线观看一区二区| 99精品欧美一区二区三区小说| www激情久久| 免费成人你懂的| 欧美在线观看一区| 自拍偷拍国产精品| 国产成a人亚洲精| 精品999在线播放| 美腿丝袜一区二区三区| 欧美日韩激情一区二区| 亚洲综合视频网| 91视频国产资源| 国产精品久久久久一区二区三区 | 日韩欧美中文字幕一区| 亚洲国产一区二区三区| 91麻豆免费观看| 中文字幕中文在线不卡住| 国产精品一区免费在线观看| 欧美mv和日韩mv的网站| 欧美aaaaaa午夜精品| 欧美精品v日韩精品v韩国精品v| 亚洲色图都市小说| 91一区二区在线| 专区另类欧美日韩| 91免费国产在线| 亚洲精品欧美激情| 91国偷自产一区二区开放时间| 成人免费在线观看入口| av高清不卡在线| 综合色中文字幕| 91丨九色porny丨蝌蚪| 中文字幕一区二区三区蜜月| 99re热这里只有精品视频| 亚洲手机成人高清视频| 在线亚洲一区二区| 亚洲成人免费电影| 欧美精品三级日韩久久| 蜜臀av一区二区| 精品国产一区久久| 国产成人av自拍| 国产精品久久免费看| 91视频xxxx| 夜色激情一区二区| 欧美日韩的一区二区| 麻豆精品一区二区综合av| 欧美精品一区二区三区很污很色的 | 欧美日韩午夜在线| 日产国产欧美视频一区精品| 精品美女在线播放| 国产成人三级在线观看| 亚洲日本va在线观看| 欧美日韩国产小视频在线观看| 七七婷婷婷婷精品国产| 国产亚洲一本大道中文在线| 91蝌蚪porny九色| 天天亚洲美女在线视频| 亚洲精品在线一区二区| 91在线视频播放| 日韩精品三区四区| 中文字幕av一区二区三区高 | 亚洲一区二区三区在线播放| 日韩一区二区中文字幕|