konhon

          忘掉過去,展望未來。找回自我,超越自我。
          逃避不一定躲的過, 面對不一定最難過, 孤單不一定不快樂, 得到不一定能長久, 失去不一定不再擁有, 可能因為某個理由而傷心難過, 但我卻能找個理由讓自己快樂.

          Google

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            203 Posts :: 0 Stories :: 61 Comments :: 0 Trackbacks

          #

          連接oracle數據庫的各種oracle jdbc驅動程序的細節。
          這些細節包括:
          1、導入jdbc包
          2、注冊oracle jdbc驅動程序
          3、打開數據庫連接
          4、執行sql dml語句在數據庫表中獲取、添加、修改和刪除行

          一、jdbc驅動程序
          共有有4種
          1、thin驅動程序
          thin驅動程序是所有驅動程序中資源消耗最小的,而且完全用java編寫的。
          該驅動程序只使用tcp/ip且要求oracle net。被稱為第4類驅動程序。
          它使用ttc協議與oracle數據庫進行通信。能夠在applet、application中使用。
          2、oci驅動程序
          oci驅動比thin需要資源要多,但性能通常好一點。oci驅動適合于部署在
          中間層的軟件,如web服務器。不能在applet中使用oci驅動。是第2類驅動程序。
          不完全用java寫的,還包含了c代碼。該驅動有許多附加的性能增強特性,
          包括高級的連接緩沖功能。
          注意:oci驅動要求在客戶計算機上安裝它。
          3、服務器內部驅動程序
          服務器內部驅動程序提供對數據庫的直接訪問,oracle jvm使用它與數據庫進行通信。
          oracle jvm是與數據庫集成的java virtual machine,可以使用oracle jvm將
          java類裝載進數據庫,然后公布和運行這個類中包含的方法。
          4、服務器thin驅動程序
          服務器端thin驅動程序也是由oracle jvm使用的,它提供對遠程數據庫的訪問。
          也是完全用java編寫的。


          二、導入jdbc包
          三、注冊oracle jdbc驅動程序
          必須先向java程序注冊oracle jdbc驅動程序,然后才能打開數據庫連接。
          有兩種注冊oracle jdbc驅動程序的辦法。
          1、使用java.lang.class的forname()方法
          例子:class.forname(oracle.jdbc.oracledriver);
          2、使用jdbc drivermanager類的registerdriver()方法。
          例子:drivermanager.registerdriver(new oracle.jdbc.oracledriver());
          如果使用oracle8i jdbc驅動程序,那么需要導入oracle.jdbc.driver.oracledriver類,
          然后注冊這個類的實例。
          例子:
          import oracle.jdbc.driver.oracledriver;
          drivermanager.registerdriver(new oracle.jdbc.oracledriver());
          注意:從jdbc2.0開始,只用jdbc驅動程序的更標準辦法是通過數據源。
          四、打開數據庫連接
          必須先打開數據庫連接,然后才能在java程序中執行sql語句。打開數據庫連接
          的主要辦法。
          1、drivermanager類的getconnection()方法。
          drivermanager.getconnection(url,username,passwrod);
          url:程序要連接的數據庫,以及要使用的jdbc驅動程序
          url的結構依賴于jdbc驅動程序的生產商。對于oracle jdbc驅動程序,數據庫url的結構:

          driver_name是程序使用的oracle jdbc驅動程序的名稱。如:
          jdbc:oracle:thin oracle jdbc thin驅動程序
          jdbc:oracle:oci oracle jdbc oci驅動程序
          jdbc:oracle:oci8 oracle jdbc oci驅動程序
          driver_information是連接數據庫所需的驅動程序特有的信息。這依賴于使用的驅動程序。
          對于oracle jdbc thin驅動程序,可以用
          host_name:port:database_sid 或者 oracle net關鍵字-值對
          (description=(address=(host=host_name)(protocol=tcp)(port=port()
          (connect_data=(sid=database_sid)))
          host_name: 運行數據庫的機器的名稱
          port: net數據庫監聽器等待這個端口上的請求,默認是1521
          database_sid: 要連接的數據庫實例的oracle sid。
          username: 程序連接數據庫時使用的數據庫用戶名
          passwrod: 用戶名的口令
          例子:
          connection myconnection=drivermanager.getconnection(
          jdbc:oracle:thin:@localhost:1521:orcl,
          store_user,
          store_password);
          connection myconnection=drivermanager.getconnection(
          jdbc:oracle:oci:@(description=(address=(host=localhost)
          (protocol=tcp)(port=1521))(connect_data=(sid=orcl))),
          store_user,
          store_password);
          2、使用oracle數據源對象,必須先創建這個對象,然后連接它。使用這種方法
          采用了一種設置數據庫連接信息的標準化方式,oracle數據源對象可以與
          java naming and directory interface(java名字與目錄接口,jndi)一起使用。

          posted @ 2006-03-21 07:18 konhon 優華 閱讀(942) | 評論 (0)編輯 收藏

          需要在你的web.xml中定義如下:

          ??? <servlet>
          ??????? <servlet-name>jsp</servlet-name>
          ??????? <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
          ??????? <init-param>
          ??????????? <param-name>fork</param-name>
          ??????????? <param-value>false</param-value>
          ??????? </init-param>
          ??????? <init-param>
          ??????????? <param-name>xpoweredBy</param-name>
          ??????????? <param-value>false</param-value>
          ??????? </init-param>
          ??????? <load-on-startup>3</load-on-startup>
          ??? </servlet>

          ??? <servlet-mapping>
          ??????? <servlet-name>jsp</servlet-name>
          ??????? <url-pattern>*.jsm</url-pattern>
          ??? </servlet-mapping>

          posted @ 2006-03-21 05:37 konhon 優華 閱讀(650) | 評論 (0)編輯 收藏

          我的主頁在自設的目錄里如??e:/mysite/??
          我想用tomcat作為服務器??
          鍵入http://127.0.0.1就顯示我在??e:/mysite/??下的index.jsp文件??
          而不是諸如??http://127.0.0.1/site/??
          請問如何設置??
          ---------------------------------------------------------------??
          ?
          分2步:??
          ???1??把你的tomcat端口改為80??
          ???2。把你的文件放到webapps目錄下的ROOT目錄下,最好先把原來的文件備份一下,再刪除??
          ?????????或者做個在tomcat上做虛擬主機,目錄就可以隨便設??
          ---------------------------------------------------------------??
          ?
          修改??
          tomcat_home/conf/server.xml??
          ?
          將??
          <Connector??className="org.apache.coyote.tomcat4.CoyoteConnector"??port="8080"??minProcessors="5"??maxProcessors="75"??enableLookups="true"??redirectPort="8443"??acceptCount="100"??debug="0"??connectionTimeout="20000"??useURIValidationHack="false"??disableUploadTimeout="true"/>??
          ?
          這裡面的8080改成80??
          ?
          ?
          添加??
          <Context??path=""??docBase="e:/mysite/"??
          ???????????????debug="0"??privileged="true">??
          </Context>到??
          </host>??
          之前。??
          posted @ 2006-03-20 22:42 konhon 優華 閱讀(697) | 評論 (0)編輯 收藏

          /**
           * By metaphy 2005-11-12
           * Version: 0.01
           * 注:題目答案來源于metaphy過去的知識或網絡,metaphy不能保證其正確或完整性,僅供參考
          **/

          一、基礎問答

            1.下面哪些類可以被繼承?

             java.lang.Thread (T)
             java.lang.Number (T)
             java.lang.Double (F)
             java.lang.Math  (F)
             java.lang.Void  (F)
             java.lang.Class  (F)
             java.lang.ClassLoader (T)

            2.抽象類和接口的區別

            (1)接口可以被多重implements,抽象類只能被單一extends
            (2)接口只有定義,抽象類可以有定義和實現
            (3)接口的字段定義默認為:public static final, 抽象類字段默認是"friendly"(本包可見)

            3.Hashtable的原理,并說出HashMap與Hashtable的區別

            HashTable的原理:通過節點的關鍵碼確定節點的存儲位置,即給定節點的關鍵碼k,通過一定的函數關系H(散列函數),得到函數值H(k),將此值解釋為該節點的存儲地址.
          HashMap 與Hashtable很相似,但HashMap 是非同步(unsynchronizded)和可以以null為關鍵碼的.

            4.forward和redirect的區別

            forward: an internal transfer in servlet
            redirect: 重定向,有2次request,第2次request將丟失第一次的attributs/parameters等

            5.什么是Web容器?

            實現J2EE規范中web協議的應用.該協議定義了web程序的運行時環境,包括:并發性,安全性,生命周期管理等等.

            6.解釋下面關于J2EE的名詞

            (1)JNDI:Java Naming & Directory Interface,JAVA命名目錄服務.主要提供的功能是:提供一個目錄系統,讓其它各地的應用程序在其上面留下自己的索引,從而滿足快速查找和定位分布式應用程序的功能.
            (2)JMS:Java Message Service,JAVA消息服務.主要實現各個應用程序之間的通訊.包括點對點和廣播.
            (3)JTA:Java Transaction API,JAVA事務服務.提供各種分布式事務服務.應用程序只需調用其提供的接口即可.
            (4)JAF: Java Action FrameWork,JAVA安全認證框架.提供一些安全控制方面的框架.讓開發者通過各種部署和自定義實現自己的個性安全控制策略.
            (5)RMI:Remote Method Interface,遠程方法調用

            7.EJB是基于哪些技術實現的?并說 出SessionBean和EntityBean的區別,StatefulBean和StatelessBean的區別.

            EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技術實現.

            SessionBean在J2EE應用程序中被用來完成一些服務器端的業務操作,例如訪問數據庫、調用其他EJB組件.EntityBean被用來代表應用系統中用到的數據.對于客戶機,SessionBean是一種非持久性對象,它實現某些在服務器上運行的業務邏輯;EntityBean是一種持久性對象,它代表一個存儲在持久性存儲器中的實體的對象視圖,或是一個由現有企業應用程序實現的實體.

            Session Bean 還可以再細分為 Stateful Session Bean 與 Stateless Session Bean .這兩種的 Session Bean都可以將系統邏輯放在 method之中執行,不同的是 Stateful Session Bean 可以記錄呼叫者的狀態,因此通常來說,一個使用者會有一個相對應的 Stateful Session Bean 的實體.Stateless Session Bean 雖然也是邏輯組件,但是他卻不負責記錄使用者狀態,也就是說當使用者呼叫 Stateless Session Bean 的時候,EJB Container 并不會找尋特定的 Stateless Session Bean 的實體來執行這個 method.換言之,很可能數個使用者在執行某個 Stateless Session Bean 的 methods 時,會是同一個 Bean 的 Instance 在執行.從內存方面來看, Stateful Session Bean 與 Stateless Session Bean 比較, Stateful Session Bean 會消耗 J2EE Server 較多的內存,然而 Stateful Session Bean 的優勢卻在于他可以維持使用者的狀態.

            8.XML的解析方法

            Sax,DOM,JDOM

            9.什么是Web Service?

            Web Service就是為了使原來各孤立的站點之間的信息能夠相互通信、共享而提出的一種接口。
          Web Service所使用的是Internet上統一、開放的標準,如HTTP、XML、SOAP(簡單對象訪問協議)、WSDL等,所以Web Service可以在任何支持這些標準的環境(Windows,Linux)中使用。

            注:SOAP協議(Simple Object Access Protocal,簡單對象訪問協議),它是一個用于分散和分布式環境下網絡信息交換的基于XML的通訊協議。在此協議下,軟件組件或應用程序能夠通過標準的HTTP協議進行通訊。它的設計目標就是簡單性和擴展性,這有助于大量異構程序和平臺之間的互操作性,從而使存在的應用程序能夠被廣泛的用戶訪問。

            優勢:

            (1).跨平臺。
            (2).SOAP協議是基于XML和HTTP這些業界的標準的,得到了所有的重要公司的支持。
            (3).由于使用了SOAP,數據是以ASCII文本的方式而非二進制傳輸,調試很方便;并且由于這樣,它的數據容易通過防火墻,不需要防火墻為了程序而單獨開一個“漏洞”。
            (4).此外,WebService實現的技術難度要比CORBA和DCOM小得多。
            (5).要實現B2B集成,EDI比較完善與比較復雜;而用WebService則可以低成本的實現,小公司也可以用上。
            (6).在C/S的程序中,WebService可以實現網頁無整體刷新的與服務器打交道并取數。

            缺點:

            (1).WebService使用了XML對數據封裝,會造成大量的數據要在網絡中傳輸。
            (2).WebService規范沒有規定任何與實現相關的細節,包括對象模型、編程語言,這一點,它不如CORBA。

            10.多線程有幾種實現方法,都是什么?同步有幾種實現方法,都是什么?

            答:多線程有兩種實現方法,分別是繼承Thread類與實現Runnable接口
            同步的實現方面有兩種,分別是synchronized,wait與notify

            11.JSP中動態INCLUDE與靜態INCLUDE的區別?

            動態INCLUDE用jsp:include動作實現

          <jsp:include page="included.jsp" flush="true"/>

            它總是會檢查所含文件中的變化,適合用于包含動態頁面,并且可以帶參數

            靜態INCLUDE用include偽碼實現,定不會檢查所含文件的變化,適用于包含靜態頁面

            <%@ include file="included.htm" %>

          posted @ 2006-03-13 19:35 konhon 優華 閱讀(2219) | 評論 (0)編輯 收藏

          本文示范了如何用一個Java Servlet、一個JSP頁面和一個靜態Java類構造出一個SQL網關應用。利用這個應用,你可以直接在瀏覽器內執行SQL命令,瀏覽器將把SQL命令提交給遠程服務器上的數據庫系統,然后返回結果。

            如果你正在使用ISP(Internet Service Provider)提供的數據庫,可能已經熟悉SQL網關應用的概念了。有的ISP會提供一個操作數據庫的HTML頁面,就象本文提供的網關應用一樣。如果ISP沒有提供這樣的界面,你可以把本文的程序上載到服務器,以后要訪問ISP服務器上的數據庫就很方便了。

            SQL網關應用不僅可以用于開發過程,而且還可以直接提供給比較熟悉系統的最終用戶使用。當然,允許最終用戶直接在數據庫上運行SQL命令會帶來一些安全隱患,應當慎重考慮。

            本文要求讀者具備一定的Java、Servlet、JSP和數據庫的基礎知識,如果要運行本文的程序,還要有一個Servlet/JSP服務器和數據庫服務器。在下面的說明中,我們要使用的是Tomcat 4.0和MySQL,但它應該也能在其他JSP/Servlet容器中運行;如果你要改用MySQL之外的其他數據庫,只要提供一個適當的驅動程序,然后修改數據庫連接字符串就可以了。

            一、用戶界面

            圖1就是本文SQL網關的用戶界面。在這個界面中,SQL網關已經執行了一條SQL命令并返回了結果。



          圖1:SQL網關的用戶界面


            從圖1可以看出,頁面底部的一條信息顯示出最近執行的SQL命令影響的行數。如果SQL命令是一個SELECT語句,當SELECT語句執行成功,頁面底部將用HTML表格顯示出查詢結果,如圖二所示。



          圖2:HTML表格顯示出查詢結果集


            當然,如果SQL命令執行失敗,SQL網關將返回異常信息。

            二、設計JSP頁面

            在JSP頁面中,我們首先放入一個Scriptlet,它的功能是從session對象提取兩個屬性:

          <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
          <% 
             String sqlStatement=(String)session.getAttribute("sqlStatement");
             if (sqlStatement == null)    sqlStatement = "";
             String message =  (String) session.getAttribute("message");
             if (message == null)  message = "";
          %>


            第一個屬性sqlStatement 表示SQL命令字符串,第二個屬性message 是包含結果信息的字符串。如果這兩個屬性的值是null,則表示它們尚未被設置,我們把sqlStatement和message變量設置成空字符串。

            JSP頁面還有一個HTML表單,HTML表單包含一個文本區域(TEXTAREA)和一個“執行”按鈕。

          <form action="../servlet/test.SQLGatewayServlet" method="post">
          <b>SQL命令:</b><br>
          <textarea name="sqlStatement" cols=60 rows=8>
          <%=sqlStatement%></textarea><br>
          <br>
          <input type="submit" value="執行">
          </form>


            表單中的文本區域用來輸入SQL命令。我們將sqlStatement變量的值作為文本區域的默認內容,文本區域的大小是寬60字符、高8行。當JSP頁面第一次運行時,這個文本區域的內容為空。如果用戶點擊文本區域下面的“執行”按鈕,JSP頁面把表單內容提交給SQLGatewayServlet(稍后再詳細介紹)。

            JSP頁面底部的表格顯示出message字符串的內容。如前所述,message的內容是運行SQL命令的結果。

          <b>SQL命令執行結果:</b><br>
          <table cellpadding="5" border="1">
          <%=message%>
          </table>


            三、編寫Servlet

            SQLGatewayServlet首先導入java.sql包以便使用JDBC類。另外,它還要聲明一個Connection對象,以便Servlet之內的所有方法都可以使用數據庫連接。

          package test;
          
          import java.io.*;
          import javax.servlet.*;
          import javax.servlet.http.*;
          import java.sql.*;
          
          public class SQLGatewayServlet extends HttpServlet{
          
              private Connection connection;


            當Servlet引擎開始運行這個Servlet,Servlet的init方法就打開一個數據庫連接:

          public void init() throws ServletException{
              try{
                  Class.forName("org.gjt.mm.mysql.Driver");
                  String dbURL = "jdbc:mysql://localhost/murach";
                  String username = "root";
                  String password = "";
                  connection = DriverManager.getConnection
          	(dbURL, username, password);
              }
              catch(ClassNotFoundException e){
                  System.out.println("找不到數據庫驅動程序.");
              }
              catch(SQLException e){
                  System.out.println("不能打開數據庫連接: "
                                     + e.getMessage());
              }
          }


            在這個例子中,Servlet利用一個MysQL數據庫的驅動程序打開murach數據庫的連接,數據庫和Servlet運行在同一個服務器上。此外,Servlet使用MySQL的默認用戶名字root,密碼為空。不過,你可以修改這里的代碼,只要有適當的驅動程序,就可以讓Servlet連接到任何服務器上的任何數據庫(有關MySQL數據庫的更多信息,請參見www.mysql.com)。

            Servlet引擎關閉Servlet之前,調用destroy方法關閉數據庫連接,釋放連接資源:

          public void destroy() {
              try{
                  connection.close();
              }
              catch(SQLException e){
                  System.out.println("不能關閉數據庫連接: " + e.getMessage());
              }
          }


            前面介紹的JSP頁面要調用Servlet的doPost方法,doPost方法調用doGet方法:

          public void doPost(HttpServletRequest request,
                             HttpServletResponse response)
                             throws IOException, ServletException{
               doGet(request, response);
           }


            在doGet方法之中,第一個語句首先獲取用戶在JSP頁面中輸入的SQL命令,第二個語句聲明message變量:

          public void doGet(HttpServletRequest request,
                             HttpServletResponse response)
                             throws IOException, ServletException{
          
               String sqlStatement = request.getParameter("sqlStatement");
               String message = "";


            然后,在try塊之內,第一個語句利用Connection對象創建Statement對象,接下來的兩個語句利用String對象的trim方法和substring方法返回用戶輸入的SQL命令的前六個字符。

          try{
               Statement statement = connection.createStatement();
               sqlStatement = sqlStatement.trim();
               String sqlType = sqlStatement.substring(0, 6);


            如果SQL命令的前六個字符是“select”,則利用Statement的executeQuery方法執行SQL語句,獲得一個ResultSet對象,把這個對象傳遞給SQLUtil類(稍后詳細說明)的getHtmlRows方法,getHtmlRows方法將把記錄集中的記錄格式化成HTML表格并返回。

          if  (sqlType.equalsIgnoreCase("select")){
               ResultSet resultSet = statement.executeQuery(sqlStatement);
               // 構造一個String,其中包含HTML表格形式的結果集數據
               message = SQLUtil.getHtmlRows(resultSet);
           }


            如果SQL語句的前六個字符不是“select”,則我們調用Statement對象的executeUpdate方法,executeUpdate方法返回當前操作影響的行數——如果這個數字是0,則該SQL命令是一個DDL命令,例如DROP TABLE或CREATE TABLE等;否則,則表明SQL命令可能是DML命令,如INSERT、UPDATE或DELETE命令。無論是哪一種SQL命令,我們都把message變量設置成相應的消息。

          else
               {
                   int i = statement.executeUpdate(sqlStatement);
                   if (i == 0) // 這是一個DDL命令
                     message =
                       "<tr><td>" +
                         "命令執行成功." +
                       "</td></tr>";
                   else // 這是一個INSERT、UPDATE或DELETE命令
                       message =
                         "<tr><td>" +
                           "SQL命令執行成功。<br>" +
                           "已更改" + i + " 行。" +
                          "</td></tr>";
               }
               statement.close();
           }


            如果try塊里面的任何一個語句拋出一個SQLException,catch塊就設置message變量,使其包含有關該SQLException的信息。例如,如果在表單中輸入的SQL命令語法錯誤,下面設置的message變量值將幫助你排解錯誤。

          catch(SQLException e){
              message = "<tr><td>執行SQL命令時遇到錯誤:<br>"
                      + e.getMessage() + "</tr></td>";
          }


            在catch塊之后,接下來的三個語句獲得session對象,把sqlStatement和message變量設置為session的屬性:

          HttpSession session = request.getSession();
           session.setAttribute("message", message);
           session.setAttribute("sqlStatement", sqlStatement);


            接下來,最后兩個語句創建一個RequestDispatcher,并轉發request和response對象給前文介紹的JSP頁面:

          RequestDispatcher dispatcher =
               getServletContext().getRequestDispatcher(
                   "/sql/sql_gateway.jsp");
           dispatcher.forward(request, response);


            四、編寫工具類

            下面來看看工具類SQLUtil的代碼:

          package test;
          import java.sql.*;
          public class SQLUtil{


            SQLUtil類包含一個getHtmlRows靜態方法,前面的Servlet正是通過調用該方法將結果集格式化成HTML表格。getHtmlRows的輸入參數是一個ResultSet對象,其返回值是一個String對象,這個String對象的內容是記錄集的所有列表題和行的HTML代碼。為了構造出這樣一個String對象,getHtmlRows聲明了一個名為htmlRows的StringBuffer對象,然后在方法執行過程中向這個StringBuffer對象追加數據。在getHtmlRows方法的末尾,我們用toString方法將StringBuffer的內容轉換成String,最后將這個String返回給Servlet:

          public static synchronized String getHtmlRows(ResultSet results)
          throws SQLException{
              StringBuffer htmlRows = new StringBuffer();
              ResultSetMetaData metaData = results.getMetaData();
              int columnCount = metaData.getColumnCount();
              // 將記錄集中列的名稱作為HTML表格列的標題
              htmlRows.append("<tr>");
              for (int i = 1; i <= columnCount; i++)
                  htmlRows.append("<td><b>" + metaData.getColumnName(i) + "</td>");
              htmlRows.append("</tr>");
              // 對于結果集中的每一行...
              while (results.next()){
                  htmlRows.append("<tr>");
                  // 將該行中的每一個列轉換成一個表格單元
                  for (int i = 1; i <= columnCount; i++)
                      htmlRows.append("<td>" + results.getString(i) + "</td>");
              }
              htmlRows.append("</tr>");
              return htmlRows.toString();
          }


            為了獲得記錄集對象的列標題,getHtmlRows方法利用ResultSet的getMetaData方法來創建一個ResultSetMetaData對象,ResultSetMetaData對象包含了有關記錄集的描述信息,例如列的數量、列的名稱可以分別調用ResultSetMetaData的getColumnCount和getColumnName方法獲得。

            為了提取記錄集的數據,getHtmlRows方法利用一個嵌套的循環,即while循環里面嵌套的for循環,來提取每一個行里面每一個列的值。在循環之內,我們用記錄集的getString方法來獲取各個字段的值,不管字段值原來的類型是什么,getString方法都會將它轉換成String。

            請注意這個方法的聲明中帶有synchronized關鍵詞,這是為了避免兩個或兩個以上的Servlet線程同時執行該方法。
          posted @ 2006-03-13 02:30 konhon 優華 閱讀(646) | 評論 (0)編輯 收藏

          實現論壇樹型結構的算法很多,我現在的JSP論壇采用的也是當中的一種:不用遞歸實現樹型結構的算法,現在我將論壇樹型結構的具體算法和大家介紹一下,和大家一起交流。

           

          1、演示表的結構:

             表名:mybbslist
             字段     數據類型  說明
             BBSID    自動編號  
             RootID    Int     根帖ID,本身為根帖則RootID = ID
             FID     Int     父帖ID,上一層帖子的ID,如是根帖則FID = 0
             DEPTH    Int     根帖Level=0,其他依據回復的深度遞增
             BBSSubject  Char    主題


          2。創建表:


          create table mybbslist (
           forumID int(20) not null,
           bbsID int auto_increment primary key,
           rootid int(20) not null,
           fid int(20) not null,
           depth int(20) not null,
           userID int(20) not null,
           bbsUser varchar(24) not null,
           bbsSubject varchar(100) not null,
           bbsContent text,
           bbsTime varchar(30),
           bbsRead int(20),
           bbsReply int(20),
          INDEX forumID (forumID)) 

          3、連接MYSQL數據庫的BEAN


          package netzero;
          import java.sql.*;
          public class mydb
          {
          String driverName = "org.gjt.mm.mysql.Driver";
          Connection conn = null;
          Statement stmt = null;
          ResultSet rs = null;
          String connURL= "jdbc:mysql://localhost/mybbs?user=root&password=how&useUnicode=true&characterEncode=8859_1";
          //String connURL= "jdbc:mysql://localhost/netzerobbs?user=root&password=how";
          public mydb()
          {
          try
          {
          Class.forName(driverName);
          }
          catch (java.lang.ClassNotFoundException e)
          {
          System.err.println("netzero(String): " + e.getMessage());
          }
          }


          public ResultSet executeQuery(String sql) throws SQLException
          {
          conn = DriverManager.getConnection(connURL);
          stmt = conn.createStatement();
          rs = stmt.executeQuery(sql);
          return rs;
          }


          public boolean closeConn()
          {
          try
          {
          if (rs!=null) rs.close();
          if (stmt!=null) stmt.close();
          if (conn!=null) conn.close();
          return true;
          }
          catch ( SQLException ex )
          {
          System.err.println("closeConn: " + ex.getMessage());
          return false;
          }
          }


          }
           

          4、顯示論壇的JSP程序


          <jsp:useBean id="mybbs" scope="session" class="netzero.mydb" />
          <%@ page contentType="text/html;charset=gb2312" %>
          <%@ page import="java.io.*" %>
          <%@ page import="java.sql.*" %>
          <%
          int intRowCount;
          out.print("顯示論壇樹形結構");
          out.print("<br><br>");
          try {
          String sql="select * from mybbslist order by rootid desc,depth,fid,bbsid";
          ResultSet rs = mybbs.executeQuery(sql);
          if (rs.next())
          {
          rs.last();
          intRowCount=rs.getRow();
          out.print("論壇樹中有");
          out.print(intRowCount);
          out.print("個葉子節點");
          rs.first();
          int j=0;
          int Depth = 0;
          out.print("<ul>");
          while(j<intRowCount)
          {
          int rsDepth=rs.getInt("Depth");
          if (rsDepth<Depth)
          {
          for(int i=1;i<Depth+1;i=i+1)
          {
          out.print("</ul>");
          }
          }
          rsDepth=rs.getInt("Depth");
          if (rsDepth>Depth)
          {
          out.print("<ul>");
          }
          out.print("<li>");


          String bbssubject=rs.getString("bbssubject");
          out.print(bbssubject);
          out.print("</li>");
          Depth = rs.getInt("Depth");
          j=j+1;
          rs.next();
          }
          out.print("</ul>");
          }
          else
          {
          out.print("數據庫中無記錄");
          }
          }catch (SQLException E) {
          out.println("SQLException: " + E.getMessage());
          out.println("SQLState: " + E.getSQLState());
          out.println("VendorError: " + E.getErrorCode());
          }
          %>
          <% //關閉mysql連接
          try {
          if(!mybbs.closeConn());
          } catch (Exception ex) {
          System.err.println("closeConn: " + ex.getMessage());
          }
          %>
           

          posted @ 2006-03-13 02:26 konhon 優華 閱讀(384) | 評論 (0)編輯 收藏

          Imaging_ToWeb.jsp

          <%@ page autoFlush="false"  import="java.awt.*,java.awt.image.*,com.sun.image.codec.jpeg.*,java.util.*"%>
          <%
              String ImageStr = request.getParameter("ID_Text");
              if(ImageStr==null || ImageStr.equals(""))
              {
                  response.setContentType("text/html; charset=gb2312");
           %>
          <HTML>
           <HEAD>
            <title>Http://www.lionsky.net</title>
            <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
           </HEAD>
           <body>
            <form id="Form1" method="post">
              <input type="text" id="ID_Text" name=ID_Text>
              <input type=submit value="GO">
            </form>
           </body>
          </HTML>

          <%
                 }
                 else
                 {
                  out.clear();
                  response.setContentType("image/jpeg");
                  response.addHeader("pragma","NO-cache");
                  response.addHeader("Cache-Control","no-cache");
                  response.addDateHeader("Expries",0);
                  int width=300, height=100;
                  BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
                  Graphics g = image.getGraphics();
                  //以下填充背景顏色
                  g.setColor(Color.lightGray);
                  g.fillRect(0, 0, width, height);
                  String random="random";
                  //以下設置前景色
                  g.setColor(Color.BLACK);
                  g.drawString("Http://www.knowsky.com",10,20);
                  g.drawString("Author:Lion[lion-a@sohu.com]",10,40);
                  g.drawLine(10,50,290,50);
                  g.drawString(ImageStr,10,70);
                  g.dispose();
                  ServletOutputStream outStream = response.getOutputStream();
                  JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(outStream);
                  encoder.encode(image);
                  outStream.close();
              }

          %>

          posted @ 2006-03-13 02:23 konhon 優華 閱讀(366) | 評論 (0)編輯 收藏

          import java.io.File;
          import java.awt.image.BufferedImage;
          import java.awt.Image;
          import java.awt.image.AffineTransformOp;
          import javax.imageio.ImageIO;
          import java.awt.geom.AffineTransform;

          public class UploadImg {
              
              String fromdir;            
          // fromdir 圖片的原始目錄
              String todir;            // todir 處理后的圖片存放目錄
              String imgfile;            // imgfile 原始圖片
              String sysimgfile;        // sysimgfile 處理后的圖片文件名前綴

              UploadImg( String fromdirNow, String todirNow, String imgfileNow, String sysimgfileNow )
          {
                  fromdir 
          = fromdirNow;
                  todir 
          = todirNow;
                  imgfile 
          = imgfileNow;
                  sysimgfile 
          = sysimgfileNow;
              }


              
          public boolean CreateThumbnail() throws Exception
                  
          {
                  
          // fileExtNmae是圖片的格式 gif JPG 或png
                  
          // String fileExtNmae="";
                  double Ratio = 0.0;
                  File F 
          = new File(fromdir,imgfile);
                  
          if ( !F.isFile() )
                      
          throw new Exception(F+" is not image file error in CreateThumbnail!");
                  
                  
          //首先判斷上傳的圖片是gif還是JPG ImageIO只能將gif轉換為png
                  
          // if (isJpg(imgfile)){
                  
          //    fileExtNmae="jpg";
                  
          //    }
                  
          //else{
                  
          //    fileExtNmae="png"; 
                  
          //    }
                  File ThF = new File( todir, sysimgfile + ".jpg" );
                  
                  BufferedImage Bi 
          = ImageIO.read(F);
                  
          //假設圖片寬 高 最大為120 120
                  Image Itemp = Bi.getScaledInstance (120,120,Bi.SCALE_SMOOTH);
                  
                  
          if ((Bi.getHeight()>120|| (Bi.getWidth()>120)){
                      
          if (Bi.getHeight()>Bi.getWidth())
                          Ratio 
          = 120.0/Bi.getHeight();
                      
          else
                          Ratio 
          = 120.0/Bi.getWidth();
                      }

                  
                  AffineTransformOp op 
          = new AffineTransformOp(AffineTransform.getScaleInstance(Ratio, Ratio), null);
                  Itemp 
          = op.filter(Bi, null);
                  
          try {
                      ImageIO.write((BufferedImage)Itemp, 
          "jpg", ThF);
                      }

                  
          catch (Exception ex) {
                      
          throw new Exception(" ImageIo.write error in CreatThum.: "+ex.getMessage()); 
                      }

                  
          return (true);
              }


              
          public static void main(String[] args) 
              
          {
                  UploadImg UI;
                  
          boolean ss = false;

                  
          try{
                      UI 
          = new UploadImg( "d:\\javalearn""d:\\javalearn""ps_high.jpg""ps_low" );
                      ss 
          = UI.CreateThumbnail();
                      
          if ( ss ) {
                          System.out.println( 
          "Success" );
                          }

                      
          else{
                          System.out.println( 
          "Error" );
                          }

                  }

                  
          catch(Exception e){
                      System.out.print(e.toString());
                  }

              }

          }
           
          posted @ 2006-03-13 01:29 konhon 優華 閱讀(391) | 評論 (0)編輯 收藏

          一個優秀的程序員必須熟悉自己使用的編輯器,以前UNIX程序員十分熟悉VI,后來的Linux促進了Emacs的發展,這兩種編輯器都是不需要鼠標的支持,而鼠標的出現很大程度上影響了編輯的速度,很多在window下寫程序的程序員更慢了,因為更多的依賴鼠標,來回的切換鼠標與鍵盤浪費了許多時間。
          以下是我使用JBuilder的一種模式,希望大家能夠給我提出一些其他更好的模式和方便的快捷鍵。

          首先我選擇在Preferences里設置KeyMapping為Emacs,因為Emacs有更多方便的功能。我們一般使用CUA,最常用的就是CTRL+C功能了,但是我們有理由舍棄它。


          首先說編輯Java最常用的快捷鍵,這幾個在幾種Keymapping下是一樣的。
          Ctrl+h : member-insight,就是我們輸了一半代碼時,敲這個,編輯器生成提示,也可以在“.”號之后用,然后選擇回車。這時候如果選擇了Emacs我們就可以用更方便的上下選擇,而不用去找上下鍵。在Emacs里向下是Ctrl+n,向上時Ctrl+p,n代表Next,P代表Previos。在出現member-insight,這兩個快捷鍵還好用,大大方便了輸入。
          Ctrl+j :expand-template,我們寫程序經常要寫System.out.println("");,在Jbuilder里我們只需要這樣輸入Ctrl+j out,然后回車,還有許多其他的,包括main就寫Ctrl+j main,這兩個個快捷鍵在兩種模式下都可用,在選擇的時候也可以用上面說的快捷鍵上下選擇。在Preferences->template中我們還可以訂制自己的模版,比如寫一段常用版權聲明,然后賦一個值.
          Ctrl+Shift+j:enter-sync-edit-mode,選中一段代碼,然后按下這個鍵,就進入了sync-edit-mode,這時對這段代碼的一個變量的更改,所有這段代碼對應的部分都會改變,很有用,這樣不會因為做的亂了,漏了改變某個變量名.
          Ctrl+Enter:find-definition,Ctrl+Shift+Enter:find-references,對于第一個,如果光標在變量上,這樣按會跑到變量生命的地方,如果是方法且有源代碼會跑到方法定義處,若是類且有源代碼則跑到類定義處.第二個類似,他是找引用的地方。這兩個的好處很明顯,尤其面對一個不熟悉的系統時,只有這樣去查看代碼。
          Ctrl+Shift+space.光標移到方法的括號里,然后輸入,這時會顯示參數的提示。
          有一個功能通常很有用,就是注釋掉一段代碼,在CUA里才有,是Ctrl+/,由于Emacs里有別的用處,所以默認的沒有設置,所以我通常在設置里改為Ctrl+Shife+/。


          以上是最常用的了,然后是emacs特有的內容。
          移動光標。上面已經提到了幾個,還有以下很有用。
          Ctrl+b 后退光標
          Ctrl+f 前進光標
          Ctrl+v 下一屏
          Alt+v 上一屏
          Ctrl+e 一行的結尾
          Ctrl+a 一行的開頭
          Alt+m 一行第一個非空格字符之前。
          Ctrl+x g 移到指定行。
          相信有了這些鍵之后,手就不很需要移到END,HOME和鼠標上了。

          還有是拷貝粘貼,畢竟Ctrl+c,Ctrl+v,Ctrl+x用的太多了,不用總是覺得麻煩,所以我定義了這幾個,只是加上了Shift。Emacs本身也有很多類似的功能。
          Ctrl+k:剪切一行,Ctrl+y:粘貼回來,而且如果你用了多次Ctrl+k,點Ctrl+y之后可以再選Alt+y,這樣可以把以前剪切的內容粘貼回來。
          結合這兩種模式的拷貝粘貼,可以實現更加靈活的編輯。

          再就是查詢,先按Ctrl+s,然后輸入查詢內容,你會發現這是增量查詢,你可以馬上看到結果。再按Ctrl+s,可以找下一個,Ctrl+r可以找前一個,如果不輸入內容,輸入兩遍Ctrl+s,會查找上一詞的內容.


          其他的還有的比較需要,像Ctrl+z沒有了,要用Ctrl+shift+-。保存要Ctrl+x Ctrl+s,注意,是分別按,按Ctrl+x之后Jbulider左下角會顯示,然后再按后一個。Ctrl+x 1,Ctrl+x 2,Ctrl+x 3,看看是干什么的。還有一個就是Ctrl+x Ctrl+u這樣可以將選中的代碼全部轉化為大寫。

          常用就這些了,還有很多記不住了,看JBuilder設置就知道了。希望大家不要怕麻煩練習一下,以后就會發現提高效率很高,說不定以后用Emacs會更快上手。
          posted @ 2006-03-09 01:36 konhon 優華 閱讀(340) | 評論 (0)編輯 收藏


            先介紹零三年之前的組織。
            安全焦點
            http://www.xfocus.net/
            1999年8月26日由xundi創立,創始人還有quack和casper。后來stardust,isno,glacier,alert7,benjurry,blackhole,eyas,flashsky,funnywei,refdom,tombkeeper,watercloud,wollf等人也加入了近來。站點主頁風格一向是很簡單。而該組織目前已經成為國內最權威的信息安全站點,也是最接近世界的一個國內組織。
            目前國內一些技術性比較強的文章都由作者親自提交到該網站,而國內一些知名的技術屬一屬二的高手都會去這里的論壇。討論技術的氛圍還可以。而且一些網絡安全公司也關注這里的論壇。現在流行的著名掃描工具x-scan的作者就是該組織的成員。
            從2002年開始,每年都舉辦一次信息安全峰會,吸引了國內外眾多知名網絡安全專家關注參加。會議涉及眾多領域,備受關注。創造了良好的學術交流氛圍。在此祝愿這個組織越走越好。
            
            中國紅客聯盟(以解散)
            http://www.cnhonker.com/
            借這個機會要說明一下,只有這個紅客聯盟才配的上是真正的紅客聯盟,并不是因為他申請了什么專利,而是在大家的眼中,只有他才只真正的紅客聯盟。
            這個組織是由lion在2000年12月組建的。曾再2001年帶領眾多會員參與中美黑客大戰,而名震“江湖”。不過這個時代早已逝去,激情的往事也跟著逝去,留給人們的只有回憶。在2005年的最后一天,lion在主頁上宣布正式解散。或許很多人難以理解吧。不過這也自有人家的道理。現在外面有N個紅盟,我不屑于去關注他們。在此祝福lion,bkbll等人。對sharpwinner我就懶的說什么了。
            
            中國鷹派
            http://www.chinawill.com/
            與紅客聯盟一樣,都是2000年末創立,并且在2001年參與了中美黑客大戰。站長萬濤也是早期的綠色兵團成員。并且也參與了在2000年前的幾次網絡戰爭。至盡這個組織依然沒有倒下。近幾年中并沒有什么大的事件發生。所以很多人對他都已經沒有了什么印象。希望他們越走越好。
            
            邪惡八進制
            http://www.eviloctal.com/
            2002年由冰血封情創立,當時是以小組模式運營的,而發展到現在已經成為一個30多人的信息安全團隊。主頁做的很簡單,但論壇內容非常豐富,涉及領域眾多,在下經常去那里下載學術資料,論壇管理的是我所見過的論壇中最好的。而且討論氛圍也很不錯。鄙人與那里的幾個核心成員有所接觸,都是比較熱心的,而且技術都是比較強的。祝愿這個組織越辦越好。我對這個團隊的發展充滿期望。
            
            幻影旅團
            http://www.ph4nt0m.org/
            2001年創立,發展到現在組織成員已經達到20人,近期組織推出了WIKI平臺(http://www.secwiki.com),內容涉及無線網絡,病毒與反病毒,以及黑客技術等眾多領域。所有的朋友都可以到那里去涂鴉。2002年開放了論壇,目前論壇的技術討論氛圍還是可以的,而且熱心人也是很多的。相信這個組織也能走下去。
            
            白細胞(whitecell)
            http://www.whitecell.org/
            2001年創立的一個純技術交流站點。當時核心成員有sinister,無花果等人,都是國內著名的高手。在2002年后就關閉了,而最近它由回來了。主頁與論壇依然都很簡單。希望這次回歸會帶給大家新的氣象。
            
            中華安全網
            http://www.safechina.net/
            2001年4月創立,經過了幾次改版后,隊伍也發展的比較大,我所熟悉的有yellow,Phoenix等人。到現在,這個網站還在改版中,不過論壇依然開放,在這里還是有討論空間的。組織內的人技術也都是不錯的。希望這次改版后會有大的變化:)。
            
            第八軍團
            2000年左右由陳三公子組織成立,后經過多次改版。成為了一個VIP制的站點,資源收集量還是不錯的。鄙人經常去那里找代理服務器,更新的速度還是可以的。論壇里討論氣氛不是很熱烈。希望今后發展的會更好。
            
            
            
            來說說這兩年成立的黑客組織
            BCT
            http://www.cnbct.org/
            2004年底成立的一個專門挖掘腳本漏洞的組織。已經發展了一年了。在下與H4K_B4N,fpx到是有些接觸。感覺這個組織是不錯的,雖然沒有做什么影響力大的事情,但是這種默默研究技術的精神還是值得發揚的,與那些招搖的比,要好多了。網站上收集了一些漏洞資料,這點到是做的比較好。希望繼續努力,發展的越來越好。
            
            火狐技術聯盟
            http://www.wrsky.com/
            2004年建立的一個組織,致力于破解軟件的組織。對于他們組織現在很有爭議,也曾經一度遭受到猛烈的拒絕服務攻擊,造成網站癱瘓長大數月,到現在是一個論壇系統。對于這個組織,到目前為止還是有爭議。希望能早日平息。
            
            黑客技術
            http://www.hackart.org/
            2003年成立的組織,之前使用的是喬客的整站程序,后來就關閉了。也是最近重開的站點,使用的是論壇系統,在下與那里的版主風般的男人和Jambalaya 是好朋友。他們的技術還是不錯的。現在論壇人氣雖然不怎么高,但顯然是老站重開,知道的人還不多,希望日后可以恢復元氣,繼續發展下去。
            
            
            國內三大商業黑客站點。
            黑客基地
            http://www.hackbase.com/
            2003年成立。站長龍哥。
            
            黑鷹基地
            http://www.3800cc.com/
            由米特創立的商業黑客站點。
            
            華夏黑客同盟
            http://www.77169.com/
            2004年由怪狗創立的站點。
            
            其實黑客組織多的數不勝數,我也只是舉幾個著名的而已。
            下面來說說人物吧,現在的黑客越來越多,我重點介紹那些專著于系統與漏洞的高手,當然他們對入侵也是有所造詣的。注意,這并不是排名,不是第一個就是最厲害,而最后一個是這里面技術最差的,如果這樣想就錯了。
            因為有時候想著費勁所以就進入一下牛人的BLOG以及一些論壇去看,這樣就可以容易記起來,知道寫誰。
            先從這里找http://www.0x557.org/~kkqq/ 然后在從安全焦點的文章和論壇里還有綠盟去找。
            
            
            alert7
            QQ:415451
            email:alert7@xfocus.org
            http://blog.xfocus.net/index.php?blogId=12
            安全焦點核心成員,曾經在補天的。精通linux操作系統,對于linux下的漏洞很有研究。
            
            baozi(fatb)
            QQ:48448355
            http://blog.xfocus.net/index.php?blogId=3
            對windows與linux下的入侵很精通。
            
            CoolQ
            QQ:49462335
            http://coolq.blogdriver.com/coolq/index.html
            email:qufuping@ercist.iscas.ac.cn
            我也是在安全焦點05年的峰會上認識的他,是中科院軟件研究所的學生,對于linux非常有研究。在最后一期的Phrack雜志上有他的文章《Hacking Grub for fun and profit》也是在這期雜志中發表文章的三位中國人之一。另外著作還有《ways to hide files in ext2/3 filesystem》
            
            bkbll(dumplogin)
            email:bkbll@cnhonker.com
            http://blog.0x557.org/dumplogin/
            原中國紅客聯盟核心成員,與lion曾經一起參加過中美黑客大戰。對windows與linux都很有研究。著作有《POSIX子系統權限提升漏洞的分析》
            
            flashsky
            QQ:16202253
            email:flashsky@xfocus.org
            http://www.qjclub.net/blog/user1/497/index.html
            安全焦點核心成員。精通windows操作系統上的緩沖區溢出,當年就是他一連公布了微軟的N個漏洞,微軟就此還譴責過安全焦點。現就職于啟明星辰。
            
            Flier Lu
            email:flier@nsfocus.com
            http://flier_lu.blogcn.com/
            綠盟的高手,精通windows操作系統內核,著作有《MS.Net CLR擴展PE結構分》《自動驗證 Windows NT 系統服務描述表》《CLR 中代碼訪問安全檢測實現原理》等等。
            
            funnywei
            QQ:25044885
            email:funnywei@xfocus.org
            http://blog.xfocus.net/index.php?blogId=28
            安全焦點核心成員,熟悉windows操作系統。著作有《WindowsXpSp2溢出保護》
            
            glacier
            QQ:1937435
            email:glacier@xfocus.org
            http://blog.xfocus.net/index.php?blogId=15
            安全焦點核心成員,精通windows編程,網絡編程,delphi等等。是冰河木馬以及著名掃描軟件x-scan的作者。
            
            icbm
            email:icbm@0x557.org
            http://blog.0x557.org/icbm/
            精通linux操作系統內核以及漏洞。就職于啟明星辰。翻譯過文章《Building ptrace injecting shellcodes》是《淺析Linux內核漏洞》的作者。
            
            killer
            QQ:6362602
            email:killer@xfocus.org
            http://blog.xfocus.net/index.php?blogId=2
            安全焦點灌水區版主。精通逆向工程,程序破解。
            
            pjf
            QQ:85863144
            http://pjf.blogcn.com/
            著名的檢測工具icesword(冰刃)的作者。很多程序員以及編寫rootkit的高手以繞過它的檢測工具為目標。熟悉windows操作系統內核。
            
            refdom
            email:refdom@xfocus.org
            http://blog.xfocus.net/index.php?blogId=11
            安全焦點核心成員,《反垃圾郵件技術解析》的作者。似乎曾經是紅客聯盟的人。
            
            stardust
            QQ:6269692
            email:stardust@xfocus.org
            http://blog.xfocus.net/index.php?blogId=7
            安全焦點核心成員。熟悉linux,精通IDS。著作有《從漏洞及攻擊分析到NIDS規則設計》《Bro NIDS的規則》《Snort 2.x數據區搜索規則選項的改進》《Bro NIDS的安裝與配置》
            
            sunwear
            QQ:47347
            email:shellcoder@163.com
            http://blog.csdn.net/sunwear/
            邪惡八進制核心成員。精通windows操作系統內核。著作有《利用NTLDR進入RING0的方法及MGF病毒技術分析筆記》《淺析本機API》《智能ABC輸入法溢出分析》
            
            swan
            email:swan@xfocus.org
            http://blog.0x557.org/swan/
            對緩沖區溢出漏洞很有研究。最近的ms05051 Microsoft Windows DTC 漏洞的exploit作者就是他。
            
            tombkeeper
            QQ:644909
            http://blog.xfocus.net/index.php?blogId=9
            安全焦點核心成員。精通windows操作系統內核。著作有〈用Bochs調試NTLDR〉〈修改Windows SMB相關服務的默認端口〉等等。在焦點峰會上見到過他,很帥。
            
            watercloud
            http://blog.xfocus.net/index.php?blogId=6
            安全焦點核心成員。精通windows,linux操作系統。著作有〈手工打造微型Win32可執行文件〉〈溢出利用程序和編程語言大雜燴〉〈RSA算法基礎->實踐〉
            
            zwell
            email:suei8423@163.com
            http://blog.donews.com/zwell
            NB聯盟核心成員。精通windows操作系統,著作有〈安全穩定的實現進線程監控〉〈一種新的穿透防火墻的數據傳輸技術〉
            
            zzzevazzz
            QQ:49322630
            http://zzzevazzz.bokee.com/index.html
            幻影旅團核心成員。原灰色軌跡的人。精通windows操作系統內核。著作有〈Do All in Cmd Shell〉〈無驅動執行ring0代碼〉等等。
            
            小榕
            http://www.netxeyes.org
            流光,亂刀,溺雪及命令行SQL注入工具的作者。中國第二代黑客。
            
            lion
            QQ:21509
            email:lion@cnhonker.com
            http://www.cnhonker.com
            原中國紅客聯盟站長,對緩沖區溢出很有研究。精通linux.windows.
            
            isno
            QQ:1070681
            email:isno@xfocus.org
            安全焦點核心成員,精通緩沖區溢出漏洞。webdav溢出程序的作者。寫過IDQ,IDA漏洞溢出的分析等等。
            
            sinister
            QQ:3350124
            email:sinister@whitecell.org
            白細胞成員。精通windows內核,AIX。著作有〈NT 內核的進程調度分析筆記〉〈NT 下動態切換進程分析筆記〉〈AIX 內核的虛擬文件系統框架〉〈AIX 內核的文件操作流程〉
            
            袁哥
            email:yuange@nsfocus.com
            現就職于中聯綠盟公司。精通windows操作系統內核以及漏洞利用。
            
            warning3
            email:warning3@nsfocus.com
            msn:warning3@hotmail.com
            精通linux unix內核及漏洞。現就職于中聯綠盟公司。著作有〈Heap/BSS 溢出機理分析〉
            
            SoBeIt
            QQ:27324838
            email:kinvis@hotmail.com
            精通windows編程以及系統內核還有溢出。著作有《Windows內核調試器原理淺析》,《掛鉤Windows API》等等翻譯過《在NT系列操作系統里讓自己“消失”》
            
            xhacker
            QQ:66680800
            精通滲透入侵以及腳本入侵。著作有〈詳述虛擬網站的權限突破及防范〉,〈如何利用黑客技術跟蹤并分析一名目標人物〉
            
            eyas
            QQ:320236
            email:eyas@xfocus.org
            安全焦點核心成員,熟悉windows操作系統,windows編程。著作有《NT平臺撥號連接密碼恢復原理》,《WS_FTP FTPD STAT命令遠程溢出分析》
            
            孤獨劍客
            QQ:5385757
            email:Janker@Hackbase.Com
            Http://Www.Janker.Org
            精通編程。以及入侵技術。winshell的作者。中國第二代黑客。
            
            sunx
            QQ:239670
            http://www.sunx.org
            對溢出有研究,寫過IDA漏洞和printer漏洞的溢出程序。精通匯編。著作很多。
            
            analysist
            QQ:20116789
            精通數據庫與腳本入侵。早年對跨站腳本以及很多腳本漏洞很有研究。著作有《跨站腳本執行漏洞詳解》,《BBS2000和BBS3000所存在的安全隱患》
            
            Frankie
            http://cnns.net
            精通windows操作系統,與linux。中國第一代黑客。
            
            rootshell(fzk)
            QQ:1734398
            http://www.ns-one.com
            精通windows操作系統,熟悉緩沖區溢出漏洞。老一代的黑客。著作有〈最近發現的一個Distributed File System服務遠程溢出問題〉。
            
            PP
            QQ:82928
            精通windows操作系統。名言:如果想飛得高,就該把地平線忘掉。
            
            tianxing
            OICQ:911189
            網站:http://www.tianxing.org/
            精通windows操作系統與漏洞利用。RPC漏洞利用程序以及網絡刺客,網絡衛兵的作者。
            
            grip2
            QQ:1007270
            精通linux操作系統。著作有〈一個Linux病毒原型分析〉
            
            san
            QQ:56941
            精通windows操作系統以及linux。而且對windows CE很有研究。phrack最后一期的雜志中,刊登過他的文章。
            
            hume
            QQ:8709369
            精通匯編以及windows操作系統。著作有《SEH in ASM 的研究》
            
            backend
            email:backend@antionline.org
            精通linux操作系統。翻譯過很多文章,是綠盟的高手。不過已經幾年沒見在網絡上游走了。到是現實中偶爾看到他。
            
            Adam
            QQ:15898
            email:adam@nsfocus.com
            綠盟的高手,windows安全版版主。精通windows操作系統。
            
            ipxodi
            QQ:16175535
            email:ipxodi@nsfocus.com
            很長時間沒看見他了。精通windows操作系統以及緩沖區溢出。著作有〈window系統下的堆棧溢出〉〈Windows 2000緩沖區溢出入門〉。這些文章都是造福了很多后輩的。
            
            zer9
            QQ:573369
            email:zer9@21cn.com
            也是很長時間沒見到了。早期寫過不少文章和工具。也是老一輩的革命家。
            
            whg
            QQ:312016
            email:whg0001@163.com
            http://WWW.CNASM.COM
            不知道算不算白細胞的成員,呵呵。病毒高手。精通匯編。寫過不少軟件,例如lan下sniff QQ的工具以及sniff工具等等,可以到他的主頁上去看。
            
            lg_wu
            email:lgwu2000@sina.com
            在綠盟論壇和安全焦點都見過,對linux精通的很。技術不一般的說。
            
            wowocock
            QQ:37803144
            精通windows操作系統內核,匯編。在驅動開發網以及cvc 輕描淡寫見過,技術不一般。著作很多,但是見到的很少。不知道為什么這么好的文章沒人轉!
            
            baiyuanfan
            QQ:51449276
            這小子在峰會上給我的印象很深。在技術上很下工夫。對windows也算有研究了。著作當然是byshell了。
            
            vxk
            QQ:355852911
            匯編技術很硬,精通windows內核。經常在cvc論壇看到他。
            
            冰血封情
            QQ:124839278
            邪惡八進制的創始人。中國第四代黑客。感覺這個人很不錯。對他的組織比較認可。技術上面還可以。
            
            Polymorphours(shadow3)
            QQ:120974745
            白細胞成員。以前叫shadow3.好象換名字了。熟悉windows操作系統,以及緩沖區溢出。著作有〈MS05-010許可證記錄服務漏洞允許執行代碼的分析〉〈Media Player 8.0 vulnerability〉等等。
            
            e4gle
            QQ:1949479
            白細胞成員。老一代的黑客。精通linux系統內核以及病毒技術,緩沖區溢出。著作有〈程序攻擊原理〉〈Unix系統病毒概述〉〈高級緩沖溢出的使用〉
            
            bingle
            QQ:45671342
            很早就認識的一個兄弟了。著作不少,很多都很實用。
            
            wollf
            QQ:228095
            glacier的老婆。一定不能讓他知道我是誰,要不我就死定了。她是黑客 ;) 美女黑客!
            
            goodwell
            中國早期著名黑客組織-綠色兵團 創始人之一。
            
            yellow
            QQ:12398890
            中華安全網核心成員。熟悉緩沖區溢出與windows編程。
            
            江海客
            QQ:741534
            曾經參加某個會議的時候見過他,聊的還可以,后來在焦點峰會時又碰了面。此人是反病毒方面的高手。
            
            icmb
            啟明星辰linux方面的高手。對于漏洞方面很有研究。不帶眼睛更漂亮……
          posted @ 2005-12-23 03:58 konhon 優華 閱讀(4114) | 評論 (0)編輯 收藏

          僅列出標題
          共21頁: First 上一頁 5 6 7 8 9 10 11 12 13 下一頁 Last 
          主站蜘蛛池模板: 普洱| 大同市| 广宗县| 福建省| 泌阳县| 连山| 白朗县| 宜丰县| 玛沁县| 桑日县| 江津市| 麻江县| 盐城市| 余江县| 乡城县| 定州市| 深州市| 长汀县| 龙岩市| 二连浩特市| 于田县| 禄劝| 靖边县| 平度市| 中阳县| 普格县| 密山市| 塘沽区| 微山县| 迁西县| 信丰县| 正镶白旗| 元阳县| 无为县| 申扎县| 漠河县| 利津县| 荆州市| 钟祥市| 甘洛县| 皮山县|