日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

JSP -- JSP语法

發(fā)布時(shí)間:2024/4/17 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSP -- JSP语法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、什么是JSP?
? ? ? Java Server Pages,它和servlet技術(shù)一樣,都是SUN公司定義的一種慣用語(yǔ)開(kāi)發(fā)動(dòng)態(tài)web資源的技術(shù)

2、JSP技術(shù)的特點(diǎn)
  相比html而言,html只能為用戶提供靜態(tài)數(shù)據(jù),而JSP技術(shù)云溪在頁(yè)面中嵌套java代碼,為用戶提供動(dòng)態(tài)數(shù)據(jù)
  相比servlet而言,servlet很難對(duì)數(shù)據(jù)進(jìn)行排版,而JSP除了可以用java代碼產(chǎn)生動(dòng)態(tài)數(shù)據(jù)的同時(shí),也很容易對(duì)數(shù)據(jù)進(jìn)行排版

3、為什么JSP技術(shù)也是一種動(dòng)態(tài)web資源的開(kāi)發(fā)技術(shù)?
  因?yàn)镴SP技術(shù)允許在頁(yè)面中嵌套java代碼,以產(chǎn)生動(dòng)態(tài)數(shù)據(jù),并且web服務(wù)器在執(zhí)行jsp時(shí),web服務(wù)器會(huì)傳遞web開(kāi)發(fā)相關(guān)的對(duì)象給jsp,jsp通過(guò)這些對(duì)象,
  可以與瀏覽器進(jìn)行交互,所以jsp當(dāng)然也是一種動(dòng)態(tài)web資源開(kāi)發(fā)技術(shù)。

注意:在servlet向JSP跳轉(zhuǎn)的時(shí)候要用forward而不能用sendRedic(),因?yàn)閿?shù)據(jù)存放在request域,而sendRedic()代表一次全新的請(qǐng)求,里面的信息帶不過(guò)去

4、JSP模板元素
  JSP頁(yè)面中的HTML內(nèi)容稱之為JSP模版元素。
  JSP模版元素定義了網(wǎng)頁(yè)的基本骨架,即定義了頁(yè)面的結(jié)構(gòu)和外觀。

5、JSP腳本表達(dá)式
  用于將程序數(shù)據(jù)輸出到客戶端
  語(yǔ)法:<%= 變量表達(dá)式 %>
  舉例:當(dāng)前時(shí)間:<%= new java.util.Date() %>
  原理:
  JSP引擎在翻譯腳本表達(dá)式時(shí),會(huì)將程序數(shù)據(jù)轉(zhuǎn)成字符串,然后在相應(yīng)位置用out.print(…) 將數(shù)據(jù)輸給客戶端。

注意:JSP腳本表達(dá)式中的變量或表達(dá)式后面不能有分號(hào)(;)。

6、JSP腳本片段
  6.1 JSP腳本片斷(scriptlet)用于在JSP頁(yè)面中編寫多行Java代碼。
    語(yǔ)法:
    <%
      多行java代碼
    %>

注意:
  JSP腳本片斷中只能出現(xiàn)java代碼,不能出現(xiàn)其它模板元素, JSP引擎在翻譯JSP頁(yè)面中,會(huì)將JSP腳本片斷中的Java代碼將被原封不動(dòng)地放到Servlet的_jspService方法中。
  JSP腳本片斷中的Java代碼必須嚴(yán)格遵循Java語(yǔ)法,例如,每執(zhí)行語(yǔ)句后面必須用分號(hào)(;)結(jié)束。

6.2 在一個(gè)JSP頁(yè)面中可以有多個(gè)腳本片斷,在兩個(gè)或多個(gè)腳本片斷之間可以嵌入文本、HTML標(biāo)記和其他JSP元素。
  多個(gè)腳本片斷中的代碼可以相互訪問(wèn),猶如將所有的代碼放在一對(duì)<%%>之中的情況
  單個(gè)腳本片斷中的Java語(yǔ)句可以是不完整的,但是,多個(gè)腳本片斷組合后的結(jié)果必須是完整的Java語(yǔ)句,
  <%
    for (int i=1; i<5; i++)
  {
  %>

    <H1>www.sina.org</H1>

  <%
  }
  %>

?

7、JSP聲明
? ? JSP頁(yè)面中編寫的所有代碼,默認(rèn)會(huì)翻譯到servlet的service方法中, 而Jsp聲明中的java代碼被翻譯到_jspService方法的外面。語(yǔ)法:
? ? ? ? ?<% !
? ? ? ? ? ? ? java代碼
? ? ? ? ?%>
? ? 所以,JSP聲明可用于定義JSP頁(yè)面轉(zhuǎn)換成的Servlet程序的靜態(tài)代碼塊、成員變量和方法 。

