亚洲精品第一国产综合精品,亚洲人成人无码网www国产,亚洲黄色免费观看http://www.tkk7.com/spark/智慧是第一生產力zh-cnMon, 12 May 2025 08:54:54 GMTMon, 12 May 2025 08:54:54 GMT60ftp實現上傳下載,解決了編碼問題。http://www.tkk7.com/spark/archive/2010/01/19/310032.html空空空空Tue, 19 Jan 2010 01:16:00 GMThttp://www.tkk7.com/spark/archive/2010/01/19/310032.htmlhttp://www.tkk7.com/spark/comments/310032.htmlhttp://www.tkk7.com/spark/archive/2010/01/19/310032.html#Feedback1http://www.tkk7.com/spark/comments/commentRss/310032.htmlhttp://www.tkk7.com/spark/services/trackbacks/310032.html閱讀全文

空空 2010-01-19 09:16 發表評論
]]>
mysql命令(轉)http://www.tkk7.com/spark/archive/2009/12/04/304782.html空空空空Fri, 04 Dec 2009 07:38:00 GMThttp://www.tkk7.com/spark/archive/2009/12/04/304782.htmlhttp://www.tkk7.com/spark/comments/304782.htmlhttp://www.tkk7.com/spark/archive/2009/12/04/304782.html#Feedback0http://www.tkk7.com/spark/comments/commentRss/304782.htmlhttp://www.tkk7.com/spark/services/trackbacks/304782.html測試環境:mysql 5.0.45
【注:可以在mysql中通過mysql> SELECT VERSION();來查看數據庫版本】
整理:leo
一、連接MYSQL。
格式: mysql -h主機地址 -u用戶名 -p用戶密碼
1、連接到本機上的MYSQL。
首先打開DOS窗口,然后進入目錄mysql\bin,再鍵入命令mysql -u root -p,回車后提示你輸密碼.注意用戶名前可以有空格也可以沒有空格,但是密碼前必須沒有空格,否則讓你重新輸入密碼.
如果剛安裝好MYSQL,超級用戶root是沒有密碼的,故直接回車即可進入到MYSQL中了,MYSQL的提示符是: mysql>
2、連接到遠程主機上的MYSQL。假設遠程主機的IP為:110.110.110.110,用戶名為root,密碼為abcd123。則鍵入以下命令:
mysql -h110.110.110.110 -u root -p 123;(注:u與root之間可以不用加空格,其它也一樣)
3、退出MYSQL命令: exit (回車)
二、修改密碼。
格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼
1、給root加個密碼ab12。首先在DOS下進入目錄mysql\bin,然后鍵入以下命令
mysqladmin -u root -password ab12
注:因為開始時root沒有密碼,所以-p舊密碼一項就可以省略了。
2、再將root的密碼改為djg345。
mysqladmin -u root -p ab12 password djg345
三、增加新用戶。
(注意:和上面不同,下面的因為是MYSQL環境中的命令,所以后面都帶一個分號作為命令結束符)
格式:grant select on 數據庫.* to 用戶名@登錄主機 identified by “密碼”
1、增加一個用戶test1密碼為abc,讓他可以在任何主機上登錄,并對所有數據庫有查詢、插入、修改、刪除的權限。首先用root用戶連入MYSQL,然后鍵入以下命令:
grant select,insert,update,delete on *.* to [email=test1@”%]test1@”%[/email]” Identified by “abc”;
但增加的用戶是十分危險的,你想如某個人知道test1的密碼,那么他就可以在internet上的任何一臺電腦上登錄你的mysql數據庫并對你的數據可以為所欲為了,解決辦法見2。
2、增加一個用戶test2密碼為abc,讓他只可以在localhost上登錄,并可以對數據庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地主機,即MYSQL數據庫所在的那臺主機),
這樣用戶即使用知道test2的密碼,他也無法從internet上直接訪問數據庫,只能通過MYSQL主機上的web頁來訪問了。
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “abc”;
如果你不想test2有密碼,可以再打一個命令將密碼消掉。
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “”;
下篇我是MYSQL中有關數據庫方面的操作。注意:你必須首先登錄到MYSQL中,以下操作都是在MYSQL的提示符下進行的,而且每個命令以分號結束。
一、操作技巧
1、如果你打命令時,回車后發現忘記加分號,你無須重打一遍命令,只要打個分號回車就可以了。
也就是說你可以把一個完整的命令分成幾行來打,完后用分號作結束標志就OK。
2、你可以使用光標上下鍵調出以前的命令。
二、顯示命令
1、顯示當前數據庫服務器中的數據庫列表:
mysql> SHOW DATABASES;
注意:mysql庫里面有MYSQL的系統信息,我們改密碼和新增用戶,實際上就是用這個庫進行操作。
2、顯示數據庫中的數據表:
mysql> USE 庫名;
mysql> SHOW TABLES;
3、顯示數據表的結構:
mysql> DESCRIBE 表名;
4、建立數據庫:
mysql> CREATE DATABASE 庫名;
5、建立數據表:
mysql> USE 庫名;
mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));
6、刪除數據庫:
mysql> DROP DATABASE 庫名;
7、刪除數據表:
mysql> DROP TABLE 表名;
8、將表中記錄清空:
mysql> DELETE FROM 表名;
9、顯示表中的記錄:
mysql> SELECT * FROM 表名;
10、往表中插入記錄:
mysql> INSERT INTO 表名 VALUES (”hyq”,”M”);
11、更新表中數據:
mysql-> UPDATE 表名 SET 字段名1=’a',字段名2=’b’ WHERE 字段名3=’c';
12、用文本方式將數據裝入數據表中:
mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE 表名;
13、導入.sql文件命令:
mysql> USE 數據庫名;
mysql> SOURCE d:/mysql.sql;
14、命令行修改root密碼:
mysql> UPDATE mysql.user SET password=PASSWORD(’新密碼’) WHERE User=’root’;
mysql> FLUSH PRIVILEGES;
15、顯示use的數據庫名:
mysql> SELECT DATABASE();
16、顯示當前的user:
mysql> SELECT USER();
三、一個建庫和建表以及插入數據的實例
drop database if exists school; //如果存在SCHOOL則刪除
create database school; //建立庫SCHOOL
use school; //打開庫SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default ‘深圳’,
year date
); //建表結束
//以下為插入字段
insert into teacher values(”,’allen’,'大連一中’,'1976-10-10′);
insert into teacher values(”,’jack’,'大連二中’,'1975-12-23′);
如果你在mysql提示符鍵入上面的命令也可以,但不方便調試。
(1)你可以將以上命令原樣寫入一個文本文件中,假設為school.sql,然后復制到c:\\下,并在DOS狀態進入目錄[url=file://\\mysql\\bin]\\mysql\\bin[/url],然后鍵入以下命令:
mysql -uroot -p密碼 < c:\\school.sql
如果成功,空出一行無任何顯示;如有錯誤,會有提示。(以上命令已經調試,你只要將//的注釋去掉即可使用)。
(2)或者進入命令行后使用 mysql> source c:\\school.sql; 也可以將school.sql文件導入數據庫中。
四、將文本數據轉到數據庫中
1、文本數據應符合的格式:字段數據之間用tab鍵隔開,null值用[url=file://\\n]\\n[/url]來代替.例:
3 rose 大連二中 1976-10-10
4 mike 大連一中 1975-12-23
假設你把這兩組數據存為school.txt文件,放在c盤根目錄下。
2、數據傳入命令 load data local infile “c:\\school.txt” into table 表名;
注意:你最好將文件復制到[url=file://\\mysql\\bin]\\mysql\\bin[/url]目錄下,并且要先用use命令打表所在的庫。
五、備份數據庫:(命令在DOS的[url=file://\\mysql\\bin]\\mysql\\bin[/url]目錄下執行)
1.導出整個數據庫
導出文件默認是存在mysql\bin目錄下
mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名
mysqldump -u user_name -p123456 database_name > outfile_name.sql
2.導出一個表
mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名
mysqldump -u user_name -p database_name table_name > outfile_name.sql
3.導出一個數據庫結構
mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
-d 沒有數據 –add-drop-table 在每個create語句之前增加一個drop table
4.帶語言參數導出
mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/networld2002/archive/2009/04/23/4103407.aspx



空空 2009-12-04 15:38 發表評論
]]>
windows平臺下Apache2.2+php5+MySQL5+zend的環境搭建配置(轉)http://www.tkk7.com/spark/archive/2009/12/04/304781.html空空空空Fri, 04 Dec 2009 07:35:00 GMThttp://www.tkk7.com/spark/archive/2009/12/04/304781.htmlhttp://www.tkk7.com/spark/comments/304781.htmlhttp://www.tkk7.com/spark/archive/2009/12/04/304781.html#Feedback0http://www.tkk7.com/spark/comments/commentRss/304781.htmlhttp://www.tkk7.com/spark/services/trackbacks/304781.html
網上已經有很多此類文章了,但我在CSDN仍看到不少新人為此問題困擾。
 
1.便捷方法:裝一體化環境,如果你并非打算深入,或者剛入門。則可以先用一體化環境來配置。優點是下完安裝即可使用,1分鐘就能搞定。如果原來系統中裝有IIS,則把端口設為 81或者其他非80端口。(以下皆為apache+php+mysql+zend)
 
  1> php4的一體化環境
http://www.onlinedown.net/soft/22078.htm
 
  2> php5的一體化環境
http://www.onlinedown.net/soft/42567.htm
 
2.如果你需要一個較為穩健而功能強勁的配置環境,則參看以下。本文采用最新版本的php、apache、mysql、zend。
 
其實,因為網上很多文章其實也沒什么錯,但有些細節的地方有問題。特別是在apache2.2.4與php5模塊化安裝的整合上。
 
先準備安裝文件,幾個安裝文件我用華軍軟件園的下載地址,大家放心下:
 
apache2.2.4
最新版http://www.onlinedown.net/soft/11528.htm
發帖時最新版http://ytcnc.onlinedown.net/down/apache_2.2.4-win32-x86-no_ssl.zip
 
php5.2.3
 
 
-----------------------------------------------------------------------
 
1.安裝apache2.2.4至某個目錄比如我的是D:"apache2
2.解壓php5到D:"apache2"php5目錄下
3.安裝mysql5到D:"apache2"mysql目錄下
 
4.配置apache
 1)打開d:"apache2"conf目錄下的httpd.conf文件。
 2)apache httpd.conf設置
  A.網站主目錄設置:搜索DocumentRoot "D:/apache2/htdocs"
  修改引號中的地址,為apache網頁主目錄。也就是http://localhost:端口號的目錄。
  B.端口設置:搜索 listen,改為 Listen 81(此例中以81為端口)。如不裝IIS可保留默認值為80。設為81,則主頁為 http://localhost:81 否則為http://localhost
  C.加載php5模塊化安裝:搜索Loadmodule,在后面加一行:
LoadModule php5_module d:/apache2/php/php5apache2_2.dll
 
(這里是很多網上攻略出錯的地方,apache2.2版本以下一般為
LoadModule php5_module d:/apache2/php/php5apache2.dll
apache2.2以上的版本則不行。更有甚者,竟然把php5apache2.dll改寫成支持apache2.2的了,牛是很牛了,但不知道中國搞技術的到底是怎么了,都懶得自主思考,一點懷疑精神都沒有。)
  
  D. php格式解析
   搜索 addType application在后面加一行:
   AddType application/x-httpd-php .php
  
  E.字符集

  搜索 AddDefaultCharset ISO-8859-1 將其改為

  AddDefaultCharset GB2312

5.配置php

  至D:"apache2"php目錄下,把 php.ini-dist或php.ini-recommended拷貝至c:"windows目錄下,改名為php.ini??截怐:"apache2"php目錄下的php5ts.dll,libmysql.dll至C:"windows"system32目錄下
 
   配置php.ini
   A.找到extension_dir設置為 "d:"apache2"php"ext"絕對路徑,否則有些環境中會出錯。
    
   b.打開功能擴展
搜索以下行,把前面的分號刪除。比如
“;extension=php_mysql.dll”改為“extension=php_mysql.dll

#下面兩行為mysql5必備,記得php_mysqli.dll必須加載,否則連不上。
extension=php_mysql.dll  
extension=php_mysqli.dll
 
#php連sql server,有用到的就設置一下
extension=php_mssql.dll

#curl功能擴展,想用php寫些腳本處理遠程服務期的響應消息的可以打開
extension=php_curl.dll
 
#GD庫安裝,此功能打開可用數據庫以二進制存儲圖片
extension=php_gd2.dll
 
#東亞語系必備,增加字符處理速度
extension=php_mbstring.dll
 
   C.實用功能自定義配置
 
#session的存儲目錄。如果有內存虛擬硬盤,可以把用到的暫存處理目錄都設置到
內存虛擬盤中進一步提高服務器響應速度。
   session.save_path = D:/apache2/htdocs/php_session 
 
#這個是每個腳本運行的最長時間,可以自己修改加長,單位秒
max_execution_time = 30

#這是每個腳本可以消耗的時間,單位也是秒
max_input_time = 60

#這個是腳本運行最大消耗的內存,最好設為16M以上,有的程序要求,比如openads

memory_limit = 16M

#上載文件的最大許可大小,一般post大小>upload_max_filesize。比如我的設置:

post_max_size = 300M

upload_max_filesize = 250M

6.至此,配置完成大半。

mysql與zend只要按需安裝即可。裝完后重啟apache服務器即可。

7.最后推薦個好東西,apache的monitor.exe,可以控制apache、myql、IIS、sql server等服務器開關。好東西,我找了挺久的。感謝原作者,抱歉忘了大名

http://www.1thz.cn/apachemonitor.exe

  
8.如果您對服務器性能要求很高,我這里推薦您一個非常棒的平臺組合。lighttpd可以取代apache,更輕,性能更優秀。 PostPre SQL 取代 Mysql,極其強大的開源數據庫,完全滿足企業商務級數據庫需求。


空空 2009-12-04 15:35 發表評論
]]>
使用dom4j的xPath解析XML(轉)http://www.tkk7.com/spark/archive/2009/10/19/298855.html空空空空Mon, 19 Oct 2009 07:11:00 GMThttp://www.tkk7.com/spark/archive/2009/10/19/298855.htmlhttp://www.tkk7.com/spark/comments/298855.htmlhttp://www.tkk7.com/spark/archive/2009/10/19/298855.html#Feedback0http://www.tkk7.com/spark/comments/commentRss/298855.htmlhttp://www.tkk7.com/spark/services/trackbacks/298855.html <?xml version="1.0" encoding="UTF-8"?>
<books>
    <!--This is a test for dom4j, jakoes, 2007.7.19-->
    <book show="yes" url="lucene.net">
        <title id="456">Lucene Studing</title>
    </book>
    <book show="yes" url="dom4j.com">
        <title id="123">Dom4j Tutorials</title>
    </book>
    <book show="no" url="spring.org">
        <title id="789">Spring in Action</title>
    </book>
    <owner>O'Reilly</owner>
