亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 0065.htm

?? JspServlet教程專欄 對javaservlet講述的非常詳細
?? HTM
字號:
<html>

<head>
<title>新時代軟件教程:操作系統 主頁制作 服務器 設計軟件 網絡技術 編程語言 文字編輯</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋體}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1  {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
    <p align="center"><big><strong>JSP技術簡介</strong></big></p>

<div align="right">(文/Sager)</div>

<br>一、 JSP 技術概述
<br>
<br>
   在 Sun 正式發布 JSP(JavaServer Pages) 之后,這種新的 Web 應用開發技術很快引起了人們的關注。 JSP 為創建高度動態的 Web 應用提供了一個獨特的開發環境。按照 Sun 的說法, JSP 能夠適應市場上包括 Apache WebServer 、 IIS4.0 在內的 85% 的服務器產品。即使您對 ASP &quot;一往情深&quot;,我們認為,關注 JSP 的發展仍舊很有必要。 
<br>
<br>
   ㈠ JSP 與 ASP 的簡單比較 
<br>
<br>
   JSP 與 Microsoft 的 ASP 技術非常相似。兩者都提供在 HTML 代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。在 ASP 或 JSP 環境下, HTML 代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的 HTML 頁面只依賴于 Web 服務器,而 ASP 和 JSP 頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到 HTML 代碼中,然后一起發送給瀏覽器。 ASP 和 JSP 都是面向 Web 服務器的技術,客戶端瀏覽器不需要任何附加的軟件支持。 
<br>
<br>
   ASP 的編程語言是 VBScript 之類的腳本語言, JSP 使用的是 Java ,這是兩者最明顯的區別。此外, ASP 與 JSP 還有一個更為本質的區別:兩種語言引擎用完全不同的方式處理頁面中嵌入的程序代碼。在 ASP 下, VBScript 代碼被 ASP 引擎解釋執行;在 JSP 下,代碼被編譯成 Servlet 并由 Java 虛擬機執行,這種編譯操作僅在對 JSP 頁面的第一次請求時發生。 
<br>
<br>
   ㈡運行環境 
<br>
<br>
   Sun 公司的 JSP 主頁在 http://www.javasoft.com/products/jsp/index.html ,從這里還可以下載 JSP 規范,這些規范定義了供應商在創建 JSP 引擎時所必須遵從的一些規則。 
<br>
<br>
   執行 JSP 代碼需要在服務器上安裝 JSP 引擎。此處我們使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。為便于學習,這個軟件包提供了大量可供修改的示例。安裝 JSWDK 之后,只需執行 startserver 命令即可啟動服務器。在默認配置下服務器在端口 8080 監聽,使用 http://localhost:8080 即可打開缺省頁面。 
<br>
<br>
   在運行 JSP 示例頁面之前,請注意一下安裝 JSWDK 的目錄,特別是&quot; work &quot;子目錄下的內容。執行示例頁面時,可以在這里看到 JSP 頁面如何被轉換成 Java 源文件,然后又被編譯成 class 文件(即 Servlet )。 JSWDK 軟件包中的示例頁面分為兩類,它們或者是 JSP 文件,或者是包含一個表單的 HTML 文件,這些表單均由 JSP 代碼處理。與 ASP 一樣, JSP 中的 Java 代碼均在服務器端執行。因此,在瀏覽器中使用&quot;查看源文件&quot;菜單是無法看到 JSP 源代碼的,只能看到結果 HTML 代碼。所有示例的源代碼均通過一個單獨的&quot; examples &quot;頁面提供。 
<br>
<br>
   ㈢ JSP 頁面示例 
<br>
<br>
   下面我們分析一個簡單的 JSP 頁面。您可以在 JSWDK 的 examples 目錄下創建另外一個目錄存放此文件,文件名字可以任意,但擴展名必須為 .jsp 。從下面的代碼清單中可以看到, JSP 頁面除了比普通 HTML 頁面多一些 Java 代碼外,兩者具有基本相同的結構。 Java 代碼是通過 &lt; % 和 %&gt; 符號加入到 HTML 代碼中間的,它的主要功能是生成并顯示一個從 0 到 9 的字符串。在這個字符串的前面和后面都是一些通過 HTML 代碼輸出的文本。 
<br>
<br>
  &lt; HTML&gt;
<br>
  &lt; HEAD&gt;&lt; TITLE&gt;JSP 頁面 &lt; /TITLE&gt;&lt; /HEAD&gt;
<br>
  &lt; BODY&gt;
<br>
  &lt; %@ page language=&quot;java&quot; %&gt;
<br>
  &lt; %! String str=&quot;0&quot;; %&gt;
<br>
  &lt; % for (int i=1; i &lt; 10; i++) {
<br>
  str = str + i;
<br>
  } %&gt;
<br>
  JSP 輸出之前。 
<br>
  &lt; P&gt;
<br>
  &lt; %= str %&gt;
<br>
  &lt; P&gt;
<br>
  JSP 輸出之后。 
<br>
  &lt; /BODY&gt;
<br>
  &lt; /HTML&gt;
<br>
<br>
   這個 JSP 頁面可以分成幾個部分來分析。 
<br>
<br>
首先是 JSP 指令。它描述的是頁面的基本信息,如所使用的語言、是否維持會話狀態、是否使用緩沖等。 JSP 指令由 &lt; %@ 開始, %&gt; 結束。在本例中,指令&quot; &lt; %@ page language=&quot;java&quot; %&gt; &quot;只簡單地定義了本例使用的是 Java 語言(當前,在 JSP 規范中 Java 是唯一被支持的語言)。 
<br>
接下來的是 JSP 聲明。 JSP 聲明可以看成是定義類這一層次的變量和方法的地方。 JSP 聲明由 &lt; %! 開始, %&gt; 結束。如本例中的&quot; &lt; %! String str=&quot;0&quot;; %&gt; &quot;定義了一個字符串變量。在每一項聲明的后面都必須有一個分號,就象在普通 Java 類中聲明成員變量一樣。 
<br>
位于 &lt; % 和 %&gt; 之間的代碼塊是描述 JSP 頁面處理邏輯的 Java 代碼,如本例中的 for 循環所示。 
<br>
最后,位于 &lt; %= 和 %&gt; 之間的代碼稱為 JSP 表達式,如本例中的&quot; &lt; %= str %&gt; &quot;所示。 JSP 表達式提供了一種將 JSP 生成的數值嵌入 HTML 頁面的簡單方法。
<br>
<br>
<br>
   會話狀態維持是 Web 應用開發者必須面對的問題。有多種方法可以用來解決這個問題,如使用 Cookies 、隱藏的表單輸入域,或直接將狀態信息附加到 URL 中。 Java Servlet 提供了一個在多個請求之間持續有效的會話對象,該對象允許用戶存儲和提取會話狀態信息。 JSP 也同樣支持 Servlet 中的這個概念。 
<br>
<br>
   在 Sun 的 JSP 指南 中可以看到許多有關隱含對象的說明(隱含的含義是,這些對象可以直接引用,不需要顯式地聲明,也不需要專門的代碼創建其實例)。例如 request 對象,它是 HttpServletRequest 的一個子類。該對象包含了所有有關當前瀏覽器請求的信息,包括 Cookies , HTML 表單變量等等。 session 對象也是這樣一個隱含對象。這個對象在第一個 JSP 頁面被裝載時自動創建,并被關聯到 request 對象上。與 ASP 中的會話對象相似, JSP 中的 session 對象對于那些希望通過多個頁面完成一個事務的應用是非常有用的。 
<br>
<br>
   為說明 session 對象的具體應用,接下來我們用三個頁面模擬一個多頁面的 Web 應用。第一個頁面( q1.html )僅包含一個要求輸入用戶名字的 HTML 表單,代碼如下: 
<br>
<br>
  &lt; HTML&gt;
<br>
  &lt; BODY&gt;
<br>
  &lt; FORM METHOD=POST ACTION=&quot;q2.jsp&quot;&gt;
<br>
 請輸入您的姓名: 
<br>
  &lt; INPUT TYPE=TEXT NAME=&quot;thename&quot;&gt;
<br>
  &lt; INPUT TYPE=SUBMIT VALUE=&quot;SUBMIT&quot;&gt;
<br>
  &lt; /FORM&gt;
<br>
  &lt; /BODY&gt;
<br>
  &lt; /HTML&gt;
<br>
<br>
   第二個頁面是一個 JSP 頁面( q2.jsp ),它通過 request 對象提取 q1.html 表單中的 thename 值,將它存儲為 name 變量,然后將這個 name 值保存到 session 對象中。 session 對象是一個名字 / 值對的集合,在這里,名字 / 值對中的名字為&quot; thename &quot;,值即為 name 變量的值。由于 session 對象在會話期間是一直有效的,因此這里保存的變量對后繼的頁面也有效。 q2.jsp 的另外一個任務是詢問第二個問題。下面是它的代碼: 
<br>
<br>
  &lt; HTML&gt;
<br>
  &lt; BODY&gt;
<br>
  &lt; %@ page language=&quot;java&quot; %&gt;
<br>
  &lt; %! String name=&quot;&quot;; %&gt;
<br>
  &lt; % 
<br>
  name = request.getParameter(&quot;thename&quot;);
<br>
  session.putValue(&quot;thename&quot;, name); 
<br>
  %&gt;
<br>
 您的姓名是: &lt; %= name %&gt;
<br>
  &lt; p&gt;
<br>
  &lt; FORM METHOD=POST ACTION=&quot;q3.jsp&quot;&gt;
<br>
 您喜歡吃什么 ? 
<br>
  &lt; INPUT TYPE=TEXT NAME=&quot;food&quot;&gt;
<br>
  &lt; P&gt;
<br>
  &lt; INPUT TYPE=SUBMIT VALUE=&quot;SUBMIT&quot;&gt;
<br>
  &lt; /FORM&gt;
<br>
  &lt; /BODY&gt;
<br>
  &lt; /HTML&gt;
<br>
<br>
   第三個頁面也是一個 JSP 頁面( q3.jsp ),主要任務是顯示問答結果。它從 session 對象提取 thename 的值并顯示它,以此證明雖然該值在第一個頁面輸入,但通過 session 對象得以保留。 q3.jsp 的另外一個任務是提取在第二個頁面中的用戶輸入并顯示它: 
<br>
<br>
  &lt; HTML&gt;
<br>
  &lt; BODY&gt;
<br>
  &lt; %@ page language=&quot;java&quot; %&gt;
<br>
  &lt; %! String food=&quot;&quot;; %&gt;
<br>
  &lt; %
<br>
  food = request.getParameter(&quot;food&quot;);
<br>
  String name = (String) session.getValue(&quot;thename&quot;);
<br>
  %&gt;
<br>
 您的姓名是: &lt; %= name %&gt;
<br>
  &lt; P&gt;
<br>
 您喜歡吃: &lt; %= food %&gt;
<br>
  &lt; /BODY&gt;
<br>
  &lt; /HTML&gt;
<br>
<br>
<br>
<br>
   JavaBean 是一種基于 Java 的軟件組件。 JSP 對于在 Web 應用中集成 JavaBean 組件提供了完善的支持。這種支持不僅能縮短開發時間(可以直接利用經測試和可信任的已有組件,避免了重復開發),也為 JSP 應用帶來了更多的可伸縮性。 JavaBean 組件可以用來執行復雜的計算任務,或負責與數據庫的交互以及數據提取等。如果我們有三個 JavaBean ,它們分別具有顯示新聞、股票價格、天氣情況的功能,則創建包含所有這三種功能的 Web 頁面只需要實例化這三個 Bean ,使用 HTML 表格將它們依次定位就可以了。 
<br>
<br>
   為說明在 JSP 環境下 JavaBean 的應用,我們創建了一個名為 TaxRate 的 Bean 。它有兩個屬性,即 Product (產品)和 Rate (稅率)。兩個 set 方法分別用來設置這兩個屬性,兩個 get 方法則用于提取這兩個屬性。在實際應用中,這種 Bean 一般應當從數據庫提取稅率值,此處我們簡化了這個過程,允許任意設定稅率。下面是這個 Bean 的代碼清單: 
<br>
<br>
  package tax;
<br>
  public class TaxRate {
<br>
  String Product;
<br>
  double Rate;
<br>
  public TaxRate() {
<br>
  this.Product = &quot;A001&quot;;
<br>
  this.Rate = 5;
<br>
  }
<br>
  public void setProduct (String ProductName) {
<br>
  this.Product = ProductName;
<br>
  }
<br>
  public String getProduct() {
<br>
  return (this.Product);
<br>
  }
<br>
  public void setRate (double rateValue) {
<br>
  this.Rate = rateValue;
<br>
  }
<br>
  public double getRate () {
<br>
  return (this.Rate);
<br>
  }
<br>
  }
<br>
<br>
   在 JSP 頁面中應用上述 Bean 要用到 &lt; jsp:useBean&gt; 標記。依賴于具體使用的 JSP 引擎的不同,在何處配置以及如何配置 Bean 的方法也可能略有不同。本文將這個 Bean 的 .class 文件放在 c:jswdk-1.0examplesWEB-INFjspeans	ax 目錄下,這里的 tax 是一個專門存放該 Bean 的目錄。下面是一個應用上述 Bean 的示例頁面: 
<br>
<br>
  &lt; HTML&gt;
<br>
  &lt; BODY&gt;
<br>
  &lt; %@ page language=&quot;java&quot; %&gt;
<br>
  &lt; jsp:useBean id=&quot;taxbean&quot; scope=&quot;application&quot; class=&quot;tax.TaxRate&quot; /&gt;
<br>
  &lt; % taxbean.setProduct(&quot;A002&quot;);
<br>
  taxbean.setRate(17);
<br>
  %&gt;
<br>
 使用方法 1 : &lt; p&gt;
<br>
 產品 : &lt; %= taxbean.getProduct() %&gt; &lt; br&gt;
<br>
 稅率 : &lt; %= taxbean.getRate() %&gt;
<br>
  &lt; p&gt;
<br>
  &lt; % taxbean.setProduct(&quot;A003&quot;);
<br>
  taxbean.setRate(3);
<br>
  %&gt;
<br>
  &lt; b&gt; 使用方法 2 : &lt; /b&gt; &lt; p&gt;
<br>
 產品 : &lt; jsp:getProperty name=&quot;taxbean&quot; property=&quot;Product&quot; /&gt;
<br>
  &lt; br&gt;
<br>
 稅率 : &lt; jsp:getProperty name=&quot;taxbean&quot; property=&quot;Rate&quot; /&gt;
<br>
  &lt; /BODY&gt;
<br>
  &lt; /HTML&gt;
<br>
<br>
   在 &lt; jsp:useBean&gt; 標記內定義了幾個屬性,其中 id 是整個 JSP 頁面內該 Bean 的標識, scope 屬性定義了該 Bean 的生存時間, class 屬性說明了該 Bean 的類文件(從包名開始)。 
<br>
<br>
   這個 JSP 頁面不僅使用了 Bean 的 set 和 get 方法設置和提取屬性值,還用到了提取 Bean 屬性值的第二種方法,即使用 &lt; jsp:getProperty&gt; 標記。 &lt; jsp:getProperty&gt; 中的 name 屬性即為 &lt; jsp:useBean&gt; 中定義的 Bean 的 id ,它的 property 屬性指定的是目標屬性的名字。 
<br>
<br>
<br>
   事實證明, Java Servlet 是一種開發 Web 應用的理想構架。 JSP 以 Servlet 技術為基礎,又在許多方面作了改進。 JSP 頁面看起來象普通 HTML 頁面,但它允許嵌入執行代碼,在這一點上,它和 ASP 技術非常相似。利用跨平臺運行的 JavaBean 組件, JSP 為分離處理邏輯與顯示樣式提供了卓越的解決方案。 JSP 必將成為 ASP 技術的有力競爭者。 
<br>

  </table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线一区二区综合免费视频| 亚洲另类色综合网站| 欧美二区三区的天堂| 色婷婷精品久久二区二区蜜臀av| 成人av电影免费观看| 成人激情小说网站| 色综合中文字幕国产 | 国产精品久久久久久久久动漫| 337p粉嫩大胆噜噜噜噜噜91av| 日韩精品一区二区三区在线播放 | 99re这里都是精品| 在线视频亚洲一区| 欧美一区二区私人影院日本| 日韩欧美国产综合| 欧美国产视频在线| 亚洲免费在线看| 午夜精品久久久久久久蜜桃app| 日韩vs国产vs欧美| 国产精品一二一区| 色综合激情五月| 欧美一卡在线观看| 中文字幕高清不卡| 亚洲高清免费在线| 国内欧美视频一区二区| 99久久婷婷国产精品综合| 欧美影视一区在线| 久久久久久久综合狠狠综合| 中文字幕一区免费在线观看| 亚洲成av人片在www色猫咪| 激情文学综合网| 一本色道久久综合亚洲91| 欧美顶级少妇做爰| 国产精品国产a级| 日韩va亚洲va欧美va久久| 99久久精品国产导航| 日韩欧美精品三级| 亚洲一区二区在线免费观看视频| 久久草av在线| 欧美日韩综合不卡| 欧美激情一区二区| 免费久久精品视频| 在线观看视频一区二区| 久久五月婷婷丁香社区| 97久久人人超碰| 2014亚洲片线观看视频免费| 亚洲成人动漫精品| 亚洲国产激情av| 亚洲成人午夜影院| av在线一区二区三区| 日韩免费成人网| 亚洲一区二区三区四区五区黄| 国产成人h网站| 欧美第一区第二区| 天天影视色香欲综合网老头| 色综合久久中文综合久久牛| 久久久久99精品一区| 毛片av一区二区| 欧美视频一区二区| 久久精品日韩一区二区三区| 蜜桃视频一区二区三区| 一级日本不卡的影视| 不卡区在线中文字幕| 久久影音资源网| 国内国产精品久久| 欧美videos大乳护士334| 午夜精品影院在线观看| 91成人免费在线| 亚洲专区一二三| 亚洲精品日韩专区silk| 成人亚洲一区二区一| 久久精品欧美日韩| 国产一区二区在线免费观看| 精品国精品国产尤物美女| 日本不卡一区二区| 精品理论电影在线观看| 久久国产日韩欧美精品| 亚洲精品在线网站| 精品国产乱码久久久久久影片| 久色婷婷小香蕉久久| 久久亚洲精精品中文字幕早川悠里| 久久99久久99| 国产亚洲精品bt天堂精选| 国产91精品精华液一区二区三区| 国产亚洲欧美日韩日本| 成人app在线| 一区二区三区欧美久久| 在线播放日韩导航| 日韩欧美国产1| 国产成人综合在线| 亚洲人成伊人成综合网小说| 色吊一区二区三区| 日韩高清不卡在线| 国产日韩欧美综合在线| 99国产精品久久久久久久久久 | 国产成人自拍网| 国产精品久久久久一区二区三区| av电影一区二区| 亚洲专区一二三| 精品国内片67194| 懂色av中文一区二区三区| 亚洲乱码国产乱码精品精小说 | 欧美一区二区在线免费观看| 久久精品国产亚洲一区二区三区| 日韩专区一卡二卡| 337p亚洲精品色噜噜噜| 国产最新精品免费| 亚洲男人天堂av| 欧美片网站yy| 久久国产精品色婷婷| 中文字幕日韩精品一区| 91精品国产91热久久久做人人 | 91精品啪在线观看国产60岁| 国产精品自拍在线| 亚洲成人精品影院| 国产欧美视频一区二区| 欧美日韩一区二区三区不卡| 国产成人免费在线| 日本不卡一区二区| 亚洲裸体xxx| 国产农村妇女毛片精品久久麻豆| 91福利社在线观看| 国产成人午夜电影网| 蜜臀av一区二区在线观看| 亚洲欧美色图小说| 欧美激情一二三区| 久久久久久久久久久久久久久99| 在线国产电影不卡| 风间由美性色一区二区三区| 免费精品视频在线| 一片黄亚洲嫩模| 中文字幕中文字幕在线一区| 2023国产精品| 精品精品国产高清一毛片一天堂| 欧美日韩亚洲综合一区| 色呦呦国产精品| 91在线国产福利| 粉嫩av亚洲一区二区图片| 麻豆91在线播放免费| 视频一区在线视频| 亚洲尤物视频在线| 一区二区三区四区在线播放| 亚洲欧洲国产专区| 成人欧美一区二区三区黑人麻豆| 国产欧美精品在线观看| 久久综合丝袜日本网| 精品日韩在线观看| 日韩精品中文字幕一区| 精品国产免费人成电影在线观看四季| 亚洲1区2区3区视频| 亚洲午夜久久久久| 亚洲国产精品久久人人爱蜜臀| 亚洲精品国产精品乱码不99 | 午夜亚洲国产au精品一区二区| 一区二区三区日韩精品| 亚洲一区二区三区在线看| 日韩一区欧美一区| 亚洲一线二线三线久久久| 亚洲国产sm捆绑调教视频| 日韩精品福利网| 久久国产精品色| 成人免费看黄yyy456| 亚洲日本丝袜连裤袜办公室| 亚洲欧美激情视频在线观看一区二区三区| 国产精品短视频| 一区二区欧美视频| 日韩国产在线一| 亚洲一卡二卡三卡四卡五卡| 亚洲成人精品影院| 国产一区二区三区在线观看免费视频| 秋霞电影网一区二区| 国产在线一区二区| 国产女主播一区| 岛国av在线一区| 色婷婷激情一区二区三区| 欧美精品乱人伦久久久久久| 欧美va亚洲va在线观看蝴蝶网| 国产视频不卡一区| 亚洲影视在线播放| 国产一区二区日韩精品| 欧美日韩中文字幕一区二区| 欧美一区二区三区四区久久| 337p亚洲精品色噜噜噜| 国产午夜久久久久| 亚洲一区在线免费观看| 九九精品一区二区| 91视频国产资源| 欧美mv日韩mv国产网站| 久久人人97超碰com| 一区二区在线观看不卡| 韩国v欧美v日本v亚洲v| 91亚洲精品久久久蜜桃网站| 欧美videofree性高清杂交| 一区二区三区四区激情| 国产在线视视频有精品| 欧美日本在线视频| 亚洲欧美另类小说视频| 国产一区二区在线电影| 欧美一区二区三区视频免费播放| **网站欧美大片在线观看| 韩国精品主播一区二区在线观看|