Tip
? ? ?多個(gè)靜態(tài)代碼塊、變量和函數(shù)可以定義在一個(gè)JSP聲明中,也可以分別單獨(dú)定義在多個(gè)JSP聲明中。
? ? ?JSP隱式對(duì)象的作用范圍僅限于Servlet的_jspService方法,所以在JSP聲明中不能使用這些隱式對(duì)象。

8、JSP注釋
? JSP注釋的格式:
? ?<%-- 注釋信息 --%>
? ?JSP引擎在將JSP頁(yè)面翻譯成Servlet程序時(shí),忽略JSP頁(yè)面中被注釋的內(nèi)容。

9、JSP指令
  JSP指令(directive)是為JSP引擎而設(shè)計(jì)的,它們并不直接產(chǎn)生任何可見(jiàn)輸出,而只是告訴引擎如何處理JSP頁(yè)面中的其余部分。
  在JSP 2.0規(guī)范中共定義了三個(gè)指令:
? ? ?  page指令
  ? ? ?Include指令
  ? ? ?taglib指令


9.1 JSP指令的基本語(yǔ)法格式:
  <%@ 指令 屬性名="值" %>
舉例:<%@ page contentType="text/html;charset=gb2312"%>

9.2 如果一個(gè)指令有多個(gè)屬性,這多個(gè)屬性可以寫在一個(gè)指令中,也可以分開(kāi)寫。
例如:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.Date"%>
也可以寫作:
<%@ page contentType="text/html;charset=gb2312" import="java.util.Date"%>

9.3 Page指令
<%@ page
[ language="java" ]
[ extends="package.class" ]
[ import="{package.class | package.*}, ..." ]
[ session="true | false" ]
[ buffer="none | 8kb | sizekb" ]
[ autoFlush="true | false" ]
[ isThreadSafe="true | false" ]
[ info="text" ]
[ errorPage="relative_url" ] 當(dāng)出現(xiàn)錯(cuò)誤時(shí)會(huì)跳到指定的errorPage
[ isErrorPage="true | false" ]
[ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ]
[ pageEncoding="characterSet | ISO-8859-1" ]
[ isELIgnored="true | false" ]
%>

9.4 使用page指令解決JSP中文亂碼

JSP程序存在有與Servlet程序完全相同的中文亂碼問(wèn)題
輸出響應(yīng)正文時(shí)出現(xiàn)的中文亂碼問(wèn)題
讀取瀏覽器傳遞的參數(shù)信息時(shí)出現(xiàn)的中文亂碼問(wèn)題

JSP引擎將JSP頁(yè)面翻譯成Servlet源文件時(shí)也可能導(dǎo)致中文亂碼問(wèn)題
  JSP引擎將JSP源文件翻譯成的Servlet源文件默認(rèn)采用UTF-8編碼,而JSP開(kāi)發(fā)人員可以采用各種字符集編碼來(lái)編寫JSP源文件,因此,JSP引擎將JSP源文件翻譯成Servlet
  源文件時(shí),需要進(jìn)行字符編碼轉(zhuǎn)換。
  如果JSP文件中沒(méi)有說(shuō)明它采用的字符集編碼,JSP引擎將把它當(dāng)作默認(rèn)的ISO8859-1字符集編碼處理。

如何解決JSP引擎翻譯JSP頁(yè)面時(shí)的中文亂碼問(wèn)題
  通過(guò)page指令的contentType屬性說(shuō)明JSP源文件的字符集編碼
  page指令的pageEncoding屬性說(shuō)明JSP源文件的字符集編碼q

10、include指令
  include指令用于引入其它JSP頁(yè)面,如果使用include指令引入了其它JSP頁(yè)面,那么JSP引擎將把這兩個(gè)JSP翻譯成一個(gè)servlet。所以include指令引入通常也稱之為靜態(tài)引入。

語(yǔ)法:
  <%@ include file="relativeURL"%>
  其中的file屬性用于指定被引入文件的相對(duì)路徑。
  file屬性的設(shè)置值必須使用相對(duì)路徑,如果以“/”開(kāi)頭,表示相對(duì)于當(dāng)前WEB應(yīng)用程序的根目錄(注意不是站點(diǎn)根目錄),否則,表示相對(duì)于當(dāng)前文件。

