亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

什么是JSP?JSP簡明教程

2024-09-05 00:18:01
字體:
來源:轉載
供稿:網友

strong>JSP運行原理:當Web服務器上的一個JSP頁面第一次被請求執行時,JSP引擎先將JSP頁面文件轉譯成一個Java文件,即Servlet,servlet通過HTML與客戶交互。服務器將前面轉譯成的Java文件編譯成字節碼文件,再執行這個字節碼文件來響應,從而加快了執行的速度見圖

2. JavaScript的作用JavaScript作用:使得網頁交互性更強,更生動靈活,以下是嵌入到HTML頁面的一段JavaScript代碼形式

JavaScript代碼?….

3. JavaScript中對象和對象關系JavaScript中預先定義了一些對象,以方便程序員使用,圖3-2是對象之間的層次和關系圖

?

?

4、JSP指令:JSP代碼指的就是我們自己嵌入在JSP頁面中的Java代碼,這又分為兩種:第一種是JSP頁面中一些變量和方法的聲明,在聲明時,使用“”標記。另外一種,就是常用到的用“”包含的JSP代碼塊

1. page指令

page指令是針對當前頁面的指令。page指令由“”字符串構成的標記符來指定。在標記符中是代碼體,包括指令的類型和值。 例如:指令告訴JSP容器將java.sql包中的所有類都引入當前的JSP頁面。

常用的page指令標記有8個:language、extends、import、errorPage、isErrorPage、contentType、isThreadSafe和session。

language設置JSP頁面中用到的語言,默認值為“Java”,也是目前唯一有效的設定值。使用的語法是:

import設置目前JSP頁面中要用到的Java類,這些Java類可能是Sun JDK中的類,也有可能是程序員自己定義的類。例如:。有些類在默認情況下已經被加入到當前JSP頁面,而不需要特殊聲明,包括四個類:java.lang.*;java.servlet.*;java.servlet.jsp.*和java.servlet.http.* 。

extends設定目前JSP頁面要繼承的父類。一般情況下不需要進行設置。在默認情況下,JSP頁面的默認父類是HttpJspBase。例如:當前JSP頁面要繼承mypackage包下的myclass類,相應的聲明語句為:“”。
errorPage用來設定當JSP頁面出現異常(Exception)時,所要轉向的頁面。如果沒有設定,則JSP容器會用默認的當前網頁來顯示出錯信息。例如: “”

isErrorPage用來設定當前的JSP頁面是否作為傳回錯誤頁面的網頁,默認值是“false”。如果設定為“true”,則JSP容器會在當前的頁面中生成一個exception對象。

?

contentType這個屬性用來設定傳回網頁的文件格式和編碼方式,一般使用 “text/html;charset=GBK”。

isThreadSafe 定義JSP容器執行JSP程序的方式,默認值為“true”,代表JSP容器會以多線程方式運行JSP頁面。當設定值為“false”時,JSP容器會以單線程方式運行JSP頁面。

session定義當前JSP頁面中是否要用到session,默認值為“true”。

2. include指令

include指令用來指定怎樣把另一個文件包含到當前的JSP頁面中,這個文件可以是普通的文本文件,也可以是一個JSP頁面。例如:“”。 采用include指令,可以實現JSP頁面的模塊化,使JSP的開發和維護變得非常簡單。

4.8 JSP指令動作指令

JSP編譯指令是讓JSP容器自動采取的動作,但對于Web開發人員,有些時候想要自己控制JSP頁面的運行,這時可以采用JSP中的操作指令。

JSP 標準動作

標記
標記
標記
標記
標記

JSP 動作的作用

  • 實例化對象
  • 與服務器端資源進行通信
  • 提高組件的可重用性,增強應用的可維護性
  • 使 JSP 頁面可與 JavaBean 對象進行交互
  • 通過標記庫定義自定義標記

JSP 動作的語法

  • JSP 動作標記遵循 XML 語言的語法
  • 具有一個名稱
  • 具有前綴 jsp
  • 用一對尖括號()括起來
  • 在尖括號內定義標記:

