程序手記

          程序是我畢生的追求......
          隨筆 - 19, 文章 - 0, 評論 - 9, 引用 - 0
          數據加載中……

          2008年8月21日

          JSP基礎 (文件上傳) 第二十二天

              把一個指定的文件上傳到服務器,通常依靠JSP技術完成,需要使用到兩個JSP頁面。第一個JSP頁面是選擇要上傳的文件,第二個JSP頁面是從客戶端獲取該文件里面的信息,并把這些信息以客戶端相同的格式保存在服務器端,該頁面主要為功能處理頁面。
              第一個頁面的實現必須含有FILE類型的表單,并且表單的enctype的屬性必須為"muldtipart/form-data"。
              第二個頁面要使用內置對象request調用方法getInputStream()獲得一個輸入流,通過這個輸入流讀取客戶上傳的全部信息,如上傳文件的 名字,文件的大小,文件的類型。根據request所獲得的信息創建一個數據輸出流對象,把信息寫到一個指定的文件內

              第一個文件內容如下:
                  <body>
                      <form method="post" action="file_14.jsp" enctype="multipart/form-data">
                          <input type="file" name="file1" size="50" /><br>
                          <input type="submit" value="上傳" />
                      </form>

              第二個文件內容如下:
                  <%@ page contentType="text/html; charset='utf-8'" %>
                  <%@ page import="java.io.*" %>
                  <%@ page import ="java.util.*"%>
                  <%@ page import="javax.servlet.*"%>
                  <%@ page import = "javax.servlet.http.*" %>
                  <body>
                  <%
                      int MAX_SIZE = 102400 * 102400;    //定義上傳文件的最大字節
                      String rootPath;    //創建跟路徑的保存變量
                      DataInputStream in = null;    //聲明文件讀入類
                      FileOutpubStream fileOut = null;    //
                      String remoteAddr = request.getRemoteAddr();    //取得客戶端的網絡地址
                      String servName = request.getServerName();    //獲得服務器的名字
                      out.print("serverName=" + serverName + "<br>");
                      out.print("request.getServletPath() = " + request.getServletPath() + "<br>")

          posted @ 2008-08-22 00:29 程序手記 閱讀(245) | 評論 (0)編輯 收藏

          JavaBean基礎 (javabean簡介) 第二十一天

              JavaBean是一個可重復使用、且跨平臺的軟件組件(SoftWare Component),它可以在軟件開發工具如:Borland JBuilder \ Oracle JDeveloper 或是 Sun ONE Studio 等等里,以可視化的開發方式來開發。
              首先,你可以將JAVABEAN視為一個黑盒子(Black Box),雖然知道這個軟件組件所具備的功能,卻不知其內部是如何運作的。筆者提供給讀者一個假象的情況:有一個黑盒子,只知道它上面有一個按鈕,你只要按下去經過十分鐘,就會掉下一張一千元的鈔票,不過你看不見其內部任何的構造,而這就是JAVABEAN最重要的特性,它將許多的信息都封裝了起來,用戶無需知道黑盒子如何產生出鈔票,只需知道按下那個按鈕,然后等十分鐘,超片就會自動產生出來。
              一般而言,JAVABEAN可分為:有用戶接口(user interface)的javabean和沒有用戶接口的javabean,通常JSP是搭配沒有UI的JAVABEAN,因此后面所提到的JAVABEAN都知識單純處理一些食物,如:數據運算,連接數據庫和數據處理,等等,至于有用戶接口的JAVABEAN部分,請讀者自己參考JAVABEAN的相關書籍。
              通常一個標準的JAVABEAN有如下幾項特性:
              (1)javabean是一個公開的(public)類;
              (2)javabean類必須有一個無傳入參數(zero-argument)的構造函數(constructor);
              (3)取得或設置屬性時,必須使用getXXX方法或setXXX方法。

          例子:
              package tw.com.javaworld.CH8;
              
              import java.io.*;
              
              public class SimpleBean{
                  public SimpleBean(){
                  }
                  private String name;
                  private String number;
                  
                  public void setNumber(String number){
                      this.number = number;
                  }
                  public String getName(){
                      return name;
                  }
              }

          posted @ 2008-08-21 23:09 程序手記 閱讀(508) | 評論 (0)編輯 收藏

          JSP基礎 (JSP動作元素) 第二十一天

              與JSP指令元素不同的是,JSP動作元素在請求處理階段起作用。JSP動作元素是試用XML語法寫成的,它可以采用以下兩種格式:
              <prefix:tag attribute = value attribute-list.../>
          或者
              <prefix:tag attribute = value attribute-list.../>
              ...
              </prefix.tag>
          SERVLET容器在處理JSP時,每當遇到這種動作元素,都根據它的標記進行特殊處理。
          JSP規范定義了一系列的標準動作,它用JSP作為前綴。這些標準的動作不去慣容器是如何實現的,但是每個WEB容器都必須提供這些操作類型。標準動作為網頁設計者提供了基本的功能,其他的廠商可以自由提供其他的非標準動作以增強功能。
              標準動作有:
          <jsp:useBean>
          <jsp:setProperty>
          <jsp:getProperty>
          <jsp:param>
          <jsp:include>
          <jsp:forward>
          <jsp:plugin>
          <jsp:fallback>
          <jsp:attribute>
          <jsp:body>
          <jsp:invoke>
          <jsp:doBody>
          <jsp:element>
          <jsp:output>
          <jsp:scriptelet>
          <jsp:declaration>等
          在標準動作中,有許多是XML語法的動作元素,比如<jsp:scriptelet> <jsp:declaration>但他們的使用并不廣泛,下面介紹JSP中主要的動作元素。

          文件導入標記<jsp:include>
          include用于允許在請求時間內在縣城的JSP頁面里包含靜態或者動態資源。被包含的對象只有對JSPWRITER對象的訪問權,并且它不能設置頭或者COOKIE,如果頁面輸出是緩沖的,那么緩沖區的刷新要有限于包含的刷新。此指令在運行的效率上比<%@ page include %>指令的效率低,但是可以動態增加內容。用戶可以通過一下的格式來使用文件導入標記
              <jsp:include page="{relativeURL | <%=expression%>}" flush="true" />
              <jsp:include page="{relativeURL | <%=expression%>}" flush = "true" >
                  <jsp:param name="parameterName" value="{parameterValue | <%=expression%>}"
              </jsp:include>

              例如:
              <jsp:include page="admin/login.jsp" />
              <jsp:include page="copyright.html" />
              <jsp:include page="admin/login.jsp">
                  <jsp:parame name = "username" value="JackLong" />
              </jsp:include>

          頁面轉向標記<jsp:forward />
          實例:
              <jsp:forword page="showinfo.jsp" >
                  <jsp:param name = "username" value = "<%=request.getParameter("username")%>"/>
                  <jsp:param name = "telephone" value = "<%=request.getParameter("telephone")%>"/>
              </jsp:forword>

          posted @ 2008-08-21 05:20 程序手記 閱讀(484) | 評論 (0)編輯 收藏

          JSP基礎 (獲取當前時間) 第二十一天

              下面的代碼用于顯示當前時間,并根據當前是幾點輸出相應的提示信息,其中,使用java.util.Date thisday=new java.util.Date();語句來取得當前時間,然后通過相應的方法取得年,月,日,時和分的信息并輸出:

          <% page contentType="text/html; charset=utf-8" import="java.util.*" %>
          <body>
          <%
          //獲取當前的時間
          java.util.Date thisday = new java.util.Date();
          %>
          當前時間:
          <%=thisday.getYear()+1900%>年
          <%=thisday.getMonth()+1%>月
          <%=thisday.getDate()%>日
          <%=thisday.getHours()%>時
          <%=thisday.getMinutes()%>分
          <%
          String str = "歡迎訪問:"
          int num = this.getHours();
          switch(num){
              case 8:
              case 9:
              case 10:
              case 11:
              {
                  out.print("歡迎你的訪問,上午好!");
                  break;
              }
              case 12:
              {
                  out.print("中午好!");
                  break;
              }
              case 13:
              case 14:
              case 15:
              case 16:
              case 17:
              case 18:
              {
                  out.print("下午好!");
                  break;
              }
          </body>

          posted @ 2008-08-21 04:23 程序手記 閱讀(1262) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 建湖县| 祁连县| 县级市| 晴隆县| 南和县| 凤凰县| 武穴市| 吉首市| 临清市| 五河县| 宜兴市| 阿尔山市| 齐齐哈尔市| 马尔康县| 孟津县| 沁源县| 博乐市| 望城县| 长乐市| 商洛市| 岳阳市| 察哈| 丹阳市| 丘北县| 进贤县| 荔波县| 铁力市| 醴陵市| 栾城县| 岳池县| 民勤县| 克山县| 炎陵县| 资中县| 镇坪县| 宜良县| 墨竹工卡县| 克山县| 长垣县| 保德县| 河西区|