</books>

下面我們使用dom4j的xPath來解析:

segment of ParseXML.java:

    public void parseBooks(){
       
        SAXReader reader = new SAXReader();
        try {
            Document doc = reader.read("books.xml");
            Node root = doc.selectSingleNode("/books");
            List list = root.selectNodes("book[@url='dom4j.com']");
           
            for(Object o:list){
               
                Element e = (Element) o;
                String show=e.attributeValue("show");
                System.out.println("show = " + show);
            }
          
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

  Document doc = reader.read("books.xml");的意思是加載XML文檔,此是可以用doc.asXML()來查看,它將打印整個xml文檔。

  Node root = doc.selectSingleNode("/books");是讀取剛才加載的xml文檔內的books節點下的所有內容,對于本例也是整個xml文檔。
  當然我們也可以加載/books下的某一個節點,如:book節點
Node
root = doc.selectSingleNode("/books/book");
或:
Node root = doc.selectSingleNode("/books/*");
注意:如果有多個book節點,它只會讀取第一個
root.asXML()將打印:
<book show="yes" url="lucene.net">
        <title id="456">Lucene Studing</title>
</book>

  既然加載了這么多,那我怎么精確的得到我想要的節點呢,別急,看下面:
List list = root.selectNodes("book[@url='dom4j.com']");
它的意思就是讀取books節點下的
book節點,且book的節點的url屬性為dom4j.com
為什么使用list來接收呢,如果有兩個book節點,且它們的url屬性都為dom4j.com,此時就封閉到list里了。

  如果想讀取books下的所有book節點,可以這樣:
List list = root.selectNodes("book");

  如果想讀取books節點下的book節點下的title節點,可以這樣:
List list2 = root.selectNodes("book[@url='dom4j.com']/title[@id='123']");

  注意:
selectNodes()參數的格式:
  節點名[@屬性名='屬性值'],如:
book[@url='dom4j.com']
  如果有多個節點,用“/”分開,如:
book[@url='dom4j.com']/title[@id='123']

  最近就是讀取封閉在List里的內容了,可以用Node來讀取,也可以用Element來轉換。
attributeValue("屬性")是讀取該節點的屬性值
getText()是讀取節點的的內容。


空空 2009-10-19 15:11 發表評論
]]>
讀取struts配置文件的路徑問題http://www.tkk7.com/spark/archive/2009/09/28/296776.html空空空空Mon, 28 Sep 2009 06:39:00 GMThttp://www.tkk7.com/spark/archive/2009/09/28/296776.htmlhttp://www.tkk7.com/spark/comments/296776.htmlhttp://www.tkk7.com/spark/archive/2009/09/28/296776.html#Feedback0http://www.tkk7.com/spark/comments/commentRss/296776.htmlhttp://www.tkk7.com/spark/services/trackbacks/296776.html
一個是web.xml文件中的struts配置文件路徑的寫法問題,解決辦法是在struts配置文件路徑前加上"/"
<init-param>
   <param-name>config</param-name>
   <param-value>/struts_test.xml</param-value>
  </init-param>