jsp:include指令

jsp:include標準動作用于在當前的JSP頁面中加入靜態和動態的資源。
語法格式為:

jsp:include指令必須以“/”結束,功能和include指令大致相同。
區別:

  • include(操作指令):編譯時包括,形成一個整體
  • include(動作):運行時包括

jsp:forward動作指令

jsp:forward動作指令用于把當前的JSP頁面轉發到另一個頁面上。 基本語法為:

使用該功能時,瀏覽器的地址欄中地址不會發生任何變化。

jsp:param指令

使用jsp:param操作指令可以在執行jsp動作指令forward操作動作時,追加參數.以動作指令字/值的方式進行傳遞。
jsp:param操作指令以標記“

實例:forwardExample1.jsp, paramExample1.jsp

jsp:plugin指令

使用“”插入一個applet或Bean,必要的話還要下載一個Java插件用于執行它。 JSP 語法格式如下:

type="bean | applet"?
code="classFileName"?
codebase="classFileDirectoryName"?
[ ?
[ value="{parameterValue | }" /> ]+?
?
]?
?[ text message for user ]?

JSP Bean標記

與JavaBean交互的三個標記



創建一個Bean實例并指定它的名字和作用范圍。語法格式如下:

或者


初始化代碼

設置Bean的屬性值. JSP 語法格式如下:

{?
property= "*" ? |?
property="propertyName" [ param="parameterName" ] ? |?
property="propertyName" value="{string | }"?
}?
/>

  • name="beanInstanceName" 表示已經在“”中創建的Bean實例的名字。
  • property="*" 儲存用戶在jsp輸入的所有值,用于匹配Bean中的屬性。
  • property="propertyName" [ param="parameterName" ]
  • 用一個參數值來指定Bean中的一個屬性值,一般情況下是從request對象中獲得的。其中property指定Bean的屬性名,param指定request中的參數名。
  • property="propertyName" value="{string | }" 使用指定的值來設定Bean屬性。這個值可以是字符串,也可以是表達式。如果這個字符串,那么它就會被轉換成Bean屬性的類型(轉換方法見表4.1)。如果是一個表達式,那么它的類型就必須和將要設定的屬性值的類型一致。
  • 如果參數值為空值,那么對應的屬性值也不會被設定。此外,不能在同一個“”中同時使用param和value參數 。

4.9 JSP中的中文字符處理

當利用request.getParameter得到Form種元素的時候,默認的情況字符編碼為ISO-8859-1,這種編碼不能正確的顯示漢字。
目前有兩種解決方法:

一種是在執行操作之前,設置request的編碼格式,語法是:

request.setCharacterEncoding(“GBK”);

另一種方法是轉換字符編碼 :

byte b[]=str.getBytes("ISO-8859-1");
str=new String(b);
%>

?

4.10 小結

JSP語法是學習好JSP開發的基礎,JSP網頁包括HTML標簽和Java程序片。

JSP指令有page指令和include指令兩種,page指令用來定義JSP頁面的全局屬性;include指令用來靜態插入一個文件。

JSP動作指令又分多,是在運行時執行的一些動作和行為。

中文處理也是需要注意的一個問題。

5.1 內置對象概述??

JSP頁面其中存在三個最主要的內置對象:

request:得到客戶端的信息。(HttpServletRequest)

session:保存單個用戶訪問時的一些信息。(HttpSession)

response:處理服務器端對客戶端的一些響應。(HttpServletResonpse)

request對象與response對象存在于http通信中,見圖5-1



圖5-1 request對象與response對象存在于http通信中

還有其它內置對象它們為:

Config:是JSP配置處理程序句柄,在JSP頁面范圍內有效。

application:用來保存網站的一些全局變量。

out:功能是把信息回送到客戶端的瀏覽器中。

pageContext:提供了訪問和放置頁面中共享數據的方式。

5.2 request對象??

