java 學習

          軟件開發相關方面的學習

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            33 Posts :: 1 Stories :: 5 Comments :: 0 Trackbacks

          #

          消息(錯誤)顯示

          ActionMessages messages = new ActionMessages();
          messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("userForm.insert", info.getUserName());
          messages.add("activationDate", new ActionMessage("userForm.active", info.getDateLength());

          如下可以顯示所有消息,并用<li>將它們放入一個list,再加上可定制的header/footer
          <html:messages id="message" header="errors.header" footer="errors.footer">
          <li><bean:write name="message"/></li>
          </html:messages>

          如下可以指定只顯示某種message
          <html:messages id="message" property="<%= org.apache.struts.action.ActionMessages.GLOBAL_MESSAGE %>">
          <li><bean:write name="message"/></li>
          </html:messages>

          <html:messages id="message" property="activationDate">
          <li><bean:write name="message"/></li>
          </html:messages>

          把Messages換成Errors就是錯誤顯示,為了簡便,經常一個<html:errors/>了事
          posted @ 2006-06-12 10:07 zxf 閱讀(229) | 評論 (0)編輯 收藏

          把字段名和類型加入表中:alter table tabelName add column fieldName fieldType
          把表中的字段drop掉:alter table tableName?drop?strFieldName
          顯示表中所有的列:show COLUMNS from tableName
          顯示數據庫中所有表:show tables from datebaseName
          posted @ 2006-05-29 15:55 zxf 閱讀(247) | 評論 (0)編輯 收藏

          public int getRound(double dSource){
          int iRound
          //BigDecimal的構造函數參數類型是double
          BigDecimal deSource = new BigDecimal(dSource);
          //deSource.setScale(0,BigDecimal.ROUND_HALF_UP) 返回值類型 BigDecimal
          //intValue() 方法將BigDecimal轉化為int
          iRound= deSource.setScale(0,BigDecimal.ROUND_HALF_UP).intValue();
          return iRound;
          }

          java中解決百分比保留兩位小數并要求四舍五入的方法:

          例如:

          DecimalFormat df1 = new DecimalFormat("##.00%");?????
          String a = df1.format(0.56566);
          System.out.println(a);

          結果>>56.57%

          在網上找到了下面這個文章覺得不錯,在這篇文章中找到了方法解決了這個問題:

          //--------------------------------------------------------------

          //保留小數點后兩位小數
          public double Number2(double pDouble)
          {
          ? BigDecimal? bd=new? BigDecimal(pDouble);
          ? BigDecimal? bd1=bd.setScale(2,bd.ROUND_HALF_UP);
          ? pDouble=bd1.doubleValue();
          ? long? ll = Double.doubleToLongBits(pDouble);
          ?
          ? return pDouble;
          }

          格式化輸出數字
          翻譯:Cherami
          email:cherami@163.net
          原文:http://developer.java.sun.com/developer/TechTips/2000/tt0411.html
          ?* 格式化輸出數字
          格式化輸出數字
          有時我們需要控制輸出的數字的格式,如何使用java的類庫做到這個呢?
          也許你不關心格式,但是你需要關心你的程序可以在全世界通用,像下面的這樣一個簡單的語句是依賴地區的:
          ??? System.out.println(1234.56);
          在美國,"." 是小數點,但在其它地方就不一定了。如何處理這個呢?

          java.text 包中的一些包可以處理這類問題。下面的簡單范例使用那些類解決上面提出的問題:

          ??? import java.text.NumberFormat;

          ??? import java.util.Locale;

          ??? public class DecimalFormat1 {

          ??????? public static void main(String args[]) {

          ??????????? // 得到本地的缺省格式

          ??????????? NumberFormat nf1 = NumberFormat.getInstance();

          ??????????? System.out.println(nf1.format(1234.56));

          ??????????? // 得到德國的格式

          ??????????? NumberFormat nf2 =

          ??????????????? NumberFormat.getInstance(Locale.GERMAN);

          ??????????? System.out.println(nf2.format(1234.56));

          ??????? }

          ??? }

          如果你在美國,運行程序后輸出:

          ??? 1,234.56

          ??? 1.234,56

          換句話說,在不同的地方使用不同的習慣表示數字。

          NumberFormat.getInstance()方法返回NumberFormat的一個實例(實際上是NumberFormat具體的一個子類,例如DecimalFormat), 這適合根據本地設置格式化一個數字。你也可以使用非缺省的地區設置,例如德國。然后格式化方法根據特定的地區規則格式化數字。這個程序也可以使用一個簡單的形式:

          ??? NumberFormat.getInstance().format(1234.56)

          但是保存一個格式然后重用更加有效。國際化是格式化數字時的一個大問題。

          另一個是對格式的有效控制,例如指定小數部分的位數,下面是解決這個問題的一個簡單例子:

          ??? import java.text.DecimalFormat;

          ??? import java.util.Locale;

          ??? public class DecimalFormat2 {

          ??????? public static void main(String args[]) {

          ??????????? // 得到本地的缺省格式

          ??????????? DecimalFormat df1 = new DecimalFormat("####.000");

          ??????????? System.out.println(df1.format(1234.56));

          ??????????? // 得到德國的格式

          ??????????? Locale.setDefault(Locale.GERMAN);

          ??????????? DecimalFormat df2 = new DecimalFormat("####.000");

          ??????????? System.out.println(df2.format(1234.56));

          ??????? }

          ??? }

          在這個例子中設置了數字的格式,使用像"####.000"的符號。這個模式意味著在小數點前有四個數字,如果不夠就空著,小數點后有三位數字,不足用0補齊。程序的輸出:

          ??? 1234.560

          ??? 1234,560

          相似的,也可以控制指數形式的格式,例如:

          ??? import java.text.DecimalFormat;

          ??? public class DecimalFormat3 {

          ??????? public static void main(String args[]) {

          ??????????? DecimalFormat df = new DecimalFormat("0.000E0000");

          ??????????? System.out.println(df.format(1234.56));

          ??????? }

          ??? }

          輸出:

          ??? 1.235E0003

          對于百分數:

          ??? import java.text.NumberFormat;

          ??? public class DecimalFormat4 {

          ??????? public static void main(String args[]) {

          ??????????? NumberFormat nf = NumberFormat.getPercentInstance();

          ??????????? System.out.println(nf.format(0.47));

          ??????? }

          ??? }

          輸出:

          ??? 47%

          至此,你已經看到了格式化數字的幾個不同的技術。另一方面,如何讀取并解析包含格式化的數字的字符串?解析支持包含在NumberFormat中。例如:

          ??? import java.util.Locale;

          ??? import java.text.NumberFormat;

          ??? import java.text.ParseException;

          ??? public class DecimalFormat5 {

          ??????? public static void main(String args[]) {

          ??????????? // 本地格式

          ??????????? NumberFormat nf1 = NumberFormat.getInstance();

          ??????????? Object obj1 = null;

          ??????????? // 基于格式的解析

          ??????????? try {

          ??????????????? obj1 = nf1.parse("1234,56");

          ??????????? }

          ??????????? catch (ParseException e1) {

          ??????????????? System.err.println(e1);

          ??????????? }

          ??????????? System.out.println(obj1);

          ??????????? // 德國格式

          ??????????? NumberFormat nf2 =

          ??????????????? NumberFormat.getInstance(Locale.GERMAN);

          ??????????? Object obj2 = null;

          ??????????? // 基于格式的解析

          ??????????? try {

          ??????????????? obj2 = nf2.parse("1234,56");

          ??????????? }

          ??????????? catch (ParseException e2) {

          ??????????????? System.err.println(e2);

          ??????????? }

          ??????????? System.out.println(obj2);

          ??????? }

          ??? }

          這個例子分兩部分,都是解析一個字符串:"1234,56"。第一部分使用本地格式解析,第二部分使用德國格式解析。當程序在美國運行,結果是:

          ??? 123456

          ??? 1234.56

          換句話說,"1234,56"在美國被認為是一個巨大的整數"123456"而在德國被認為是一個小數"1234.56"。

          還有格式化討論的最后一個問題。在上面的例子中, DecimalFormat 和 NumberFormat 都被使用了。DecimalFormat 常用于獲得很好的格式控制,而NumberFormat 常用于指定不同于本地的地區。如何結合兩個類呢?

          答案圍繞著這樣的事實:DecimalFormat是NumberFormat的一個子類,其實例被指定為特定的地區。因此,你可以使用NumberFormat.getInstance 指定一個地區,然后將結構強制轉換為一個DecimalFormat對象。文檔中提到這個技術可以在大多情況下適用,但是你需要用try/catch 塊包圍強制轉換以防轉換不能正常工作 (大概在非常不明顯得情況下使用一個奇異的地區)。下面是一個這樣的例子:

          ??? import java.text.DecimalFormat;

          ??? import java.text.NumberFormat;

          ??? import java.util.Locale;

          ??? public class DecimalFormat6 {

          ??????? public static void main(String args[]) {

          ??????????? DecimalFormat df = null;

          ??????????? // 得到一個NumberFormat 對象并

          ??????????? // 強制轉換為一個 DecimalFormat 對象

          ??????????? try {

          ??????????????? df = (DecimalFormat)

          ??????????????????? NumberFormat.getInstance(Locale.GERMAN);

          ??????????? }

          ??????????? catch (ClassCastException e) {

          ??????????????? System.err.println(e);

          ??????????? }

          ??????????? // 設置格式模式

          ??????????? df.applyPattern("####.00000");

          ??????????? // format a number

          ??????????? System.out.println(df.format(1234.56));

          ??????? }

          ??? }

          ?

          getInstance() 方法獲得格式,然后調用applyPattern()方法設置格式模式,輸出:

          ??? 1234,56000

          如果你不關心國際化,可以直接使用DecimalFormat 。

          posted @ 2006-04-29 11:14 zxf 閱讀(2976) | 評論 (1)編輯 收藏

          tomcat 安裝好之后,只需要把你的程序包放到$Tomcat_Home$/webapps下就可以直接使用了。這樣會使webapps越來越大就需要設置虛擬目錄:
          1.單個應用設置:
          ?在<Host>和</host>之間加上
          ?<Context path="/site" docBase="d:\site" reloadable="true" debug="0">
          ?</Context>
          ?參數:path 表示在瀏覽器中輸入http://localhost:8080/site
          ???? docBase表示你的程序包的物理絕對路徑,默認的絕對路徑是$Tomcat_Home$/webapps
          ?這樣設定了之后會在$tomcat_home$/conf/catalina/localhost目錄下生成一個site.xml文件,此文件的內容就是剛才設置的內容。
          2.通過前面我們知道了在$tomcat_home$/conf/catalina/localhost目錄下會生成相應的配置文件,因此我們可以直接在$tomcat_home$/conf/catalina/localhost目錄下寫配置文件文件名任意取,最好是跟你的web應用相同便于管理,如site.xml內容同上
          <Context path="/site" docBase="d:\site" reloadable="true" debug="0">
          ?</Context>
          3.更改整個根目錄:
          ? 找到<Host name="localhost" debug="0" appBase="webapps"
          ? unpackWARs="true" autoDeploy="true">
          ?將appBase的設置成期望的路徑(絕對路徑)
          ?出現的問題:輸入:http://localhost:8080/沒有出現默認的頁面
          ?原因當然是更改了路徑造成的。解決也很簡單了,把文件拷過來,或者再把原來默認的設成虛擬路徑。
          posted @ 2006-04-28 21:45 zxf 閱讀(226) | 評論 (0)編輯 收藏

          (一):安裝及配置
          安裝--windows平臺
          從tomcat網站下載jakarta-tomcat-4.0.1.exe,按照一般的windows程序安裝步驟即可安裝好tomcat,安裝時它會自動尋找你的jdk和jre的位置。

          (二):配置
          運行tomcat需要設置JAVA_HOME變量

          JAVA_HOME=c:/jdk

          (三):運行
          設置完畢后就可以運行tomcat服務器了,進入tomcat的bin目錄,win98下用startup啟動tomcat,linux下用startup.sh,相應的關閉tomcat的命令為shutdown和shutdown.sh。

          啟動后可以在瀏覽器中輸入http://localhost:8080/測試,由于tomcat本身具有web服務器的功能,因此我們不必安裝apache,當然其也可以與apache集成到一起。

          (四):應用

          (1):目錄結構
          tomcat的目錄結構如下:

          目錄名簡介
          bin存放啟動和關閉tomcat腳本
          conf包含不同的配置文件,server.xml(Tomcat的主要配置文件)和web.xml
          work存放jsp編譯后產生的class文件
          webapp存放應用程序示例,以后你要部署的應用程序也要放到此目錄
          logs存放日志文件
          lib/japser/common這三個目錄主要存放tomcat所需的jar文件

          (2):server.xml配置簡介
          下面我們將講述這個文件中的基本配置信息,更具體的配置信息見tomcat的文檔

          元素名屬性解釋
          serverport指定一個端口,這個端口負責監聽關閉tomcat的請求
          shutdown指定向端口發送的命令字符串
          servicename指定service的名字
          Connector
          (表示客戶端和service之間的連接)
          port指定服務器端要創建的端口號,并在這個斷口監聽來自客戶端的請求
          minProcessors服務器啟動時創建的處理請求的線程數
          maxProcessors最大可以創建的處理請求的線程數
          enableLookups如果為true,則可以通過調用request.getRemoteHost()進行DNS查詢來得到遠程客戶端的實際主機名,若為false則不進行DNS查詢,而是返回其ip地址
          redirectPort指定服務器正在處理http請求時收到了一個SSL傳輸請求后重定向的端口號
          acceptCount指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理
          connectionTimeout指定超時的時間數(以毫秒為單位)
          Engine
          (表示指定service中的請求處理機,接收和處理來自Connector的請求)
          defaultHost指定缺省的處理請求的主機名,它至少與其中的一個host元素的name屬性值是一樣的
          Context
          (表示一個web應用程序,通常為WAR文件,關于WAR的具體信息見servlet規范)
          docBase應用程序的路徑或者是WAR文件存放的路徑
          path表示此web應用程序的url的前綴,這樣請求的url為http://localhost:8080/path/****
          reloadable這個屬性非常重要,如果為true,則tomcat會自動檢測應用程序的/WEB-INF/lib 和/WEB-INF/classes目錄的變化,自動裝載新的應用程序,我們可以在不重起tomcat的情況下改變應用程序

          host
          (表示一個虛擬主機)

          name指定主機名
          appBase應用程序基本目錄,即存放應用程序的目錄
          unpackWARs如果為true,則tomcat會自動將WAR文件解壓,否則不解壓,直接從WAR文件中運行應用程序

          Logger
          (表示日志,調試和錯誤信息)

          className指定logger使用的類名,此類必須實現org.apache.catalina.Logger 接口
          prefix指定log文件的前綴
          suffix指定log文件的后綴
          timestamp如果為true,則log文件名中要加入時間,如下例:localhost_log.2001-10-04.txt

          Realm
          (表示存放用戶名,密碼及role的數據庫)

          className指定Realm使用的類名,此類必須實現org.apache.catalina.Realm接口

          Valve
          (功能與Logger差不多,其prefix和suffix屬性解釋和Logger 中的一樣)

          className

          指定Valve使用的類名,如用org.apache.catalina.valves.AccessLogValve類可以記錄應用程序的訪問信息

          directory指定log文件存放的位置
          pattern有兩個值,common方式記錄遠程主機名或ip地址,用戶名,日期,第一行請求的字符串,HTTP響應代碼,發送的字節數。combined方式比common方式記錄的值更多

          注意:1:經過我測試,我設置Context 的path="",reloadable=true,然后放一個WAR文件到webapps目錄,結果tomcat不能檢測出此文件(重起tomcat可以),而把此文件解壓,則tomcat會自動檢測出這個新的應用程序。如果不能自動檢測WAR文件,我們可以利用下面管理中講的方法來部署應用程序。

          2:默認的server.xml中,Realm元素只設置了一個className屬性,但此文件中也包含幾個通過JDBC連接到數據庫進行驗證的示例(被注釋掉了),通過Realm元素我們可以實現容器安全管理(Container Managed Security)。

          3:還有一些元素我們沒有介紹,如Parameter,loader,你可以通過tomcat的文檔獲取這些元素的信息。

          (3):管理

          1:配置
          在進行具體的管理之前,我們先給tomcat添加一個用戶,使這個用戶有權限來進行管理。

          打開conf目錄下的tomcat-users.xml文件,在相應的位置添加下面一行:

          <user name="zf" password="zf" roles="standard,manager"/> 
          

          注意:這一行的最后部分一定是/>,tomcat的文檔掉了/符號,如果沒有/符號的話,tomcat重起時將無法訪問應用程序。通過logs/catalina.out文件你可以看到這個錯誤的詳細信息。

          然后重起tomcat,在瀏覽器中輸入http://localhost:8080/manager/,會彈出對話框,輸入上面的用戶名和密碼即可。

          2:應用程序列表
          在瀏覽器中輸入http://localhost:8080/manager/list,瀏覽器將會顯示如下的信息:

          OK - Listed applications for virtual host localhost
          /ex:running:1
          /examples:running:1
          /webdav:running:0
          /tomcat-docs:running:0
          /manager:running:0
          /:running:0

          面的信息分別為應用程序的路徑,當前狀態(running 或者stopped),與這個程序相連的session數。

          3:重新裝載應用程序
          在瀏覽器中輸入 http://localhost:8080/manager/reload?path=/examples,瀏覽器顯示如下:

          OK - Reloaded application at context path /examples  
          

          表示example應用程序裝載成功,如果我們將server.xml的Context元素的reloadable屬性設為true(見上面表格),則沒必要利用這種方式重新裝載應用程序,因為tomcat會自動裝載。

          4:顯示session信息
          在瀏覽器中輸入http://localhost:8080/manager/sessions?path=/examples,瀏覽器顯示如下:

          OK - Session information for application at context path /examples Default maximum session inactive interval 30 minutes  
          

          5:啟動和關閉應用程序
          在瀏覽器中輸入http://localhost:8080/manager/start?path=/examples和http://localhost:8080/manager/stop?path=/examples分別啟動和關閉examples應用程序。

          6:部署及撤銷部署
          WAR有兩種組織方式,一種是按一定的目錄結構組織文件,一種是一個后綴為WAR的壓縮包,因此它的部署方式也有兩種:
          (1):在瀏覽器中輸入:http://localhost:8080/manager/install?path=/examples&war=file:/c:\examples
          就會將按目錄結構組織的WAR部署

          (2):如果輸入:http://localhost:8080/manager/install?path=/examples&war=jar:file:/c:\examples.war!/
          就會將按壓縮包組織的WAR部署,注意此url后半部分一定要有!/號。

          部署后就可以用 http://localhost:8080/examples訪問了。

          在瀏覽器中輸入:http://localhost:8080/manager/remove?path=/examples
          就會撤銷剛才部署的應用程序。

          (4):與apache集成
          雖然tomcat也可以作web服務器,但其處理靜態html的速度比不上apache,且其作為web服務器的功能遠不如apache,因此我們想把apache和tomcat集成起來。

          我們以linux系統為例介紹.

          從apache網站下載apache1.3.22源代碼版本,然后使用如下命令配置安裝apache:

          mkdir /usr/local/apache
          tar zxvf apache.1.32.tar.gz
          cd apache.1.32
          ./configure --prefix=/usr/local/apache --enable-module=so 
          make
          make install
          

          注意configure命令指定目標安裝目錄,并且加入DSO(Dynamic Shared Object)支持,注意一定不要忘了這一個選項。

          然后下載webapp模塊,將解壓后mod_webapp.so文件放入apache的libexec目錄,編輯apache的conf目錄下的httpd.conf,在這個文件的最后加入下面三行:

          LoadModule webapp_module libexec/mod_webapp.so
          WebAppConnection warpConnection warp localhost:8008
          WebAppDeploy examples warpConnection /examples/ 
          

          第一行是加入webapp模塊,如果編譯apache時不增加DSO支持,則無法使用LoadModule指令,第二行指定tomcat與apache的連接,第三行指定部署那個應用,這兩個指令使用格式如下:

          WebAppConnection [connection name] [provider] [host:port]
          WebAppDeploy [application name] [connection name] [url path]  
          

          其中connection name指定連接名,provider只能是warp,port端口與你的tomcat的配置文件server.xml最后幾行指定的要保持一致。文件如下:

          <Service name="Tomcat-Apache"> 
          <Connector className="org.apache.catalina.connector.warp.WarpConnector"
          port="8008" minProcessors="5" maxProcessors="75"
          enableLookups="true"
          acceptCount="10" debug="0"/>
          ******
          </Service> 
          

          application name與你在tomcat中部署的應用名一致,url path指定訪問這個應用的url。例如上面的例子可以通過http://localhost/examples/來訪問tomcat中的examples應用。

          (5):中文問題
          一般jsp的亂碼問題可以通過在jsp中加入<%@ page contentType="text/html;charset=GB2312" %>來解決,至于servlet的亂碼在可以使用servlet2.3中提供的HttpServeletRequest.setCharacterEncoding函數。更詳細的中文問題請見JSP/Servlet 中的漢字編碼問題

          四:綜述
          tomcat作為一個servlet(jsp也被編譯為servlet執行)容器,其應用前景是非常好的,如果與jboss結合起來,則可以實現sun的j2ee規范(用jboss作ejb服務器)。jboss的官方網站也提供集成了tomcat3.2*的jboss以供下載。另外一個開源的應用服務器(enhydra) 也是基于tomcat的,其提供了更友好的管理界面,部署應用程序也更簡單,功能也更強大。

          posted @ 2006-04-28 10:05 zxf 閱讀(296) | 評論 (0)編輯 收藏

          web.xml

          <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
          ??? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          ??? xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
          ??? version="2.4">

          </web-app>

          其它的元素都放在<web-app></web-app>之中。

          <discription></discription> 是對站臺的描述
          <display-name></display-name> 定義站臺的名稱
          <distributable/> 是指定該站臺是否可分布式處理

          <context-param></context-param> 用來設定web站臺的環境參數,它包含兩個子元素:
          ??? <param-name></param-name> 用來指定參數的名稱
          ??? <param-value></param-value> 用來設定參數值

          比如:
          <context-param>
          ??? <param-name>my_param</param-name>
          ??? <param-value>hello</param-value>
          </context-param>

          在此設定的參數,可以在servlet中用 getServletContext().getInitParameter("my_param") 來取得

          <filter></filter> 是用來聲明filter的相關設定,它包含以下子元素:
          ??? <filter-name></filter-name> 這當然就是指定filter的名字
          ??? <filter-class></filter-class> 這是用來定義filter的類的名稱
          ??? <init-param></init-param> 用來定義參數,它有兩個子元素:
          ??? ??? <param-name></param-name> 用來指定參數的名稱
          ?? ? ?? <param-value></param-value> 用來設定參數值

          比如:
          <filter>
          ??? ??? <filter-name>setCharacterEncoding</filter-name>
          ??? ??? <filter-class>com.myTest.setCharacterEncodingFilter</filter-class>
          ??? ??? <init-param>
          ??? ??? ??? <param-name>encoding</param-name>
          ??? ??? ??? <param-value>GB2312</param-value>
          ??? ??? </init-param>
          </filter>

          <filter></filter>同時使用的是<filter-mapping></filter-mapping> 用來定義filter所對應的URL,它有兩個子元素:
          ??? <filter-name></filter-name> 指定filter的名字
          ??? <url-pattern></url-pattern> 指定filter所對應的URL

          比如:
          <filter-mapping>
          ??? ??? <filter-name>setCharacterEncoding</filter-name>
          ??? ??? <url-pattern>/*</url-pattern>
          </filter-mapping>


          <listener></listener> 用來設定Listener接口,它的主要子元素為
          ??? <listener-class></listener-class> 定義Listener的類名稱

          比如:
          <listener>
          ???
          <listener-class>com.myTest.ContextListener</listener-class>

          </listener>

          <servlet></servlet> 用來聲明一個servlet的數據,主要有以下子元素:
          ??? <servlet-name>
          </servlet-name> 指定servlet的名稱
          ??? <servlet-class></servlet-class> 指定servlet的類名稱
          ??? <jsp-file></jsp-file> 指定web站臺中的某個JSP網頁的完整路徑
          ??? <init-param></init-param> 用來定義參數,和前面的<init-param>差不多

          同樣,與<servlet></servlet>一起使用的是<servlet-mapping></servlet-mapping> 用來定義servlet所對應的URL,包含兩個子元素:
          ???
          <servlet-name></servlet-name> 指定servlet的名稱
          ??? <url-pattern></url-pattern> 指定servlet所對應的URL

          比如:
          <servlet>
          ??????? <servlet-name>ShoppingServlet</servlet-name>
          ??????? <servlet-class>com.myTest.ShoppingServlet</servlet-class>
          </servlet>
          ???
          <servlet-mapping>
          ??????? <servlet-name>ShoppingServlet</servlet-name>
          ??????? <url-pattern>/shop/ShoppingServlet</url-pattern>
          </servlet-mapping>

          <session-config></session-config> 用來定義web站臺中的session參數,包含一個子元素:
          ??? <session-timeout></session-timeout> 用來定義這個web站臺所有session的有效期限,單位為分鐘

          <mime-mapping></mime-mapping> 定義某一個擴展名和某一個MIME Type做對映,包含兩個子元素:
          ??? <extension></extension> 擴展名的名稱
          ??? <mime-type></mime-type> MIME格式

          比如:
          <mime-mapping>
          ??? <extension>doc</extension>
          ??? <mime-type>application/vnd.ms-word</mime-type>

          </mime-mapping>
          <mime-mapping>
          ??? <extension>xls</extension>
          ??? <mime-type>application/vnd.ms-excel</mime-type>

          </mime-mapping>

          <welcome-file-list></welcom-file-list> 用來定義首頁的列單,包含一個子元素:
          ??? <welcome-file></welcome-file> 指定首頁的文件名稱

          比如:
          <welcome-file-list>
          ??? <welcome-file>index.jsp</welcome-file>
          ??? <welcome-file>index.html</welcome-file>

          </welcom-file-list>

          <error-page></error-page> 用來處理錯誤代碼或異常的頁面,有三個子元素:
          ??? <error-code></error-code> 指定錯誤代碼
          ??? <exception-type></exception-type> 指定一個JAVA異常類型
          ??? <location></location> 指定在web站臺內的相關資源路徑

          比如:
          <error-page>
          ??? <error-code>404</error-code>
          ??? <location>/error404.jsp</location>

          </error-page>
          <error-page>
          ??? <exception-type>java.lang.Exception</exception-type>

          ??? <location>/exception.jsp</location>
          </error-page>

          <taglib></taglib> 用來設定JSP網頁所用到的Tag Library路徑,有兩個子元素:
          ??? <taglib-uri></taglib-uri> 定義TLD文件的URI,在JSP網頁中用taglib指令便可取得該URI的TLD文件
          ??? <taglib-location></taglib-location> 指定TLD文件相對于web站臺的存放位置

          比如:
          <taglib>
          ? ??? <taglib-uri>myTaglib</taglib-uri>
          ? ??? <taglib-location>/WEB-INF/tlds/MyTaglib.tld</taglib-location>
          </taglib>


          <resource-ref></resource-ref> 定義利用JNDI取得站臺可利用的資源,有五個子元素:
          ??? <description></description> 資源說明
          ??? <rec-ref-name></rec-ref-name> 資源名稱
          ??? <res-type></res-type> 資源種類
          ??? <res-auth></res-auth> 資源經由Application或Container來許可
          ??? <res-sharing-scope></res-sharing-scope> 資源是否可以共享,有Shareable和Unshareable兩個值,默認為
          Shareable

          比如,配置數據庫連接池就可在此配置:
          <resource-ref>
          ??? ??? <description>JNDI JDBC DataSource of shop</description>
          ??? ??? <res-ref-name>jdbc/sample_db</res-ref-name>
          ??? ??? <res-type>javax.sql.DataSource</res-type>
          ??? ??? <res-auth>Container</res-auth>
          </resource-ref>
          posted @ 2006-04-27 09:49 zxf 閱讀(323) | 評論 (0)編輯 收藏

          在mysql數據庫中的user表中把host設為空或者遠程ip,就可以了,注意要重新啟動mysqld

          grant all on? 數據庫名.*? to? 用戶名@192.168.1.*? identified by '密碼'
          posted @ 2006-04-24 17:31 zxf 閱讀(1326) | 評論 (0)編輯 收藏

          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <title>無標題文檔</title>
          <meta name="Keywords" content="ff" />
          <style type="text/css">
          <!--
          .prln {
          ?page-break-before: always;
          ?page-break-after: always;
          }
          -->
          </style>
          </head>

          <body>
          <p>asdfasdfAsd</p>
          <p class="prln">s</p>
          <p>dfa</p>
          <p class="prln">sdfas df? </p>
          </body>
          </html>

          最新版本的代碼片段: 1.0

          				
          <!-- IE5.5以上 -->
          <OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0></OBJECT>
          <input type=button value=打印 onclick=document.all.WebBrowser.ExecWB(6,1)>
          <input type=button value=直接打印 onclick=document.all.WebBrowser.ExecWB(6,6)>
          <input type=button value=頁面設置 onclick=document.all.WebBrowser.ExecWB(8,1)>
          <input type=button value=打印預覽 onclick=document.all.WebBrowser.ExecWB(7,1)>
          
          <input type=button value=打開 onclick=document.all.WebBrowser.ExecWB(1,1)>
          <input type=button value=另存為 onclick=document.all.WebBrowser.ExecWB(4,1)>
          <input type=button value=屬性 onclick=document.all.WebBrowser.ExecWB(10,1)>
          <input type=button value=全選 onclick=document.all.WebBrowser.ExecWB(17,1)>
          <input type=button value=刷新 onclick=document.all.WebBrowser.ExecWB(22,1)>
          <input type=button value=關閉窗口 onclick=document.all.WebBrowser.ExecWB(45,1)>



          <html>
          				<head>
          		
          				<meta name=vs_targetSchema content="
          		
          				<title>看看</title>
          		
          				<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          		
          				<!--media=print 這個屬性可以在打印時有效-->
          		
          				<style media=print>
          		
          				.Noprint{display:none;}
          		
          				.PageNext{page-break-after: always;}
          		
          				</style>
          		
          				?
          		
          				<style>
          		
          				.tdp
          		
          				{
          		
          				??? border-bottom: 1 solid #ff0000;
          		
          				??? border-left:? 1 solid #000000;
          		
          				??? border-right:? 0 solid #ffffff;
          		
          				??? border-top: 0 solid #ffffff;
          		
          				}
          		
          				.tabp
          		
          				{
          		
          				??? border-color: #ff0000 #ff0000 #ff0000 #ff0000;
          		
          				??? border-style: solid;
          		
          				??? border-top-width: 2px;
          		
          				??? border-right-width: 2px;
          		
          				??? border-bottom-width: 1px;
          		
          				??? border-left-width: 1px;
          		
          				}
          		
          				.NOPRINT {
          		
          				?????? font-family: "宋體";
          		
          				?????? font-size: 9pt;
          		
          				}
          		
          				?
          		
          				</style>
          		
          				?
          		
          				</head>
          		
          				?
          		
          				<body >
          		
          				<center class="Noprint" >
          		
          				? <p>
          		
          				? <OBJECT? id=WebBrowser? classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2? height=0? width=0>
          		
          				? </OBJECT>
          		
          				? <input? type=button? value=打印????????? onclick=document.all.WebBrowser.ExecWB(6,1)>
          		
          				? <input? type=button? value=直接打印? onclick=document.all.WebBrowser.ExecWB(6,6)>
          		
          				? <input? type=button? value=頁面設置? onclick=document.all.WebBrowser.ExecWB(8,1)>
          		
          				</p>
          		
          				? <p>??? <input? type=button? value=打印預覽? onclick=document.all.WebBrowser.ExecWB(7,1)>
          		
          				??? <br/>
          		
          				??? </p>
          		
          				? <hr align="center" width="90%" size="1" noshade>
          		
          				</center>
          		
          				?
          		
          				<table width="90%" border="0" align="center" cellpadding="2" cellspacing="0"? class="tabp">
          		
          				?????? <tr>
          		
          				????????????? <td colspan="3" class="tdp">第1頁</td>
          		
          				??? </tr>
          		
          				?????? <tr>
          		
          				???????? <td width="29%" class="tdp"> </td>
          		
          				???????? <td width="28%" class="tdp"> </td>
          		
          				????? <td width="43%" class="tdp"> </td>
          		
          				? </tr>
          		
          				?????? <tr>
          		
          				???????? <td colspan="3" class="tdp"> </td>
          		
          				? </tr>
          		
          				?????? <tr>
          		
          				???????? <td colspan="3" class="tdp"><table width="100%"? border="0" cellspacing="0" cellpadding="0">
          		
          				??????? <tr>
          		
          				????????? <td width="50%" class="tdp"><p>這樣的報表</p>
          		
          				????????? <p>對一般的要求就夠了。</p></td>
          		
          				????????? <td> </td>
          		
          				??????? </tr>
          		
          				????? </table></td>
          		
          				? </tr>
          		
          				</table>
          		
          				<hr align="center" width="90%" size="1" noshade class="NOPRINT" >
          		
          				<!--分頁-->
          		
          				<div class="PageNext"></div>
          		
          				<table width="90%" border="0" align="center" cellpadding="2" cellspacing="0"? class="tabp">
          		
          				? <tr>
          		
          				??? <td class="tdp">第2頁</td>
          		
          				? </tr>
          		
          				? <tr>
          		
          				??? <td class="tdp">看到分頁了吧</td>
          		
          				? </tr>
          		
          				? <tr>
          		
          				??? <td class="tdp"> </td>
          		
          				? </tr>
          		
          				? <tr>
          		
          				??? <td class="tdp"> </td>
          		
          				? </tr>
          		
          				? <tr>
          		
          				??? <td class="tdp"><table width="100%"? border="0" cellspacing="0" cellpadding="0">
          		
          				??????? <tr>
          		
          				????????? <td width="50%" class="tdp"><p>這樣的報表</p>
          		
          				????????????? <p>對一般的要求就夠了。</p></td>
          		
          				????????? <td> </td>
          		
          				??????? </tr>
          		
          				??? </table></td>
          		
          				? </tr>
          		
          				</table>
          		
          				</body>
          		
          				</html>


          ??????? &

            &命令可用在其他任何命令的后面,它用來通知計算機在后臺運行某一命令。通過把作業放在后臺,用戶可以繼續使用當前的shell來處理其他命令;如果命令在前臺運行的話,那么用戶在此進程結束前不能繼續使用當前的shell。 

            adduser

            adduser命令由root或其他具有權限的管理員用來創建新用戶,跟在adduser命令后面的是所要創建的帳號名,例如:adduser flying

            alias

            alias命令用來設置命令的別名或替代名。一般說來別名往往是實際命令名的縮寫。例如用戶為ls設置一個別名dir:

            alias dir=ls

            若僅輸入alias本身時,系統將顯示當前所有的別名。

            bg

            bg命令用來迫使被掛起的進程在后臺運行。例如,當你已經在前臺啟動了一個命令時(沒有在此命令后使用&),你才想到這一命令將運行較長一段時間,但你這時還需使用shell。在這種情況下,可通過ctrl+z掛起當前運行的進程。此時你既可以使它長期掛起,也可以通過輸入bg把這一進程放到后臺運行。這樣shell就可以用來執行其他的命令了。

            cat

            cat通常是用來在屏幕上滾動顯示文件的內容。它的格式是:

            cat〈filename〉

            cd

            cd用來改變目錄。這一命令非常有用,它有三種典型的使用方法。

            cd   移到目錄樹的上一層

            cd~  移動到用戶的主目錄,與單獨使用cd相同

            cd directory name改變到指定的目錄

            cp

            cp用來拷貝對象。例如要把file1拷貝到file2,用如下命令:

            cp file1 file2

            dd

            dd命令用來轉換文件格式。

            fg

            fg命令用來激活某個被掛起的進程并使它在前臺運行。當有一個進程正在運行時,由于某種原因需要掛起它,在執行完其他任務后,需要重新把這一進程調到前臺運行,這時便可用bg命令使這一進程繼續運行。

            find

            find命令用來查找指定目錄的文件。當找到后將按照用戶的要求對文件進行處理。語法是:

            find以它為起點進行搜索的目錄想要查找的文件名或元字符對文件執行的操作

            grep

            grep命令用來在指定的對象中搜索指定的文本。語法是:grep〈text〉〈file〉。它還可以和其他命令的結果聯合使用,例如:

            ps -ef|grep-v root

            這一命令要求grep接受ps命令的輸出,并除去所有包含單詞root的進程(-v的含義是顯示與文本不匹配的內容)。在不使用-v選項時,這一命令將顯示進程清單中所有包含單詞root的進程。

            halt

            halt命令用來通知內核關閉系統,它是一個只能由超級用戶執行的命令。

            hostname

            既可以用來顯示系統當前的主機名或域名,也可用來設置系統的主機名。

            login

            當向系統注冊時,將使用login。login命令也可用來隨時從這一用戶改變到另一用戶。  

            logout

            logout命令用來使當前用戶從系統中注銷。如果這是你使用的注冊到系統的唯一用戶,那么將退出系統。

            ls

            ls命令用來列出目錄的內容,它的輸出格式可通過選項來控制。沒有任何選項的ls命令將按照字母順序列出所有非隱藏文件,顯示的列數以正好適合窗口的大小為準。最常用的一組選項是-la。這里a表示要列出所有的文件;l表示以長格式列出,它使輸出結果成為一個詳細的長列表。  

            more

            more是一個過濾程序,它可以每次一屏地翻閱文本文件的內容。這一命令只能對文件向下進行翻頁。

            mount

            mount命令用來把特殊文件(通常是設備名)指定的文件系統安裝在作為一個參數被指定的目錄上。只有超級用戶能夠安裝文件。如果在運行mount命令時不使用任何參數,它將列出當前被安裝的所有文件系統。  

            mv

            mv命令用來把某個對象從這一位置移動到另一位置。如果最后一個變量指定的是一個現有的目錄,那么這一命令將把命令行中指定的所有文件移到這一目錄中;如果給出的是兩個文件,mv將把第一個文件移到第二個文件中。只有當最后一個變量是一個目錄時,mv命令的變量才可以超過兩個。 

            ps

            ps用來報告進程的狀態,它將顯示一張當前進程的快照。  

            rm

            rm用來刪除指定的文件。利用-r選項,rm將遞歸地刪除文件(warning:危險)。rm可與find命令聯合使用,查找某一文件并刪除它。在缺省的情況下,rm命令不能刪除目錄。

            rmdir

            rmdir用來刪除指定的空目錄。語法是:

            rm〈directory name〉

            umount

            umount命令用來卸載文件。語法是:

            umount〈filename〉

            unalias

            unalias用來取消別名。如前面曾把dir設置為ls命令的別名,要取消它只須輸入unalias dir即可。

            unzip

            unzip用來列出、檢測或從某個zip文檔中抽取文件,它的缺省用法是從文檔中抽取文件。其基本語法是:

            unzip〈filename〉

            who

            who命令用來顯示當前注冊到系統的每個用戶的注冊名、終端類型、注冊時間和遠程主機名。

            如果有兩個非選項的參數傳遞給who命令,那么它將打印出正在運行此命令的用戶的信息。

            如果想要查看某一對話所持續的時間,可利用-u選項。

            xset

            xset命令用來設置X Window環境中的一些選項,可利用它來設置響鈴(xser b〈volume〉〈frequency〉〈duration in milliseconds〉)、鼠標速度(xset m〈acceleration〉〈threshold〉),以及其它參數。

            zip

            zip命令用來列出、檢測或向某個zip文檔中添加文件,它的缺省用法就是向某個文檔中添加文件。
          posted @ 2006-04-24 14:30 zxf 閱讀(454) | 評論 (0)編輯 收藏

          String realpath = request.getRealPath("/");
          String realpath = this.servlet.getServletContext().getRealPath("/");
          posted @ 2006-04-20 09:40 zxf 閱讀(565) | 評論 (0)編輯 收藏

          僅列出標題
          共4頁: 上一頁 1 2 3 4 下一頁 
          主站蜘蛛池模板: 巢湖市| 伊通| 旅游| 马公市| 文山县| 漳州市| 尖扎县| 瑞金市| 益阳市| 新宾| 岳阳市| 百色市| 香港 | 通州市| 大石桥市| 平舆县| 临澧县| 黄浦区| 启东市| 澜沧| 德格县| 安阳市| 曲周县| 惠东县| 海安县| 旬邑县| 登封市| 皮山县| 马山县| 肇州县| 江门市| 新营市| 内黄县| 静宁县| 巴林左旗| 合川市| 措美县| 岑巩县| 比如县| 宾川县| 礼泉县|