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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSP简明教程

發布時間:2025/3/21 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSP简明教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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


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

<SCRIPT LANGUAGE="JavaScript">

JavaScript代碼?….

</SCRIPT>

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



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

1. page指令

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

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

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

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

extends設定目前JSP頁面要繼承的父類。一般情況下不需要進行設置。在默認情況下,JSP頁面的默認父類是HttpJspBase。例如:當前JSP頁面要繼承mypackage包下的myclass類,相應的聲明語句為:“<%@ page xtends="mypackage.myclass"%>”。
errorPage用來設定當JSP頁面出現異常(Exception)時,所要轉向的頁面。如果沒有設定,則JSP容器會用默認的當前網頁來顯示出錯信息。例如: “<%@page errorPage="/error/error_page.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 file = ”logo.htm“%>”。 采用include指令,可以實現JSP頁面的模塊化,使JSP的開發和維護變得非常簡單。

4.8 JSP指令動作指令

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

JSP 標準動作

<jsp: useBean> 標記
<jsp: getProperty> 標記
<jsp: setProperty> 標記
<jsp: forward> 標記
<jsp: include> 標記

JSP 動作的作用

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

JSP 動作的語法

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

jsp:include指令

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

<jsp:include page=“test.htm”/>

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

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

jsp:forward動作指令

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

<jsp:forward page=”test2.jsp“/>

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

jsp:param指令

使用jsp:param操作指令可以在執行jsp動作指令forward操作動作時,追加參數.以動作指令字/值的方式進行傳遞。
jsp:param操作指令以標記“<jsp:param>”開始,以“/>”結束比如:<jsp:param name=“oper” value=“add”/>。
可以將jsp:forward操作指令和jsp:param操作指令結合到一起來使用。

實例:forwardExample1.jsp, paramExample1.jsp

jsp:plugin指令

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

<jsp:plugin?
type="bean | applet"?
code="classFileName"?
codebase="classFileDirectoryName"?
[ <jsp:params>?
[ <jsp:param name="parameterName"?
value="{parameterValue | <%= expression %>}" /> ]+?
?</jsp:params> ]?
?[ <jsp:fallback> text message for user </jsp:fallback> ]?
</jsp:plugin>

JSP Bean標記

與JavaBean交互的三個標記

<jsp:useBean>
<jsp:getProperty>
<jsp:setProperty>

<jsp:useBean>

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

<jsp:useBean id="bean name" scope="page | request | session | application" class="class name" />

或者

<jsp:useBean id="bean name" scope="page | request | session | application" class="class name ">
初始化代碼
</jsp:useBean>

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

<jsp:setProperty name="beanInstanceName"?
{?
property= "*" ? |?
property="propertyName" [ param="parameterName" ] ? |?
property="propertyName" value="{string | <%= expression %>}"?
}?
/>

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

4.9 JSP中的中文字符處理

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

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

request.setCharacterEncoding(“GBK”);

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

<%String str=request.getParameter("boy");
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(”<h1>Hello,JSP</h1>“);。

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對象用來對客戶請求做出響應。

?

練習

  • 改造5.4中的計數器,用application與session來編寫,要求當一個新用戶會話開始時才啟動技術。
  • 編寫一個用戶注冊網頁,用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


    from:?http://blog.csdn.net/jtlyuan/article/details/7470832

    總結

    以上是生活随笔為你收集整理的JSP简明教程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。