request對象是javax.servlet.HttpServletRequest 子類的對象,當客戶端請求一個JSP頁面時,JSP 容器會將客戶端的請求信息包裝在這個request對象中

請求信息的內容包括請求的頭信息(Header)、 系統信息(比如:編碼方式)、請求的方式
(比如:GET或POST)、請求的參數名稱和 參數值等信息

request對象的方法

getAttribute(String str)?

getCookies()?

getHeader(String str)?

getParameter(String str)

getParameterValues(String str)?

實例: requestApp1.jsp

request對象獲得表單數據

get與post區別

實例:userRegist1.jsp

?

5.3 response對象??

response對象

response對象提供跟多方法和JSP進行交互,主要用到有:

addCookie(Cookie cookname)

sendError(int errorcode)

sendRedirect(String url)

實例:sendRedirectExample1.jsp

setContentType(String contentTypestr)

setHeader(String headername,String headervalue)

實例:refreshExample1.jsp

Cookie是什么

Cookie是服務器上根據用戶瀏覽器識別用戶并記錄一些相關信息,例如:

  • 網站能夠精確地知道有多少人瀏覽過。
  • 測定多少人訪問過;
  • 測定訪問者有多少是新用戶(即第一次來訪),多少是老用戶;
  • 測定一個用戶多久訪問一次網站。
  • 網站保存用戶的設置,按照用戶的喜好定制網頁外觀。

Cookie同時標注用戶和瀏覽器,有一條極為短小的信息,能夠被網站自動地放置在一臺電腦
的硬盤中。

通過Cookie,網站可以識別你是第一次訪問,或是又一次訪問它。在你瀏覽某些網站的時,網站的程序會在你不知不自覺中將一個小的 Cookie(作為一個文本文件)存儲在你的硬盤中。

使用Cookie

Cookie存放在客戶端,首先要建立一個Cookie,然后設置其屬性,再通過response對象的addCookie()方法將其 放入客戶端,獲取Cookie對象可用request對象的getCookies()
方法。

創建Cookie

Cookie(String cookiename,String cookievalue)

不能用:空白字符、[]、()、=、,、“、/、?、@、:


設置與讀取Cookie屬性

  • getComments()/setComments(String purpose)
  • getDomain()/setDomain(Stringpattern )
  • getMaxAge()/setMaxAge(intexpiry)
  • getName()
  • getPath()/setPath(Stringuri)
  • getSecure()/setSecure(booleanflag)
  • getValue()/setValue(StringnewValue)
  • getVersion ()/setVersion(intv)


Cookie操作

將Cookie加入HTTP頭:

Cookie usernameCookie=new Cookie(“username”,”dzycsai”);

response.addCookie(usernameCookie);

讀取Cookie:

  • getCookies()
  • getName()
  • getValue()

5.4 session對象??

session對象概要其主要關鍵點是:

  • HTTP是無狀態(stateless)協議;
  • Web Server 對每一個客戶端請求都沒有歷史記憶;
  • Session用來保存客戶端狀態信息;
  • 由Web Server 寫入;存于客戶端;
  • 客戶端的每次訪問都把上次的session記錄傳遞給Web Server;
  • Web Server讀取客戶端提交的session來獲取客戶端的
    狀態信息;

session對象的方法

  • getAttribute (String name)
  • long getCreationTime()
  • int getMaxInactiveInterval()
  • long getLastAccessedTime()
  • invalidate()
  • removeAttribute (Stringname)
  • setAttribute(Stringname, Objectvalue)

實例1:記住會話的用戶名 sessionUserLogin.jsp

實例2:猜字母游戲 guessCharExample1.jsp

?

5.5 application對象

服務器啟動時就會產生application對象,為用戶分配application對象。其要點如下:

  • 不同客戶產生同一個session對象;
  • 所有客戶的application對象都是同一個。
  • 例如:聊天室程序、計數器程序、留言板程序。
  • 生命周期:服務器的啟動至關閉。


application對象的方法

  • getAttribute (String name)
  • getAttributeNames()
  • getInitParameter()
  • getServletInfo()
  • setAttribute(Stringname, Objectvalue)