拋的異常如下:
2009-9-28 13:33:53 org.apache.struts.action.ActionServlet handleConfigException
嚴重: Parsing error processing resource path struts_test.xml
java.net.MalformedURLException: Path struts_test.xml does not start with a "/" c
haracter
        at org.apache.catalina.core.ApplicationContext.getResource(ApplicationCo
ntext.java:473)


一個是web.xml中的struts文件的路徑,struts配置文件應該是放在class目錄下,比如src的根目錄下,
配置就是<param-value>/struts_test.xml</param-value>,而不是WEB-INF中的路徑。

嚴重:   Servlet   /Message   threw   load()   exception
javax.servlet.UnavailableException:   Missing   configuration   resource   for   path   /WEB-INF/struts-config.xml
at   org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:732)
at   org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:687)
at   org.apache.struts.action.ActionServlet.init(ActionServlet.java:333)


空空 2009-09-28 14:39 發表評論
]]>
java 實現ftp上傳下載(轉)http://www.tkk7.com/spark/archive/2009/09/22/295975.html空空空空Tue, 22 Sep 2009 03:02:00 GMThttp://www.tkk7.com/spark/archive/2009/09/22/295975.htmlhttp://www.tkk7.com/spark/comments/295975.htmlhttp://www.tkk7.com/spark/archive/2009/09/22/295975.html#Feedback5http://www.tkk7.com/spark/comments/commentRss/295975.htmlhttp://www.tkk7.com/spark/services/trackbacks/295975.html

