91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JSP學習 三大指令、九個內置對象、JavaBean、EL表達式

發布時間:2020-07-17 16:45:42 來源:網絡 閱讀:352 作者:風雨佟洲 欄目:大數據

JSP學習 三大指令、九個內置對象、JavaBean、EL表達式

1.page-->最復雜:<%@page language="java" info="xxx"...%>

  • pageEncoding和contentType:

    pageEncoding:它指定當前jsp頁面的編碼,在服務器要把jsp編譯成.java時需要使用pageEncoding。
    contentType:它標識添加一個響應頭 Content-Type 等同于response.setContentType("text/html;charset=utf-8");
    如果兩個屬性只提供一個,那么另一個的默認值為設置的那個。
    如果兩個屬性都沒有設置,那么默認為iso
    import:導包!可以出現多次
    errorPage和isErrorPage
    errorPage:當前頁面如果拋出異常,那么要轉發到哪一個頁面,由errorPage屬性來指定。
    isErrorPage:指定當前頁面是否為處理錯誤的頁面!當該屬性為true時,這個頁面會設置狀態碼為500!而且這個頁面可以使用9大內置對象中的exception!
    error-page:可在web.xml中設置jsp頁面錯誤時的跳轉頁面。
    <error-page>
    <error-code>404</error-code>
    <location>error/404.jsp</location>
    </error-page>
    <error-page>
    <error-code>500</error-code>
    <location>error/500.jsp</location>
    </error-page>
    <error-page>
    <exception-type>java.lang.RuntimeException</exception-type>
    <location>error/error.jsp</location>
    </error-page>
    autoFlush和buffer
    autoFlush:指定jsp的輸出流緩沖區滿時,是否自動刷新!默認為true,如果為false,那么在緩沖區滿是拋出異常!
    buffer:指定緩沖區大小,默認為8kb,通常不需要修改!
    isELIgnored:是否忽略el表達式,默認值為false,不忽略,即支持!
    以下屬性基本沒用
    language:指定當前jsp編譯后的語言類型,默認值為java。
    info:信息!
    isThreadSafa:當前jsp是否支持并發訪問!
    session:當前頁面是否支持session,如果為false,那么當前頁面就沒有session這個內置對象!
    extends:讓jsp生成的servlet去繼承該屬性指定的類!

2.include-->靜態包含
與RequestDispatcher的inchlude()方法的功能相似!
<%@include%> 它是在jsp編譯成java文件時完成的,他們共同生成一個java文件,然后再生成一個.class!
RequestDispatcher的include()是一個方法,包含和被包含的是兩個servlet,即兩個.class!他們只算把響應的內容在運行時合并了、
作用:把頁面分解了,使用包含的方式組合在一起,這樣一個頁面中不變的部分,就是一個獨立的jsp,而我們只需要處理變化的頁面。
3.taglib-->導入標簽庫
*兩個屬性

prefix:指定標簽庫在本頁面中的前綴!由我們自己來起名稱。
uri:指定標簽庫的位置!
<%@taglib prefix="s" uri="/struts-tags"%> 如<s:text>

=====================================================================
九個內置對象
out-->jsp的輸出流,用來向客戶端響應
page-->當前jsp對象! 它的引用類型是Object,即真身中有如下代碼:Object page =this;
config-->它對應真身中的ServletConfig對象!
pageContext-->一個頂九個
request-->HttpServletRequest
response-->HttpServletResponse
exception-->Throwable
session-->HttpSession
appliction-->ServletContext
1.pageContext
Servlet中有三大域,而jsp中有四大域,它就是最后一個域對象!

ServletContext:整個應用程序
Session:整個會話(一個會話中只有一個用戶)
Request:一個請求鏈
pageContext:一個jsp頁面!這個域是在當前jsp頁面和當前jsp頁面中使用的標簽之間共享數據!
域對象
代理其它域:pageContext.setAttribute("xxx","XXX",PageContext.SESSION_SCOPE);
全域查找:pageContext.findAttribute("xxx");從小到大,依賴查找!

============================================================

JSP動作標簽
這些jsp的動作標簽,與html提供的標簽有本質的區別。
動作標簽由tomcat服務器來解釋執行!它與java代碼一樣,都是在服務器端執行的!
html標簽由瀏覽器來執行!
<jsp:forward>:轉發!它與RequestDispatcher的forward方法是一樣的,一個在servlet中使用,一個在jsp中使用!
<jsp:include>:包含,它與Requestdispatcher的include方法是一樣的。
*<jsp:param>:它用來作為forward和include的子標簽!用來給轉發或包含的jsp頁面傳遞參數。

