javascript
大数据WEB阶段(十三)JSP(一)JSP基础、JSP指令详解、四大域九大隐式对象总结
JSP基礎(chǔ)、指令、四大作用域九大隱式對象總結(jié)
(一)JSP基礎(chǔ)
一、JSP概述
二、JSP原理
三、JSP基本組成結(jié)構(gòu)
腳本表達(dá)式
<%= java表達(dá)式 %>腳本片段
<% 若干java代碼 %>JSP聲明
<%! %>JSP注釋
<%-- 注釋內(nèi)容 --%>注意區(qū)別:
JSP腳本片段中的java注釋的內(nèi)容 , 將會(huì)被翻譯到servlet中 , 但是不會(huì)執(zhí)行
<% //被注釋的java代碼 %>被html注釋注釋掉的內(nèi)容 , 將會(huì)被翻譯到servlet中 , 并且前后的注釋標(biāo)簽被當(dāng)做模板元素直接輸出 , 但是瀏覽器不會(huì)顯示 , 而注釋中的內(nèi)容仍然會(huì)執(zhí)行
JSP代碼 ... <% int i = 100; %> <!-- i = 0; --> <%=i %> ... 被翻譯成servlet之后 ... int i = 100; out.write("<!--"); i = 0; out.write("-->"); out.write(i); ... 結(jié)果: i 為 0 。(二)JSP指令
一、JSP指令概述
格式:
<%@ 指令名 若干屬性 %>二、指令詳解
page指令
<%@ page .... %>page指令的屬性:
!![ import=”{package.class | package.*}, …” ] 導(dǎo)入需要使用到的包
如:java.lang.*;javax.servlet.*;javax.servlet.jsp.*;javax.servlet.http.*;注意:
指令中errorPage屬性可以為當(dāng)前頁面制定錯(cuò)誤提示頁面 , 但是如果整個(gè)站點(diǎn)的jsp頁面都需要配時(shí)會(huì)很繁瑣 , 這時(shí)可以在web.xml文件中進(jìn)行統(tǒng)一配置
<error-page><exception-type>java.lang.Throwable</exception-type><location>/error/error.jsp</location> </error-page> <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>如果配置全局友好錯(cuò)誤提示頁面 又為某個(gè)jsp單獨(dú)指定過錯(cuò)誤提示頁面 則單獨(dú)指定的起作用
include指令
<%@ include file="xxxx"%>taglib指令
<%@ taglib uri="" prefix="" %>(三)四大作用域九大隱式對象總結(jié)
一、四大作用域
PageContext域
主要功能
在當(dāng)前JSP頁面中共享數(shù)據(jù) , 在PageContext域中的屬性可以被整個(gè)頁面共享
設(shè)置屬性 setAttribute(String name , Object value); 獲取屬性 getAttribute(String name); 移除屬性 removeAttribute(String name);作為入口對象操作四大作用域中的數(shù)據(jù)
向指定域中添加屬性 setAttribute(String name, Object value,int scope) 獲取指定域中的指定屬性 getAttribute(String name,int scope) 移除制定域中的制定屬性 removeAttribute(String name,int scope)其pageContext中代表域的常量: PageContext.APPLICATION_SCOPE --> ServletContext域 PageContext.SESSION_SCOPE --> Session域 PageContext.REQUEST_SCOPE --> Request域 PageContext.PAGE_SCOPE --> PageContext域 額外提供了一個(gè)便捷的方法: //按照由小到大的順序搜尋四大作用域 , 查找指定名稱的屬性 , 找到則返回對應(yīng)的值 , 找不到則返回null findAttribute(String name);提供了便捷的方法實(shí)現(xiàn)請求轉(zhuǎn)發(fā)、包含:
pageContext.forward("/index.jsp"); pageContext.include("/index.jsp");request域
主要功能:
域?qū)ο筇峁┑姆椒?#xff08;可以操作map中的數(shù)據(jù))
setAttribute(String name,Object value) :用來存儲(chǔ)一個(gè)對象,也可以稱之為存儲(chǔ)一個(gè)域?qū)傩?getAttribute(String name); 用來獲取request中的數(shù)據(jù) removeAttribute(String name); 用來移除request中的域?qū)傩?getAttributeNames(); 獲取所有域?qū)傩缘拿Q二、九大隱式對象
九大隱式對象概述
在JSP翻譯成servlet時(shí), JSP翻譯引擎在翻譯過來的servlet中 , 預(yù)先定義了一些變量 , 可以不需要再JSP中預(yù)先定義就可以直接使用 , 共9個(gè) , 統(tǒng)稱為JSP九大隱式對象 。 分別是:
page --- 由JSP翻譯引擎翻譯出的Servlet config --- ServletConfig 當(dāng)前servlet的配置信息 application --- ServletContext 當(dāng)前web應(yīng)用 request --- HttpServletRequest請求 response --- HttpServletResponse響應(yīng) out --- response.getWriter()得到的輸出流 , 可以通過他輸出數(shù)據(jù) session --- HttpSession當(dāng)前會(huì)話 exception --- Excception 如果將isErrorPage設(shè)置為true , 才會(huì)有一個(gè)代表當(dāng)前頁面異常的對象 pageContext --- 代表當(dāng)前JSP頁面pageContext對象
作為入口對象獲取其他八大隱式對象
getException方法返回exception隱式對象 getPage方法返回page隱式對象 getRequest方法返回request隱式對象 getResponse方法返回response隱式對象 getServletConfig方法返回config隱式對象 getServletContext方法返回application隱式對象 getSession方法返回session隱式對象 getOut方法返回out隱式對象獲取其他域中的數(shù)據(jù)
pageContext操作所有域中屬性的方法getAttribute(String name,int scope)setAttribute(String name, Object value,int scope) removeAttribute(String name,int scope)其中pageContext中代表域的常量:PageContext.APPLICATION_SCOPEPageContext.SESSION_SCOPEPageContext.REQUEST_SCOPEPageContext.PAGE_SCOPE findAttribute方法: 在四大域中搜尋屬性,搜尋的順序是page域、request域、session域、application域,從小域到大域開始搜索,如果搜索到就直接獲取該值,如果所有域中都找不到,返回一個(gè)null總結(jié)
以上是生活随笔為你收集整理的大数据WEB阶段(十三)JSP(一)JSP基础、JSP指令详解、四大域九大隐式对象总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据WEB阶段(十二)会话技术、Coo
- 下一篇: 大数据WEB阶段(十三)JSP(二)JS