實例:網站計數器CounterApp1.jsp

5.6 out對象

out對象是javax.servlet.jsp.JspWriter類的一 個子類的對象,它的作用是把信息回送到客戶 端的瀏覽器中。在out對象中,最常用的方法就 是print()和println()。在使用print()或println() 方法時,由于客戶端是瀏覽器,因此向客戶端輸出時,可以使用HTML中的一些標記,例如: out.println(”

Hello,JSP

“);。

out對象其他一些常用的方法

  • out.write功能和out.print相同
  • newLine()的功能是輸出一個換行符
  • out.flush()的功能是輸出緩沖的內容。
  • out.close()的功能是關閉輸出流。
  • out對象的生命周期是當前頁面。因此對于每一個JSP頁面,都有一個 out對象

實例:用out對象輸出表格outApp1.jsp

?

5.7 小結

本章學習JSP內置對象的應用,重點學習request、response、session、application、out幾個常用對象,request對象封裝用戶需要提交的數據,而response對象用來對客戶請求做出響應。

?

練習

  1. 改造5.4中的計數器,用application與session來編寫,要求當一個新用戶會話開始時才啟動技術。
  2. 編寫一個用戶注冊網頁,用JavaScript檢驗數據的合法性,用request對象接收提交的數據,并顯示提交的數據。?

6 文件的上傳與下載


用普通方法實現文件上傳

實例:文件上傳

UploadFileExample1.jsp

AccepteUploadFile.jsp

實例:文件下載DownFileExample2.jsp

?

?

6.7 用組件實現文件的上傳與下載

用組件實現文件的上傳與下載可以用到一個比較流行的組件jspSmartUpload

相關類:

File類

savaAs()方法

savaAs(String dstFileName)

savaAs(String dstFileName,int savaAsOption)

SAVEAS_PHYSICAL

SAVEAS_VIRTUAL


jspSmartUpload相關類的介紹

File類

isMissing()

getFieldName()

getFileName()

getCount()

getSize()

getCollection()

request類

Initialize()

upload()

save()

getRequest()

getFiles()

setAllowedFileList(String allowedFilesList)

smartUpload類

setDeniedFilesList()

setMaxFileSize()

setTotalMaxFileSize()

downloadFile()

實例:用jspSmartUpload組件實現文件上傳

uploadFile.htmldo_upload.jsp