細(xì)節(jié)
1. 被引入的文件必須遵循JSP語(yǔ)法。
2. 被引入的文件可以使用任意的擴(kuò)展名,即使其擴(kuò)展名是html,JSP引擎也會(huì)按照處理jsp頁(yè)面的方式處理它里面的內(nèi)容,為了見(jiàn)明知意,JSP規(guī)范建議使用.jspf(JSP fragments)作為靜態(tài)引入文件的擴(kuò)展名。
3. 由于使用include指令將會(huì)涉及到2個(gè)JSP頁(yè)面,并會(huì)把2個(gè)JSP翻譯成一個(gè)servlet,所以這2個(gè)JSP頁(yè)面的指令不能沖突(除了pageEncoding和導(dǎo)包除外)。

11、JSP運(yùn)行原理和九大隱式對(duì)象

JSP運(yùn)行原理

1. 每個(gè)JSP 頁(yè)面在第一次被訪問(wèn)時(shí),WEB容器都會(huì)把請(qǐng)求交給JSP引擎(即一個(gè)Java程序)去處理。 JSP引擎先將JSP翻譯成一個(gè)_jspServlet(實(shí)質(zhì)上也是一個(gè)servlet),
? ?然后按照servlet的調(diào)用方式進(jìn)行調(diào)用。
2. 由于JSP第一次訪問(wèn)時(shí)會(huì)翻譯成servlet,所以第一次訪問(wèn)通常會(huì)比較慢,但第二次訪問(wèn),JSP引擎如果發(fā)現(xiàn)JSP沒(méi)有變化,就不再翻譯,而是直接調(diào)用,所以程
序的執(zhí)行效率不會(huì)受到影響。
3. JSP引擎在調(diào)用JSP對(duì)應(yīng)的_jspServlet時(shí),會(huì)傳遞或創(chuàng)建9個(gè)與web開(kāi)發(fā)相關(guān)的對(duì)象供_jspServlet使用。JSP技術(shù)的設(shè)計(jì)者為便于開(kāi)發(fā)人員在編寫JSP頁(yè)面時(shí)獲得
這些web對(duì)象的引用,特意定義了9個(gè)相應(yīng)的變量,開(kāi)發(fā)人員在JSP頁(yè)面中通過(guò)這些變量就可以快速獲得這9大對(duì)象的引用。

九大隱式對(duì)象及其對(duì)應(yīng)關(guān)系
request ---> HttpServletRequest
response ---> HttpServletResponse
session ---> HttpSession
application ---> servletContext
config ---> servletConfig
out JspWriter -----> PrintWriter
exception
page this
pageContext

12、out隱式對(duì)象
1、out隱式對(duì)象用于向客戶端發(fā)送文本數(shù)據(jù)。
2、out對(duì)象是通過(guò)調(diào)用pageContext對(duì)象的getOut方法返回的,其作用和用法與ServletResponse.getWriter方法返回的PrintWriter對(duì)象非常相似。
3、JSP頁(yè)面中的out隱式對(duì)象的類型為JspWriter,JspWriter相當(dāng)于一種帶緩存功能的PrintWriter,設(shè)置JSP頁(yè)面的page指令的buffer屬性可以調(diào)整它
? ? ?的緩存大小,甚至關(guān)閉它的緩存。
4、只有向out對(duì)象中寫入了內(nèi)容,且滿足如下任何一個(gè)條件時(shí),out對(duì)象才去調(diào)用ServletResponse.getWriter方法,并通過(guò)該方法返回的PrintWriter
? ? ?對(duì)象將out對(duì)象的緩沖區(qū)中的內(nèi)容真正寫入到Servlet引擎提供的緩沖區(qū)中:
  a) 設(shè)置page指令的buffer屬性關(guān)閉了out對(duì)象的緩存功能
  b) out對(duì)象的緩沖區(qū)已滿
  c) 整個(gè)JSP頁(yè)面結(jié)束

注意:同時(shí)使用out和response.getwriter()輸出數(shù)據(jù)。會(huì)出現(xiàn)文本顯示順序的問(wèn)題,只要是看是否刷新了緩沖區(qū),然后進(jìn)行分析

13、pageContext
? 1、 pageContext對(duì)象(非常重要,進(jìn)入其它對(duì)象的入口)

? ?pageContext對(duì)象是JSP技術(shù)中最重要的一個(gè)對(duì)象,它代表JSP頁(yè)面的運(yùn)行環(huán)境,這個(gè)對(duì)象不僅封裝了對(duì)其它8大隱式對(duì)象的引用,它自身還是一個(gè)域?qū)ο?#xff0c;
? ?可以用來(lái)保存數(shù)據(jù)。并且,這個(gè)對(duì)象還封裝了web開(kāi)發(fā)中經(jīng)常涉及到的一些常用操作,例如引入和跳轉(zhuǎn)其它資源、檢索其它域?qū)ο笾械膶傩缘取?