package com.why.ftp;     
    
import java.io.DataInputStream;     
import java.io.File;     
import java.io.FileInputStream;     
import java.io.FileOutputStream;     
import java.io.IOException;     
import java.io.OutputStream;     
import java.util.ArrayList;     
import java.util.List;     
import java.util.StringTokenizer;     
import sun.net.TelnetInputStream;     
import sun.net.TelnetOutputStream;     
import sun.net.ftp.FtpClient;     
    
/**   
 * ftp上傳,下載   
 * @author why 2009-07-30   
 *   
 */    
public class FtpUtil {     
    
    private String ip = "";     
    
    private String username = "";     
    
    private String password = "";     
    
    private int port = -1;     
    
    private String path = "";     
    
    FtpClient ftpClient = null;     
    
    OutputStream os = null;     
    
    FileInputStream is = null;     
    
    public FtpUtil(String serverIP, String username, String password) {     
        this.ip = serverIP;     
        this.username = username;     
        this.password = password;     
    }     
         
    public FtpUtil(String serverIP, int port, String username, String password) {     
        this.ip = serverIP;     
        this.username = username;     
        this.password = password;     
        this.port = port;     
    }     
    
    /**   
     * 連接ftp服務器   
     *    
     * @throws IOException   
     */    
    public boolean connectServer(){     
        ftpClient = new FtpClient();     
        try {     
            if(this.port != -1){     
                    ftpClient.openServer(this.ip,this.port);     
            }else{     
                ftpClient.openServer(this.ip);     
            }     
            ftpClient.login(this.username, this.password);     
            if (this.path.length() != 0){     
                ftpClient.cd(this.path);// path是ftp服務下主目錄的子目錄                
            }     
            ftpClient.binary();// 用2進制上傳、下載     
            System.out.println("已登錄到\"" + ftpClient.pwd() + "\"目錄");     
            return true;     
        }catch (IOException e){     
            e.printStackTrace();     
            return false;     
        }     
    }     
         