實例:應用jspSmartUpload組件進行較復雜的表單處理uploadFile2.htmldo_upload2.jsp

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产成人久久综合一区| 国产精品亚洲аv天堂网| 国产亚洲欧美另类中文| 亚洲激情视频在线播放| 91精品免费久久久久久久久| 清纯唯美亚洲综合| 色噜噜久久综合伊人一本| 91精品啪aⅴ在线观看国产| 国产色综合天天综合网| 国产精品h片在线播放| 欧美性做爰毛片| 日韩av电影院| 欧美激情在线视频二区| 日韩a**站在线观看| 日韩中文字幕不卡视频| 国产在线视频一区| 成人黄在线观看| 91精品国产高清久久久久久| 亚洲精品视频二区| 综合国产在线观看| 久久国产一区二区三区| 国产xxx69麻豆国语对白| 亚洲国产精品热久久| 精品国产一区二区三区久久久狼| 国自产精品手机在线观看视频| 欧美电影在线观看网站| 欧美性猛交xxxx免费看漫画| 亚洲激情在线观看视频免费| 992tv在线成人免费观看| 国产亚洲美女精品久久久| 欧美裸体xxxx极品少妇软件| 亚洲成人精品久久| 久久6精品影院| 久久99久久久久久久噜噜| 欧美午夜电影在线| 91久久精品视频| 日韩av电影手机在线观看| 久久综合色88| 97久久精品人搡人人玩| 色吧影院999| 欧美日韩性视频在线| 欧美性生交大片免费| 欧美国产亚洲精品久久久8v| 亚洲欧美日韩一区二区在线| 久久精品夜夜夜夜夜久久| 92裸体在线视频网站| 狠狠色香婷婷久久亚洲精品| 亚洲天堂男人天堂女人天堂| 久久免费视频在线| 中文字幕不卡在线视频极品| 主播福利视频一区| 日韩视频―中文字幕| 91在线看www| 日韩中文第一页| 欧美片一区二区三区| 欧美激情免费视频| 日本高清不卡的在线| 中文字幕精品在线| 欧美在线观看网址综合| 亚洲免费视频观看| 91av福利视频| 51ⅴ精品国产91久久久久久| 亚洲无线码在线一区观看| 久久影院资源网| 国产精品视频一| 国产精品第七十二页| zzjj国产精品一区二区| 欧美激情在线有限公司| 亚洲日韩中文字幕在线播放| 亚洲色图激情小说| 久久精彩免费视频| 国产精品麻豆va在线播放| 在线观看国产成人av片| 一区二区在线免费视频| 亚洲精品国产精品自产a区红杏吧| 久久久精品日本| 97精品伊人久久久大香线蕉| 久久精品夜夜夜夜夜久久| 性视频1819p久久| 精品久久久久久久久久久久久| 成人黄色免费片| 日韩电影中文字幕一区| 亚洲欧美日韩国产中文专区| 欧美国产在线电影| 国产精品久久久久久超碰| 国产精品视频自在线| 成人精品视频99在线观看免费| 国产精品入口夜色视频大尺度| 亚洲第一区第一页| 668精品在线视频| 最近免费中文字幕视频2019| 国产精品欧美激情在线播放| 亚洲精品二三区| 成人精品视频99在线观看免费| 久久久久国产精品免费| 欧美猛交ⅹxxx乱大交视频| 亚洲级视频在线观看免费1级| 国产一区二区免费| 日韩综合中文字幕| 亚洲免费伊人电影在线观看av| 久久久久国产精品www| 日韩在线观看网址| 国产精品88a∨| 在线精品国产成人综合| 97激碰免费视频| 国产成人精品一区二区三区| 2019中文字幕在线免费观看| 韩国三级电影久久久久久| 久久香蕉国产线看观看网| 91在线中文字幕| 亚洲999一在线观看www| 3344国产精品免费看| 九九热视频这里只有精品| 亚洲天堂av高清| 亚洲精品视频网上网址在线观看| 午夜精品久久久久久久久久久久久| 精品久久久av| 亚洲性夜色噜噜噜7777| 福利视频导航一区| 91精品啪aⅴ在线观看国产| 中文字幕亚洲欧美在线| 国产福利视频一区| 国产99久久精品一区二区永久免费| 久久夜精品va视频免费观看| 高清欧美性猛交xxxx黑人猛交| 日韩免费不卡av| 欧美激情亚洲国产| 97久久久免费福利网址| 国产精品一区二区3区| 亚洲精品久久久久久下一站| 国产日韩欧美在线看| 91精品视频大全| 成人激情视频在线观看| 亚洲www视频| 欧美成人亚洲成人日韩成人| 成人精品久久av网站| 福利精品视频在线| 亚洲免费小视频| 96精品久久久久中文字幕| 亚洲电影第1页| 亚洲日本成人女熟在线观看| 国产婷婷色综合av蜜臀av| 色综合久久中文字幕综合网小说| 韩曰欧美视频免费观看| 中文字幕av一区中文字幕天堂| 久久精品免费电影| 国产成人精品在线| xvideos成人免费中文版| 国内精品久久久久久中文字幕| 久久在精品线影院精品国产| 国产三级精品网站| 国产亚洲综合久久| 亚洲高清久久久久久| 亚洲免费av片| 欧美国产视频一区二区| 亚州国产精品久久久| 亚洲国产精品久久久久久| 欧美精品在线观看91| 欧美日韩在线视频一区| 正在播放亚洲1区| 久久久国产在线视频| 国产精品久久久久77777| 欧美电影在线观看网站| 久久网福利资源网站|