通過(guò)pageContext獲得其他對(duì)象
getException() 返回exception隱式對(duì)象
getPage() 返回page隱式對(duì)象
getRequest() 返回request隱式對(duì)象
getResponse() 返回response隱式對(duì)象
getServletConfig() 返回config隱式對(duì)象
getServletContext() 返回application隱式對(duì)象
getSession() 返回session隱式對(duì)象
getOut() 返回out隱式對(duì)象

pageContext封裝其它8大內(nèi)置對(duì)象的意義

2. pageContext作為域?qū)ο?/strong>
pageContext對(duì)象的方法
public void setAttribute(java.lang.String?name,java.lang.Object?value)
public java.lang.Object?getAttribute(java.lang.String?name)
public void?removeAttribute(java.lang.String?name)
pageContext對(duì)象中還封裝了訪問(wèn)其它域的方法
public java.lang.Object?getAttribute(java.lang.String?name,int?scope)
public void setAttribute(java.lang.String?name, java.lang.Object?value,int?scope)
public void?removeAttribute(java.lang.String?name,int?scope)
代表各個(gè)域的常量
PageContext.APPLICATION_SCOPE
PageContext.SESSION_SCOPE
PageContext.REQUEST_SCOPE
PageContext.PAGE_SCOPE

  findAttribute方法 (*重點(diǎn),查找各個(gè)域中的屬性)

轉(zhuǎn)載于:https://www.cnblogs.com/xushuai123/archive/2013/03/24/2979762.html

總結(jié)

以上是生活随笔為你收集整理的JSP -- JSP语法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产98色在线 | 日韩 | 中文字幕一区二区三区门四区五区 | 国产一区二区三区视频免费在线观看 | 天天看黄色片 | 毛片综合| 人人妻人人澡人人爽精品 | 国产精品久线在线观看 | 波多野结衣办公室33分钟 | 青草伊人网 | www.啪啪 | 亚洲欧洲在线播放 | 成年人黄色av | 五月天爱爱 | 亚洲AV无码久久精品国产一区 | 欧美第一页浮力影院 | 欧美午夜寂寞影院 | 精品久久99 | 99嫩草 | 99精品无码一区二区 | 日本成人在线免费观看 | 91在线中文 | 日韩午夜激情电影 | 电影中文字幕 | 精品乱 | 国产大片91 | 成年人免费av | 亚洲第一精品在线 | 久草综合在线观看 | 亚洲美女视频在线观看 | 精产国品一二三产区m553麻豆 | 精品午夜久久久 | 大桥未久视频在线观看 | 欧美亚洲一区二区在线观看 | 毛片a级片 | 欧美内谢| 最新国产拍偷乱偷精品 | 在线观看福利视频 | 中文字幕久久精品 | 亚洲视频在线免费看 | 久久久久人妻一区精品色欧美 | 国产精品久久久久久久免费观看 | 少妇2做爰bd在线意大利堕落 | 日韩中文字幕网站 | 国产一区二区视频免费 | 精品一区二区国产 | 日韩久久精品一区二区 | 99精品在线观看视频 | 日韩三级av | 亚洲小说在线 | 国产女人和拘做受视频免费 | 亚洲麻豆一区二区三区 | 国产福利小视频在线 | 欧美精品一二三区 | 久久一卡二卡 | 黄网站免费看 | 亚洲精品乱码久久久久久蜜桃欧美 | 日韩xxx高潮hd| 精品国精品国产 | 欧美日韩一二三四 | 久久婷婷五月综合色国产香蕉 | 国产伦精品一区二区三区视频我 | 色综合精品 | 一本加勒比北条麻妃 | 邵氏电影《金莲外传2》免费观看 | 久久久午夜精品 | 日韩性高潮 | 国产精品成人国产乱 | 中国一区二区三区 | 爱操影院| 日韩操比 | 草草草在线视频 | 手机在线成人av | 国产成人免费片在线观看 | 国产香蕉视频在线 | 国产精品三级视频 | 日韩免费大片 | 国产精品日韩在线观看 | 欧美有码在线观看 | 欧美日韩成人 | 青草热视频| 久久精品一区二区三区黑人印度 | aaaaaaa毛片 | 一区二区欧美在线观看 | 日韩高清一二三区 | 国产人妖网站 | 校园伸入裙底揉捏1v1h | 一区二区三区国产精品视频 | 男女视频免费 | 日韩专区一区二区三区 | 国产成人视屏 | 久久精品播放 | 国产无遮挡一区二区三区毛片日本 | 成人一二三 | 日韩精品视频中文字幕 | 啪啪视屏| 国产精品老熟女一区二区 | 久久精品7 | 女人高潮被爽到呻吟在线观看 | 精品熟女一区 |