    /**   
     * 斷開與ftp服務器連接   
     *    
     * @throws IOException   
     */    
    public boolean closeServer(){     
        try{     
            if (is != null) {     
                is.close();     
            }     
            if (os != null) {     
                os.close();     
            }     
            if (ftpClient != null) {     
                ftpClient.closeServer();     
            }     
            System.out.println("已從服務器斷開");     
            return true;     
        }catch(IOException e){     
            e.printStackTrace();     
            return false;     
        }     
    }     
         
    /**   
     * 檢查文件夾在當前目錄下是否存在   
     * @param dir   
     * @return   
     */    
     private boolean isDirExist(String dir){     
         String pwd = "";     
         try {     
             pwd = ftpClient.pwd();     
             ftpClient.cd(dir);     
             ftpClient.cd(pwd);     
         }catch(Exception e){     
             return false;     
         }     
         return true;      
     }     
         
    /**   
     * 在當前目錄下創建文件夾   
     * @param dir   
     * @return   
     * @throws Exception   
     */    
     private boolean createDir(String dir){     
         try{     
            ftpClient.ascii();     
            StringTokenizer s = new StringTokenizer(dir, "/"); //sign     
            s.countTokens();     
            String pathName = ftpClient.pwd();     
            while(s.hasMoreElements()){     
                pathName = pathName + "/" + (String) s.nextElement();     
                try {     
                    ftpClient.sendServer("MKD " + pathName + "\r\n");     
                } catch (Exception e) {     
                    e = null;     
                    return false;     
                }     
                ftpClient.readServerResponse();     
            }     
            ftpClient.binary();     
            return true;     
        }catch (IOException e1){     
            e1.printStackTrace();     
            return false;     
        }     
     }     
          
     /**   
      * ftp上傳   
      * 如果服務器段已存在名為filename的文件夾,該文件夾中與要上傳的文件夾中同名的文件將被替換   
      *    
      * @param filename 要上傳的文件(或文件夾)名   
      * @return   
      * @throws Exception   
      */    
    public boolean upload(String filename){     
        String newname = "";     
        if(filename.indexOf("/") > -1){     
            newname = filename.substring(filename.lastIndexOf("/") + 1);     
        }else{     
            newname = filename;     
        }     
        return upload(filename, newname);     
    }     
          
     /**   
      * ftp上傳   
      * 如果服務器段已存在名為newName的文件夾,該文件夾中與要上傳的文件夾中同名的文件將被替換   
      *    
      * @param fileName 要上傳的文件(或文件夾)名   
      * @param newName 服務器段要生成的文件(或文件夾)名   
      * @return   
      */    
     public boolean upload(String fileName, String newName){     
         try{     
             String savefilename = new String(fileName.getBytes("ISO-8859-1"), "GBK");      
             File file_in = new File(savefilename);//打開本地待長傳的文件     
             if(!file_in.exists()){     
                 throw new Exception("此文件或文件夾[" + file_in.getName() + "]有誤或不存在!");     
             }     
             if(file_in.isDirectory()){     
                 upload(file_in.getPath(),newName,ftpClient.pwd());     
             }else{     
                 uploadFile(file_in.getPath(),newName);     
             }     
                  
             if(is != null){     
                 is.close();     
             }     
             if(os != null){     
                 os.close();     
             }     
             return true;     
         }catch(Exception e){      
                e.printStackTrace();      
                System.err.println("Exception e in Ftp upload(): " + e.toString());      
                return false;     
         }finally{     
             try{     
                 if(is != null){     
                     is.close();     
                 }     
                 if(os != null){      
                     os.close();      
                 }     
             }catch(IOException e){     
                 e.printStackTrace();     
            }      
         }     
     }     
          
     /**   
      * 真正用于上傳的方法   
      * @param fileName   
      * @param newName   
      * @param path   
      * @throws Exception   
      */    
     private void upload(String fileName, String newName,String path) throws Exception{     
             String savefilename = new String(fileName.getBytes("ISO-8859-1"), "GBK");      
             File file_in = new File(savefilename);//打開本地待長傳的文件     
             if(!file_in.exists()){     
                 throw new Exception("此文件或文件夾[" + file_in.getName() + "]有誤或不存在!");     
             }     
             if(file_in.isDirectory()){     
                 if(!isDirExist(newName)){     
                     createDir(newName);     
                 }     
                 ftpClient.cd(newName);     
                 File sourceFile[] = file_in.listFiles();     
                 for(int i = 0; i < sourceFile.length; i++){     
                     if(!sourceFile[i].exists()){     
                         continue;     
                     }     
                     if(sourceFile[i].isDirectory()){     
                         this.upload(sourceFile[i].getPath(),sourceFile[i].getName(),path+"/"+newName);     
                     }else{     
                         this.uploadFile(sourceFile[i].getPath(),sourceFile[i].getName());     
                      }     
                    }     
             }else{     
                 uploadFile(file_in.getPath(),newName);     
             }     
             ftpClient.cd(path);     
     }     
    