============================================================

JavaBean

javaBean的規范:
1.必須要一個默認的構造器
2.提供get/set方法,如果只有get方法,那么這個屬性是制只讀屬性!
3.屬性:有get、set方法的成員,還可以沒有成員,只有get/set方法。屬性名稱由get/set方法來決定!而不是成員名稱!
4.方法名稱滿足一定的規范,那么它就是屬性!boolean類型屬性,它的讀方法可以是is開頭,也可以是get開頭!

內省:
內省類-->Bean信息-->屬性描述符-->屬性的get/set對應的Method!-->可以反射了。

commons-beanUtils,它是依賴內省完成!
*導包:

commons-beanUtils.jar
commons-logging.jar

BeanUtils.getProperty(Object bean,String propertyName)
BeanUtils.setProperty(Object bean,String PropertyName,String propertyValue)
BeanUtils.populate(Map map,Object bean)


jsp中與javaBean相關的標簽!
<jsp:useBean> 創建或查詢bean
<jsp:setProperty>
*<jsp:getProperty>

============================================================

EL表達式

1.EL是jsp頁面中內置的表達式語言!
jsp2.0開始,不讓再使用java腳本,而是使用el表達式和動態標簽替代java腳本!
EL替代的是<%= ...%>,也就算說,EL只能做輸出!

2.EL表達式來讀取四大域
${xxx},全域查找名為xxx的屬性,如果不存在,輸出空字符串,而不是null。
${pageScope.xxx} ${requestScope.xxx} ${sessionScope.xxx} ${applicationScope.xxxx},指定域獲取屬性!

3.EL可以輸出的東西都在11個內置對象中!
我們已經學習了四個
param:對應參數,它是一個Map,其中key參數名,value是參數值,適用于單值的參數。
paramValues:對應參數,它是一個Map,其中key參數名,value是多個參數值,適用于多值的參數。
header:對應請求頭,它是一個Map,其中key標識頭名稱,value是單個頭值,適用于單值請求頭。
headerValues:對應請求頭,它是一個Map,其中key標識頭名稱,value是多個頭值,適用于多值請求頭。
initParam:獲取web.xml文件中 <context-param>節點下的參數
cookie:Map<String,Cookie>類型,其中key是cookie的name,value是cookie對象。
如:${cookie.JSESSTONID.value} 即可獲取cookie中存儲的JSESSTONID
pageContext:它是PageContext類型! ${pageContext.request.contextPath} 輸出當前項目名稱
如:href=“${pageContext.request.contextPath}/xx/aa/b.jsp”

============================================================

EL函數庫(由JSTL提供的)
導入標簽庫 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
具體庫方法:https://docs.oracle.com/cd/E17802_01/products/products/jsp/jstl/1.1/docs/tlddocs/fn/tld-summary.html

  • boolean contains(string, substring)
  • boolean containsIgnoreCase(string, substring)
  • boolean startsWith(string, prefix)
  • boolean endsWith(string, suffix)
  • String[] split(string, separator)
  • String substring(string, begin, end)
  • String substringBefore(string, substring)
  • String substringAfter(string, substring)
  • String replace(string, before, after)
  • String toLowerCase(string)
  • String toUpperCase(string)
  • String trim(string)
  • int indexOf(string, suffix)
  • int length(String or Collection)
  • String join(String[], separator)
  • String escapeXml(string)
    *調用方法:${fn:length}

============================================================

自定義函數庫
寫一個java類,勒種可以定義0~n個方法,單必須是static方法,必須有返回值的。
在WEB-INF目錄下創建一個tld文件
在jsp頁面中導入標簽庫 <%@ taglib prefix="it" uri="/WEB-INF/tlds/itcast.tld" %>
在jsp頁面中使用自定義的函數庫: ${it:fun()}

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

虞城县| 阿图什市| 泰和县| 漳平市| 洪湖市| 沁水县| 偃师市| 湖北省| 靖州| 汉川市| 怀柔区| 桃园县| 若羌县| 许昌县| 镇康县| 榆树市| 泸溪县| 榆林市| 逊克县| 十堰市| 马山县| 中牟县| 惠州市| 长寿区| 和平县| 铜梁县| 辉县市| 上饶市| 本溪市| 秀山| 泽库县| 巴塘县| 黄梅县| 大安市| 平泉县| 南投县| 阳谷县| 高淳县| 中卫市| 福清市| 林芝县|