    /**   
     *  upload 上傳文件   
     *    
     * @param filename 要上傳的文件名   
     * @param newname 上傳后的新文件名   
     * @return -1 文件不存在 >=0 成功上傳,返回文件的大小   
     * @throws Exception   
     */    
    public long uploadFile(String filename, String newname) throws Exception{     
        long result = 0;     
        TelnetOutputStream os = null;     
        FileInputStream is = null;     
        try {     
            java.io.File file_in = new java.io.File(filename);     
            if(!file_in.exists())     
                return -1;     
            os = ftpClient.put(newname);     
            result = file_in.length();     
            is = new FileInputStream(file_in);     
            byte[] bytes = new byte[1024];     
            int c;     
            while((c = is.read(bytes)) != -1){     
                os.write(bytes, 0, c);     
            }     
        }finally{     
            if(is != null){     
                is.close();     
            }     
            if(os != null){     
                os.close();     
            }     
        }     
        return result;     
    }     
    
    /**   
     * 從ftp下載文件到本地   
     *    
     * @param filename 服務器上的文件名   
     * @param newfilename 本地生成的文件名   
     * @return   
     * @throws Exception   
     */    
    public long downloadFile(String filename, String newfilename){     
        long result = 0;     
        TelnetInputStream is = null;     
        FileOutputStream os = null;     
        try{     
            is = ftpClient.get(filename);     
            java.io.File outfile = new java.io.File(newfilename);     
            os = new FileOutputStream(outfile);     
            byte[] bytes = new byte[1024];     
            int c;     
            while ((c = is.read(bytes)) != -1) {     
                os.write(bytes, 0, c);     
                result = result + c;     
            }     
        }catch (IOException e){     
            e.printStackTrace();     
        }finally{     
            try {     
                if(is != null){     
                        is.close();     
                }     
                if(os != null){     
                    os.close();     
                }     
            } catch (IOException e) {     
                e.printStackTrace();     
            }     
        }     
        return result;     
    }     
    
    /**   
     * 取得相對于當前連接目錄的某個目錄下所有文件列表   
     *    
     * @param path   
     * @return   
     */    
    public List getFileList(String path){     
        List list = new ArrayList();     
        DataInputStream dis;     
        try {     
            dis = new DataInputStream(ftpClient.nameList(this.path + path));     
            String filename = "";     
            while((filename = dis.readLine()) != null){     
                list.add(filename);     
            }     
        } catch (IOException e) {     
            e.printStackTrace();     
        }     
        return list;     
    }     
    
         
    
    public static void main(String[] args){     
        FtpUtil ftp = new FtpUtil("133.224.202.2","tstbill","tstbill");     
        ftp.connectServer();     
        boolean result = ftp.upload("C:/test_why", "test_why/test");     
        System.out.println(result?"上傳成功!":"上傳失?。?);     
        List list = ftp.getFileList("test_why/test");     
        for(int i=0;i<list.size();i++){     
            String name = list.get(i).toString();     
            System.out.println(name);     
        }     
        ftp.closeServer();     
        /**   
        FTP遠程命令列表   
        USER    PORT    RETR    ALLO    DELE    SITE    XMKD    CDUP    FEAT   
        PASS    PASV    STOR    REST    CWD     STAT    RMD     XCUP    OPTS   
        ACCT    TYPE    APPE    RNFR    XCWD    HELP    XRMD    STOU    AUTH   
        REIN    STRU    SMNT    RNTO    LIST    NOOP    PWD     SIZE    PBSZ   
        QUIT    MODE    SYST    ABOR    NLST    MKD     XPWD    MDTM    PROT   
        在服務器上執行命令,如果用sendServer來執行遠程命令(不能執行本地FTP命令)的話,所有FTP命令都要加上\r\n   
        ftpclient.sendServer("XMKD /test/bb\r\n"); //執行服務器上的FTP命令   
        ftpclient.readServerResponse一定要在sendServer后調用   
        nameList("/test")獲取指目錄下的文件列表   
        XMKD建立目錄,當目錄存在的情況下再次創建目錄時報錯   
        XRMD刪除目錄   
        DELE刪除文件   
         */    
    }     
    
}  


下面是FtpClient類的一些介紹:

sun.net.ftp.FtpClient.,該類庫主要提供了用于建立FTP連接的類。利用這些類的方法,編程人員可以遠程登錄到FTP服務器,列舉該服務器上的目錄,設置傳輸協議,以及傳送文件。FtpClient類涵蓋了幾乎所有FTP的功能,FtpClient的實例變量保存了有關建立"代理"的各種信息。下面給出了這些實例變量:

  public static boolean useFtpProxy
  這個變量用于表明FTP傳輸過程中是否使用了一個代理,因此,它實際上是一個標記,此標記若為TRUE,表明使用了一個代理主機。

  public static String ftpProxyHost
  此變量只有在變量useFtpProxy為TRUE時才有效,用于保存代理主機名。

  public static int ftpProxyPort
  此變量只有在變量useFtpProxy為TRUE時才有效,用于保存代理主機的端口地址。

  FtpClient有三種不同形式的構造函數,如下所示:

  1、public FtpClient(String hostname,int port)
   此構造函數利用給出的主機名和端口號建立一條FTP連接。

  2、public FtpClient(String hostname)
  此構造函數利用給出的主機名建立一條FTP連接,使用默認端口號。

  3、FtpClient()
  此構造函數將創建一FtpClient類,但不建立FTP連接。這時,FTP連接可以用openServer方法建立。

  一旦建立了類FtpClient,就可以用這個類的方法來打開與FTP服務器的連接。類ftpClient提供了如下兩個可用于打開與FTP服務器之間的連接的方法。

  public void openServer(String hostname)
  這個方法用于建立一條與指定主機上的FTP服務器的連接,使用默認端口號。

  public void openServer(String host,int port)
  這個方法用于建立一條與指定主機、指定端口上的FTP服務器的連接。

  打開連接之后,接下來的工作是注冊到FTP服務器。這時需要利用下面的方法。

  public void login(String username,String password)
  此方法利用參數username和password登錄到FTP服務器。使用過Intemet的用戶應該知道,匿名FTP服務器的登錄用戶名為anonymous,密碼一般用自己的電子郵件地址。

  下面是FtpClient類所提供的一些控制命令。

  public void cd(String remoteDirectory):該命令用于把遠程系統上的目錄切換到參數remoteDirectory所指定的目錄。
  public void cdUp():該命令用于把遠程系統上的目錄切換到上一級目錄。
  public String pwd():該命令可顯示遠程系統上的目錄狀態。
  public void binary():該命令可把傳輸格式設置為二進制格式。
  public void ascii():該命令可把傳輸協議設置為ASCII碼格式。
  public void rename(String string,String string1):該命令可對遠程系統上的目錄或者文件進行重命名操作。

  除了上述方法外,類FtpClient還提供了可用于傳遞并檢索目錄清單和文件的若干方法。這些方法返回的是可供讀或寫的輸入、輸出流。下面是其中一些主要的方法。

  public TelnetInputStream list()
  返回與遠程機器上當前目錄相對應的輸入流。

  public TelnetInputStream get(String filename)
  獲取遠程機器上的文件filename,借助TelnetInputStream把該文件傳送到本地。

  public TelnetOutputStream put(String filename)
  以寫方式打開一輸出流,通過這一輸出流把文件filename傳送到遠程計算機



空空 2009-09-22 11:02 發表評論
]]>
javax.naming.NameNotFoundException: Name jdbc is not bound in this Contexthttp://www.tkk7.com/spark/archive/2009/09/08/294339.html空空空空Tue, 08 Sep 2009 09:47:00 GMThttp://www.tkk7.com/spark/archive/2009/09/08/294339.htmlhttp://www.tkk7.com/spark/comments/294339.htmlhttp://www.tkk7.com/spark/archive/2009/09/08/294339.html#Feedback0http://www.tkk7.com/spark/comments/commentRss/294339.htmlhttp://www.tkk7.com/spark/services/trackbacks/294339.html 啟動的時候報錯(在項目目錄下,在tomcat中配置context指向項目目錄就沒問題,打包發布到
tomcat就報錯了),拋的異常是:
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context

在web.xml中添加配置如下:
<resource-ref>
  <description>DB Connection</description>
  <res-ref-name>jdbc/test</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>


空空 2009-09-08 17:47 發表評論
]]>
Seam中的transaction配置問題http://www.tkk7.com/spark/archive/2009/09/07/294203.html空空空空Mon, 07 Sep 2009 09:46:00 GMThttp://www.tkk7.com/spark/archive/2009/09/07/294203.htmlhttp://www.tkk7.com/spark/comments/294203.htmlhttp://www.tkk7.com/spark/archive/2009/09/07/294203.html#Feedback1http://www.tkk7.com/spark/comments/commentRss/294203.htmlhttp://www.tkk7.com/spark/services/trackbacks/294203.html 需要在components.xml 中設置一下transaction,先引入命名空間:
 xmlns:transaction="http://jboss.com/products/seam/transaction"
 http://jboss.com/products/seam/transaction http://jboss.com/products/seam/transaction-2.0.xsd

再添加下列設置:
 <core:init transaction-management-enabled="false"/>
 <transaction:no-transaction />

報的異常如下:
ERROR SeamPhaseListener:120 - uncaught exception
java.lang.IllegalStateException: Could not start transaction
at org.jboss.seam.jsf.SeamPhaseListener.begin(SeamPhaseListener.java:592)
at org.jboss.seam.jsf.SeamPhaseListener.handleTransactionsBeforePhase(SeamPhaseListener.java:323)
at org.jboss.seam.jsf.SeamPhaseListener.beforeServletPhase(SeamPhaseListener.java:140)
at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:114)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:222)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.UnsupportedOperationException: no transaction
at org.jboss.seam.transaction.NoTransaction.begin(NoTransaction.java:36)
at org.jboss.seam.jsf.SeamPhaseListener.begin(SeamPhaseListener.java:587)
... 37 more
11:11:07,671 ERROR SeamPhaseListener:127 - swallowing exception



空空 2009-09-07 17:46 發表評論
]]>
faces-config.xml格式問題http://www.tkk7.com/spark/archive/2009/09/03/293715.html空空空空Thu, 03 Sep 2009 03:13:00 GMThttp://www.tkk7.com/spark/archive/2009/09/03/293715.htmlhttp://www.tkk7.com/spark/comments/293715.htmlhttp://www.tkk7.com/spark/archive/2009/09/03/293715.html#Feedback0http://www.tkk7.com/spark/comments/commentRss/293715.htmlhttp://www.tkk7.com/spark/services/trackbacks/293715.html <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config
PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
                            "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>

問題如下:

嚴重: Parse Error at line 2 column 14: Document is invalid: no grammar found.
org.xml.sax.SAXParseException: Document is invalid: no grammar found.
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSA
ParseException(ErrorHandlerWrapper.java:236)
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Er
orHandlerWrapper.java:172)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError
XMLErrorReporter.java:382)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError
XMLErrorReporter.java:316)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.sca
StartElement(XMLNSDocumentScannerImpl.java:177)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSC
ntentDispatcher.scanRootElementHook(XMLNSDocumentScannerImpl.java:779)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerIm
l$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1794)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerIm
l.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(
ML11Configuration.java:834)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(
ML11Configuration.java:764)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser
java:148)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(A
stractSAXParser.java:1242)
        at org.apache.commons.digester.Digester.parse(Digester.java:1572)
        at org.apache.myfaces.config.impl.digester.DigesterFacesConfigUnmarshal
erImpl.getFacesConfig(DigesterFacesConfigUnmarshallerImpl.java:183)
        at org.apache.myfaces.config.FacesConfigurator.feedClassloaderConfigura
ions(FacesConfigurator.java:251)
        at org.apache.myfaces.config.FacesConfigurator.configure(FacesConfigura
or.java:129)
        at org.apache.myfaces.webapp.StartupServletContextListener.initFaces(St
rtupServletContextListener.java:69)
        at org.apache.myfaces.webapp.StartupServletContextListener.contextIniti
lized(StartupServletContextListener.java:52)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardConte
t.java:3764)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:
216)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBas
.java:760)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:7
0)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544

        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825

        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:71
)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:49
)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.jav
:311)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecyc
eSupport.java:120)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022

        at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014

        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:44
)
        at org.apache.catalina.core.StandardService.start(StandardService.java:
48)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:70
)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcce
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)



空空 2009-09-03 11:13 發表評論
]]>
Oracle域用戶安裝http://www.tkk7.com/spark/archive/2009/09/02/293641.html空空空空Wed, 02 Sep 2009 10:01:00 GMThttp://www.tkk7.com/spark/archive/2009/09/02/293641.htmlhttp://www.tkk7.com/spark/comments/293641.htmlhttp://www.tkk7.com/spark/archive/2009/09/02/293641.html#Feedback0http://www.tkk7.com/spark/comments/commentRss/293641.htmlhttp://www.tkk7.com/spark/services/trackbacks/293641.html問題:
如果在域中安裝Oracle 10G,

在DataBase Configuration Assisant安裝的時候,會報一個錯誤,提示:


ORA-24324:未初始化服務句柄
ORA-24323:不允許此值
ORA-28547:連接服務器失敗,可能是Oracle Net管理錯誤


這是因為,用域用戶登錄主機時,Oracle會把主機在域當中的名字當作Host名。

解決辦法:

1.將sqlnet.ora文件中的
SQLNET_AUTHENTICATION_SERVICES= (NTS) 修改為 SQLNET_AUTHENTICATION_SERVICES= (NONE)


2.將listener.ora文件中LISTENER配置節中的主機名用IP地址代替
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

重新安裝即可



空空 2009-09-02 18:01 發表評論
]]>
主站蜘蛛池模板: 亚洲欧洲日产韩国在线| 亚洲日韩乱码久久久久久| 4hu四虎免费影院www| 一本岛高清v不卡免费一三区| 亚洲国产精品成人网址天堂| 亚洲网站免费观看| 国产综合免费精品久久久| 成年免费大片黄在线观看岛国| 久久亚洲精品中文字幕三区| 黄色网址在线免费观看| 国产h视频在线观看网站免费| 亚洲综合久久成人69| 国产成人免费ā片在线观看| 亚洲精品二三区伊人久久| 一区二区三区福利视频免费观看| 亚洲三区在线观看无套内射| 国产精品偷伦视频免费观看了 | 在线观看亚洲精品国产| 免费的黄网站男人的天堂| 国产一级高清免费观看| 亚洲aⅴ天堂av天堂无码麻豆| 成人一a毛片免费视频| 亚洲精品午夜视频| 亚洲精品偷拍视频免费观看| 成人嫩草影院免费观看| 亚洲精品你懂的在线观看 | 99热免费在线观看| 久久精品国产亚洲77777| 午夜视频免费在线观看| 香港经典a毛片免费观看看| 亚洲日本在线观看网址| 国产亚洲一区二区三区在线观看| 日韩一级视频免费观看| 国产精品免费久久| 午夜亚洲WWW湿好爽| 亚洲人成网站在线观看播放动漫| 天天天欲色欲色WWW免费| 91高清免费国产自产| 亚洲日韩av无码中文| 国产一卡二卡≡卡四卡免费乱码| 黄页网站免费观看|