vickzhu

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            151 隨筆 :: 0 文章 :: 34 評(píng)論 :: 0 Trackbacks
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(6)

          隨筆檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          #

          使用group by子句的注意事項(xiàng):

          (1)在SELECT子句的字段列表中,除了聚集函數(shù)外,其他所出現(xiàn)的字段一定要在group by子句中有定義才行。例如“group by A,B”,那么“SELECT SUM(A),C”就有問(wèn)題,因?yàn)镃不在group by中,但是SUM(A)是可以的。

          (2)SELECT子句的字段列表中不一定要有聚集函數(shù),但至少要用到group by子句列表中的一個(gè)項(xiàng)目。例如“group by A,B,C”,則“SELECT A”是可以的。

          (3)在SQL Server中text、ntext和image數(shù)據(jù)類型的字段不能作為group by子句的分組依據(jù)。

          posted @ 2009-04-21 18:26 筱 筱 閱讀(168) | 評(píng)論 (0)編輯 收藏

          格式 
          定義變量:
          $identifier
          $(identifier)
          $(identifier:conversion)

          變量的字符串級(jí)別最高,如果遇到相同的字符串,首先被認(rèn)為是變量。顯示$,需要后面在跟一個(gè),$$。例如:
          You account has $$1650.00 in it.

          變量名稱規(guī)則:
          1、變量名是由US-ASCII碼、下劃線和數(shù)字組成;
          2、只能以US-ASCII碼開頭;
          3、變量名大小寫敏感。
          注意:
          1、WML變量沒有類型,均表示為字符串;
          2、變量沒有被賦值的時(shí)候,內(nèi)容為空,即空字符串。
          3、可以在運(yùn)行過(guò)程中改變它的值。

          創(chuàng)建變量
          最簡(jiǎn)單的方法是使用<setvar>元素,語(yǔ)法如下:
          <setvar name="string" value="string" />

          <setvar>只能在<go>、<prev>和<refresh>中使用。
          下例定義了一個(gè)叫vNAME的變量并賦值為“Jeff”:
          <setvar name="vNAME" value="Jeff" />

          另外,還可以在<input>、<select>和<postfield>中定義變量。

          替換文本 
          變量可以用作替換用途,但只能在文本類型(如顯示字符、URL等)中使用。
          任何元素和屬性都不能使用變量來(lái)替代。例如:
          Hello, $vNAME.
          將顯示:
          Hello, Jeff.

          ESCAPE
          轉(zhuǎn)換

          前面說(shuō)過(guò)變量可以用作替換用途,但是在URL中使用時(shí),變量的內(nèi)容必須遵守[RFC2396]標(biāo)準(zhǔn)。
          這個(gè)標(biāo)準(zhǔn)規(guī)定某些特殊字符在URL里使用的時(shí)候必須用特殊表示方法,即ESCAPE八進(jìn)制表示。
          例如:
          list.asp?id=3

          在URL中要表示為:

          list.asp%3fid=3

          所以變量有可能需要標(biāo)志為是否對(duì)其內(nèi)容進(jìn)行ESCAPE轉(zhuǎn)換,變量定義就有如下幾種特殊方式:

          效果 表達(dá)方式1 表達(dá)方式2 表達(dá)方式3
          對(duì)變量中ESCAPE字符進(jìn)行轉(zhuǎn)換 $(var:e) $(var:E) $(var:escape)
          不進(jìn)行ESCAPE轉(zhuǎn)換 $(var:u) $(var:U) $(var:unesc)
          變量中沒有ESCAPE字符 $(var:n) $(var:N)

          $(noesc)


          給變量進(jìn)行ESCAPE轉(zhuǎn)換是WML的默認(rèn)方式。
          posted @ 2009-04-13 14:11 筱 筱 閱讀(153) | 評(píng)論 (0)編輯 收藏

          概述:
          Servlet監(jiān)聽器用于監(jiān)聽一些重要事件的發(fā)生,監(jiān)聽器對(duì)象可以在事情發(fā)生前、發(fā)生后可以做一些必要的處理。
          接口:
          目前Servlet2.4和JSP2.0總共有8個(gè)監(jiān)聽器接口和6個(gè)Event類,其中HttpSessionAttributeListener與
          HttpSessionBindingListener 皆使用HttpSessionBindingEvent;HttpSessionListener和 HttpSessionActivationListener則都使用HttpSessionEvent;其余Listener對(duì)應(yīng)的Event如下所 示:

          Listener接口

          Event

          ServletContextListener

          ServletContextEvent

          ServletContextAttributeListener

          ServletContextAttributeEvent

          HttpSessionListener

          HttpSessionEvent

          HttpSessionActivationListener

          HttpSessionAttributeListener

          HttpSessionBindingEvent

          HttpSessionBindingListener

          ServletRequestListener

          ServletRequestEvent

          ServletRequestAttributeListener

          ServletRequestAttributeEvent

          分別介紹:
          一 ServletContext相關(guān)監(jiān)聽接口
          補(bǔ)充知識(shí):
          通過(guò)ServletContext 的實(shí)例可以存取應(yīng)用程序的全局對(duì)象以及初始化階段的變量。
          在JSP文件中,application 是 ServletContext 的實(shí)例,由JSP容器默認(rèn)創(chuàng)建。Servlet 中調(diào)用 getServletContext()方法得到 ServletContext 的實(shí)例。
          注意:
          全局對(duì)象即Application范圍對(duì)象,初始化階段的變量指在web.xml中,經(jīng)由<context-param>元素所設(shè)定的變量,它的范圍也是Application范圍,例如:

          <context-param>
          <param-name>Name</param-name>
          <param-value>browser</param-value>
          </context-param>
          當(dāng)容器啟動(dòng)時(shí),會(huì)建立一個(gè)Application范圍的對(duì)象,若要在JSP網(wǎng)頁(yè)中取得此變量時(shí):
          String name = (String)application.getInitParameter("Name");
          或者使用EL時(shí):
          ${initPara.name}
          若是在Servlet中,取得Name的值方法:
          String name = (String)ServletContext.getInitParameter("Name");


          1.ServletContextListener:
          用于監(jiān)聽WEB 應(yīng)用啟動(dòng)和銷毀的事件,監(jiān)聽器類需要實(shí)現(xiàn)javax.servlet.ServletContextListener 接口。
          ServletContextListener 是 ServletContext 的監(jiān)聽者,如果 ServletContext 發(fā)生變化,如服務(wù)器啟動(dòng)時(shí) ServletContext 被創(chuàng)建,服務(wù)器關(guān)閉時(shí) ServletContext 將要被銷毀。

          ServletContextListener接口的方法:
          void contextInitialized(ServletContextEvent sce)
          通知正在接受的對(duì)象,應(yīng)用程序已經(jīng)被加載及初始化。
          void contextDestroyed(ServletContextEvent sce)
          通知正在接受的對(duì)象,應(yīng)用程序已經(jīng)被載出。

          ServletContextEvent中的方法:
          ServletContext getServletContext()
          取得ServletContext對(duì)象


          2.ServletContextAttributeListener:用于監(jiān)聽WEB應(yīng)用屬性改變的事件,包括:增加屬性、刪除屬性、修改屬性,監(jiān)聽器類需要實(shí)現(xiàn)javax.servlet.ServletContextAttributeListener接口。

          ServletContextAttributeListener接口方法:
          void attributeAdded(ServletContextAttributeEvent scab)
          若有對(duì)象加入Application的范圍,通知正在收聽的對(duì)象
          void attributeRemoved(ServletContextAttributeEvent scab)
          若有對(duì)象從Application的范圍移除,通知正在收聽的對(duì)象
          void attributeReplaced(ServletContextAttributeEvent scab)
          若在Application的范圍中,有對(duì)象取代另一個(gè)對(duì)象時(shí),通知正在收聽的對(duì)象


          ServletContextAttributeEvent中的方法:
          java.lang.String getName()
          回傳屬性的名稱
          java.lang.Object getValue()
          回傳屬性的值

          二、HttpSession相關(guān)監(jiān)聽接口
          1.HttpSessionBindingListener接口
          注意:HttpSessionBindingListener接口是唯一不需要再web.xml中設(shè)定的Listener

          當(dāng)我們的類實(shí)現(xiàn)了HttpSessionBindingListener接口后,只要對(duì)象加入Session范圍 (即調(diào)用HttpSession對(duì)象的setAttribute方法的時(shí)候)或從Session范圍中移出(即調(diào)用HttpSession對(duì)象的 removeAttribute方法的時(shí)候或Session Time out的時(shí)候)時(shí),容器分別會(huì)自動(dòng)調(diào)用下列兩個(gè)方法:
          void valueBound(HttpSessionBindingEvent event)
          void valueUnbound(HttpSessionBindingEvent event)

          思考:如何實(shí)現(xiàn)記錄網(wǎng)站的客戶登錄日志, 統(tǒng)計(jì)在線人數(shù)?

          2.HttpSessionAttributeListener接口
          HttpSessionAttributeListener監(jiān)聽HttpSession中的屬性的操作。
          當(dāng) 在Session增加一個(gè)屬性時(shí),激發(fā)attributeAdded(HttpSessionBindingEvent se) 方法;當(dāng)在Session刪除一個(gè)屬性時(shí),激發(fā)attributeRemoved(HttpSessionBindingEvent se)方法;當(dāng)在Session屬性被重新設(shè)置時(shí),激發(fā)attributeReplaced(HttpSessionBindingEvent se) 方法。這和ServletContextAttributeListener比較類似。

          3.HttpSessionListener接口
          HttpSessionListener監(jiān)聽 HttpSession的操作。當(dāng)創(chuàng)建一個(gè)Session時(shí),激發(fā)session Created(HttpSessionEvent se)方法;當(dāng)銷毀一個(gè)Session時(shí),激發(fā)sessionDestroyed (HttpSessionEvent se)方法。

          4.HttpSessionActivationListener接口
          主要用于同一個(gè)Session轉(zhuǎn)移至不同的JVM的情形。

          請(qǐng)注意HttpSessionAttributeListener與HttpSessionBindingListener的區(qū)別:
          1.前者是需要在web.xml中進(jìn)行描述的,后者不需要。
          2.前者是在任何session的屬生變化時(shí)都會(huì)觸發(fā)執(zhí)行其方法中的代碼,而后者只是在實(shí)現(xiàn)它的對(duì)象被綁定到會(huì)話屬性或被從會(huì)話屬生中解除綁定時(shí),才會(huì)觸發(fā)執(zhí)行那個(gè)對(duì)象的valueBound和valueUnboundy這兩個(gè)方法的代碼。比如說(shuō)有兩個(gè)對(duì)象A和B都實(shí)現(xiàn)了HttpSessionBindingListener接口,當(dāng)A被綁定到會(huì)話屬性中時(shí),只是A的valueBound()方法被觸發(fā)執(zhí)行。


          三、ServletRequest監(jiān)聽接口
          1.ServletRequestListener接口
          和ServletContextListener接口類似的,這里由ServletContext改為ServletRequest
          2.ServletRequestAttributeListener接口
          和ServletContextListener接口類似的,這里由ServletContext改為ServletRequest

            下面說(shuō)明如何在web.xml中布署事件監(jiān)聽器以實(shí)現(xiàn)對(duì)事件的處理,格式如下:
          <listener>
            <listener-class> 
              fey.servlet.listener.CustomServletContextListener 
            </listener-class >  
          </listener>
            其中fey.servlet.listener.CustomServletContextListener是實(shí)現(xiàn)上述各事件監(jiān)聽器接口的類名。當(dāng)然,你需要將這些類放入Web容器的Web應(yīng)用的classes或lib目錄下以讓W(xué)eb容器可以找到。
            另外說(shuō)明一點(diǎn),一個(gè)類可以一個(gè)或多個(gè)監(jiān)聽器接口。

          有的listener可用于統(tǒng)計(jì)網(wǎng)站在線人數(shù)及訪問(wèn)量。 如下:

          服務(wù)器啟動(dòng)時(shí)(實(shí)現(xiàn)ServletContextListener監(jiān)聽器contextInitialized方法),讀取數(shù)據(jù)庫(kù),并將其用一個(gè)計(jì)數(shù)變量保存在application范圍內(nèi)

          session創(chuàng)建時(shí)(實(shí)現(xiàn)HttpSessionListener監(jiān)聽器sessionCreated方法),讀取計(jì)數(shù)變量加1并重新保存

          服務(wù)器關(guān)閉時(shí)(實(shí)現(xiàn)ServletContextListener監(jiān)聽器contextDestroyed方法),更新數(shù)據(jù)庫(kù)

          簡(jiǎn)例一

          監(jiān)聽用戶上線與退出,顯示在線用戶

          1、登陸頁(yè)面 Login.jsp

          <%@page pageEncoding="gb2312" contentType="text/html; charset=gb2312" %>
          <%
          session=request.getSession(false);
          if(session!=null)session.invalidate();
          %>
          <html>
          <head><title></title></head>
          <body>
          <form action="isOnline.jsp" method="post">
          用戶名:<input type="text" name="uName"/>
          <input type="submit" value="上線">
          </form>
          </body>
          </html>

          2、控制頁(yè)面(只是為了說(shuō)明監(jiān)聽器問(wèn)題,所以簡(jiǎn)單了點(diǎn)...) isOnline.jsp

          <%@page pageEncoding="gb2312" contentType="text/html; charset=gb2312" %>
          <html>
          <head><title></title></head>
          <body>
          <%
          session=request.getSession();
          session.setAttribute("userName",request.getParameter("uName"));
          response.sendRedirect("showOnline.jsp");
          %>
          </body>
          </html>


          3、顯示頁(yè)面 showOnline.jsp

          <%@page pageEncoding="gb2312" contentType="text/html; charset=gb2312" import="java.util.ArrayList" %>
          <html>
          <head><title></title></head>
          <body>
          <%
          ArrayList showList=(ArrayList)(getServletContext().getAttribute("list"));
          out.print("在線人數(shù) "+showList.size()+"<br>");
          for(int i=0;i<showList.size();i++){
          out.print(showList.get(i)+"在線"+"<br>");
          }
          %>
          <br>
          <a href="Login.jsp">退出</a>
          </body>
          </html>

          4、配置頁(yè)面 web.xml

          <?xml version="1.0" encoding="gb2312"?>
          <!DOCTYPE web-app
              PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
              "
          http://java.sun.com/dtd/web-app_2_3.dtd">
          <web-app>
          <listener>
              <listener-class>org.xiosu.listener.onlineListener</listener-class>
          </listener>
          </web-app>

          5、監(jiān)聽器 onlineListener.java

          package org.xiosu.listener;

          import java.util.ArrayList;
          import javax.servlet.ServletContext;
          import javax.servlet.http.HttpSessionAttributeListener;
          import javax.servlet.http.HttpSessionBindingEvent;
          import javax.servlet.http.HttpSessionEvent;
          import javax.servlet.http.HttpSessionListener;

          public class onlineListener implements HttpSessionListener,
          HttpSessionAttributeListener {
          // 參數(shù)
          ServletContext sc;
          ArrayList list = new ArrayList();
          // 新建一個(gè)session時(shí)觸發(fā)此操作
          public void sessionCreated(HttpSessionEvent se) {
          sc=se.getSession().getServletContext();
          System.out.println("新建一個(gè)session");
          }
          // 銷毀一個(gè)session時(shí)觸發(fā)此操作
          public void sessionDestroyed(HttpSessionEvent se) {
          System.out.println("銷毀一個(gè)session");
          if (!list.isEmpty()) {
             list.remove((String) se.getSession().getAttribute("userName"));
             sc.setAttribute("list", list);
          }
          }
          // 在session中添加對(duì)象時(shí)觸發(fā)此操作,在list中添加一個(gè)對(duì)象
          public void attributeAdded(HttpSessionBindingEvent sbe) {
          list.add((String) sbe.getValue());
          sc.setAttribute("list", list);
          }
          // 修改、刪除session中添加對(duì)象時(shí)觸發(fā)此操作
          public void attributeRemoved(HttpSessionBindingEvent arg0) {
          }
          public void attributeReplaced(HttpSessionBindingEvent arg0) {
          }
          }

          在Web開發(fā)中關(guān)于監(jiān)聽器的應(yīng)用
          首先,也要在web.xml配置文件中進(jìn)行聲明:
                  在web.xml文件中的聲明如下:(聲明片斷)    要放在filter過(guò)濾器聲明和filter-mapping聲明后面
             
             <listener>
                  <listener-class>markchen.web.listener.MySessionListener</listener-class>
              </listener>
              <listener>
                   <listener-class>markchen.web.listener.MyServletContextListener</listener-class>
              </listener>


          //這兩個(gè)java類的內(nèi)容都和簡(jiǎn)單,僅僅是為了演示說(shuō)明而已

          //MySessionListener.java文件的內(nèi)容如下
               //Web應(yīng)用程序中會(huì)話的生命周期監(jiān)聽器實(shí)現(xiàn)   
          package markchen.web.listener;

          import javax.servlet.http.HttpSession;
          import javax.servlet.http.HttpSessionEvent;
          import javax.servlet.http.HttpSessionListener;

          public class MySessionListener implements HttpSessionListener {
             
              //在會(huì)話一創(chuàng)建時(shí)該方法被調(diào)用,可以在此處編寫自己需要做特殊處理的程序代碼
               public void sessionCreated(HttpSessionEvent event) {
                         
                            HttpSession session = event.getSession();       
                            String sessionId=session.getId();
                            System.out.println("Session::::::"+sessionId+"******Created******");
                  }
                 
               //在會(huì)話即將銷毀時(shí)該方法被調(diào)用,可以在此處編寫自己需要做特殊處理的程序代碼
               public void sessionDestroyed(HttpSessionEvent event) {
                         
                           HttpSession session = event.getSession();       
                           String sessionId=session.getId();
                           System.out.println("Session::::::"+sessionId+"******Destroyed******");
                 
                          }       
          }
              
                注意:在sessionDestroyed()方法中一定不要再調(diào)用session.invalidate()方法了
                      因?yàn)槊空{(diào)用一次session.invalidate()方法都會(huì)觸發(fā)sessionDestroyed()方法的調(diào)用
                       進(jìn)而形成死循環(huán),最終使Web應(yīng)用程序意外終止

                //MyServletContextListener.java
                      //Web應(yīng)用程序的生命周期監(jiān)聽器實(shí)現(xiàn)
          package markchen.web.listener;

          import javax.servlet.ServletContextEvent;
          import javax.servlet.ServletContextListener;

          public class MyServletContextListener implements ServletContextListener {
                 
                   //在Web應(yīng)用程序初始化后該方法被調(diào)用
                   public void contextInitialized(ServletContextEvent event) {
                        
                        System.out.println("******Application started******");               
                   }
                 
                   //在Web應(yīng)用程序銷毀時(shí)該方法被調(diào)用
                 public void contextDestroyed(ServletContextEvent event) {

                           System.out.println("******Application ended******");               
                  }
          }

          posted @ 2009-04-08 10:07 筱 筱 閱讀(1570) | 評(píng)論 (0)編輯 收藏

          一,查看linux的ssh服務(wù)是否已經(jīng)啟動(dòng):service sshd status;
              如果沒有啟動(dòng)則執(zhí)行:service sshd start 或者 service sshd restart
          二,使linux防火墻開啟22端口,因?yàn)閟sh是通過(guò)22端口提供服務(wù)的
              1.在/etc/sysconfig/iptables里添加

          -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT


              2.重啟iptables

          [root@localhost ~]# /etc/init.d/iptables restart


              3.看下狀態(tài)

          [root@localhost ~]# /etc/init.d/iptables status

          三,使用SSH Secure shell連接,選接連接方式為:password。

          四,OK

          posted @ 2009-03-28 21:56 筱 筱 閱讀(582) | 評(píng)論 (0)編輯 收藏

          redhat9下安裝VMware Tools

          下面是安裝步驟:
          1.啟動(dòng)Rad Hat 9.0(圖形界面方式登陸),并且以管理員的身份登陸。
          2.在VMware虛擬機(jī)的菜單中點(diǎn)擊:虛擬機(jī)->安裝VMware 工具->install。
          3.Red Hat 9.0自動(dòng)掛載VMware Tools的虛擬光驅(qū),并顯示在桌面。
          4.進(jìn)去VMware Tools的虛擬光驅(qū)里,把VMwareTools-5.5.1-19175.tar.gz復(fù)制到/tmp目錄。
          5.進(jìn)去/tmp目錄,把VMwareTools-5.5.1-19175.tar.gz解壓到當(dāng)前目錄下。
          6.打開一個(gè)終端(shell),并以root身份登陸。
          7.輸入以下命令:cd /tmp/vmware-tools-distrib(進(jìn)入vmware-tools-distrib目錄)。
          8.輸入:./vmware-install.pl(執(zhí)行vmware-install.pl文件)。
          9.然后一路“回車”,就OK。
          10. 輸入reboot命令(重新啟動(dòng))。
          OK?。?!

          posted @ 2009-03-26 17:03 筱 筱 閱讀(132) | 評(píng)論 (0)編輯 收藏

            Web2.0時(shí)代,大家都一再?gòu)?qiáng)調(diào)互動(dòng)! 互動(dòng)! 互動(dòng)! 企業(yè)級(jí)網(wǎng)站需要與客戶溝通互動(dòng),所以我們之前介紹了10款免費(fèi)的網(wǎng)站在線客服系統(tǒng),個(gè)人站長(zhǎng)們也越來(lái)越追求互動(dòng),博客從一開始就為互動(dòng)而生,好像不互動(dòng)就不像個(gè)博客似兒的.雖然本博早已厭倦互動(dòng),但還是為大家介紹10多款基于Web的網(wǎng)頁(yè)即時(shí)聊天程序.使用網(wǎng)頁(yè)即時(shí)聊天程序的好處就是,讓訪客能即時(shí)的和站長(zhǎng)或博客主溝通交流,形成良好的氛圍,甚至成為朋友.尤其對(duì)博客來(lái)說(shuō),能很好的增加穩(wěn)定的讀者群.

          注:下面的其中幾個(gè)程序并非標(biāo)準(zhǔn)的Web即時(shí)聊天程序,只能算留言本而已.但其實(shí)他能當(dāng)聊天程序用,只是少了”即時(shí)”…

          Plugoo

          plugoo不需要額外的帳號(hào),只需要你經(jīng)常使用的IM帳號(hào)即可(目前plugoo支持的IM 有: MSN Messenger/ Yahoo! Messenger/ GoogleTalk/ Jabber ),注冊(cè)成功以后系統(tǒng)會(huì)自動(dòng)添加 plugoo@plugoo.com為你IM的好友,同時(shí)生成一段代碼,掛在自己的網(wǎng)站上便可以直接于你網(wǎng)站的訪客進(jìn)行Web網(wǎng)頁(yè)即時(shí)聊天。via

          Hab.la

          一款十分高效且簡(jiǎn)潔的網(wǎng)頁(yè)即時(shí)聊天程序序,一段簡(jiǎn)單的Javascript代碼可以幫助你完善個(gè)人站點(diǎn)的客服系統(tǒng)。Hab.la 目前仍然是一款測(cè)試中的產(chǎn)品,他們提供了一整套高效的網(wǎng)頁(yè)客服解決方案。缺少了MSN、AIM、Y! Messenger等多款I(lǐng)M通信協(xié)議的支持外,Hab.la 幾乎同Plugoo實(shí)現(xiàn)的功能如出一轍——只需要在自己的站點(diǎn)中添加上一小段輕量級(jí)的Javascript代碼,便可以很輕松的幫助站長(zhǎng)和管理員來(lái)連接自己用戶和讀者,并建立相對(duì)比較完善的客服系統(tǒng)。目前,Hab.la 已經(jīng)能夠全面支持Jabber與Google Talk!via

          Chatback Badge

          Chatback Badge是Google Talk團(tuán)隊(duì)發(fā)布的一款很有意思的網(wǎng)頁(yè)即時(shí)聊天小工具,它可以在頁(yè)面上實(shí)時(shí)顯示你的GT在線狀態(tài)以及個(gè)性化簽名等信息;不僅如 此,Chatback 還是一款可以即時(shí)引導(dǎo)用戶進(jìn)入Google Talk 網(wǎng)頁(yè)版 Badge進(jìn)行實(shí)時(shí)交流狀態(tài)的擴(kuò)展,這樣,你的訪客便可以借助網(wǎng)頁(yè)版GT和你的客戶端GTalk進(jìn)行即時(shí)聊天了,簡(jiǎn)單而快捷,你的讀者甚至不需要獨(dú)立的 GTalk帳戶也能夠輕松和你交流。via

          TocPlus

          TocPlus是讓您直接與網(wǎng)上商城、博客、網(wǎng)頁(yè)的訪客進(jìn)行實(shí)時(shí)對(duì)話的通訊系統(tǒng)。如果將TocPlus的服務(wù)適用于網(wǎng)上商城,就如地面商城可以向顧客直接推薦合適的商品或即時(shí)回答顧客所提出的咨詢,因此可提高營(yíng)業(yè)效益。TocPlus的所有服務(wù)為免費(fèi)。

          vawkr

          一個(gè)即時(shí)的視頻聊天服務(wù),通常我們需要使用同一種IM即時(shí)聊天工具,才能實(shí)現(xiàn)和別人視頻聊天,但是通過(guò)vawkr,只要雙方都有攝像頭,那么無(wú)需下載任何 IM工具,雙方都可進(jìn)行視頻聊天,你可以創(chuàng)建一個(gè)永久的聊天室,然后得到一個(gè)url地址,將這個(gè)地址發(fā)給你要邀請(qǐng)的人,當(dāng)他點(diǎn)擊進(jìn)入后,如果允許 vawkr使用其攝像頭和麥克風(fēng),那么你們就可以進(jìn)行視頻聊天了,vawkr還支持將聊天室放在MySpace 、Facebook、 blog 或者web上。via

          -以下5個(gè)來(lái)自web20share

          Gabbly

          可 以在瀏覽器,網(wǎng)頁(yè)中嵌入聊天系統(tǒng),可以自定義用戶名,顯示在線訪問(wèn)人數(shù),訪客登陸/離開網(wǎng)站提示(可以選擇關(guān)閉),訪客登陸提示音(可以選擇關(guān)閉),所有 聊天記錄都可以被RSS訂閱保存。Gabbly還有一個(gè)功能,任何一個(gè)網(wǎng)頁(yè),即便沒有裝Gabbly 在線聊天器,你只要在網(wǎng)址前加上’gabbly.com/’,如gabbly.com/hopesome.com,就可以和同在這個(gè)頁(yè)面的人即時(shí)聊天。

          Blobber

          功能和Gabbly類似,需要注冊(cè)。

          Woocall

          新浪推出的服務(wù),和新浪網(wǎng)頁(yè)上的差不多。需要郵件申請(qǐng),感覺用戶的可定制性不是很強(qiáng).

          MeeboMe
          作 為一個(gè)可以嵌入website/blog的flash widget,本身并不突出,但是當(dāng)它和Meebo結(jié)合起來(lái)之后,任何人都會(huì)覺得眼前一亮!換句簡(jiǎn)單點(diǎn)的話說(shuō),登錄Meebo之后,你不僅可以同時(shí)和 MSN、Y!M、Jabber/Gtalk以及AIM中的聯(lián)系人進(jìn)行交流,而且還能實(shí)時(shí)地和你的website/blog上的讀者進(jìn)行交流,而這一切都在 你的瀏覽器頁(yè)面中完成.

          Cbox-blog
          Cbox-更像是一個(gè)可以嵌入到blog中的留言本服務(wù),使用非常簡(jiǎn)單方便,通過(guò)調(diào)用一段代碼就可插入到blog中。并且還可以自定義大小和顏色樣式等,以便符合自已的blog風(fēng)絡(luò)。

          Twitterchat

          通過(guò)twitter也可以做個(gè)簡(jiǎn)單的聊天室. 你必須有個(gè)twitter帳號(hào),然后在 twitterchat.com注冊(cè)一個(gè)帳號(hào),需要用twitter的用戶名及密碼,郵箱填自己的隨便一個(gè).注冊(cè)后會(huì)得到一段代碼,可以自己修改聊天窗口寬和高。然后掛在自己上的blog 即可。via

          chirrup

          Chirrup是一個(gè)基于twitter的簡(jiǎn)單的評(píng)論/留言系統(tǒng),可以很方便地加入到自己blog/wiki/Web中。如果你的blog或者其他web沒有評(píng)論或者留言本系統(tǒng),除了以前介紹的js-kit外,chirrup也是一個(gè)不錯(cuò)的選擇,在twitter“大行其道”的網(wǎng)絡(luò)時(shí)代,所謂“鳥隨鸞鳳飛騰遠(yuǎn),人伴賢良品質(zhì)高”,安裝一個(gè)基于twitter的留言或評(píng)論系統(tǒng),對(duì)提高blog的流量、人氣等等也是很有幫助的。使用方法

          Aimboo

          是一個(gè)類似于Plugoo的 即時(shí)通訊服務(wù),可通過(guò)代碼調(diào)用放置一個(gè)聊天窗口在你的Blog上,并與你的本地IM軟件連接,這樣當(dāng)你的讀者訪問(wèn)你的Blog時(shí),就可以與你及時(shí)聯(lián)絡(luò)了, 目前 Aimboo支持Jabber、Gtalk、MSN、AIM及ICQ等常用的IM協(xié)議。

          posted @ 2009-03-24 11:33 筱 筱 閱讀(2877) | 評(píng)論 (0)編輯 收藏

          FTPClient client = new FTPClient();
            client.connect("ip地址", 21);
            client.login("用戶名", "密碼");
            client.setSoTimeout(5000);//設(shè)置連接超時(shí)時(shí)間為5000毫秒
            // 在嘗試連接以后,你應(yīng)該檢查返回碼驗(yàn)證是否連接成功!
            int reply = client.getReplyCode();
            if (!FTPReply.isPositiveCompletion(reply)) {
             client.disconnect();
             System.err.println("FTP 服務(wù)器拒絕連接.");
             System.exit(1);
            }
            System.out.println("連接正在建立中......");
            if (client.isConnected()) {
             System.out.println("連接已建立!");
             client.setControlEncoding("gb2312");// 設(shè)置編碼方式,默認(rèn)編碼方式為:ISO8859-1
             client.changeWorkingDirectory("archives");// 改變當(dāng)前ftp的工作目錄
             // client.changeToParentDirectory();//回到上級(jí)目錄
             FTPFile[] fs = client.listFiles(); // 得到當(dāng)前工作目錄下的所有文件
             for (FTPFile ff : fs) {
              if (ff.getName().equals("test.txt")) {
               File file = new File("E:\\ftpdata" + File.separator
                 + "test.txt");
               RandomAccessFile rfile = new RandomAccessFile(file, "rw");// 隨機(jī)訪問(wèn)文件類
               long offset = rfile.length();
               client.setRestartOffset(offset);
               rfile.seek(offset);
               InputStream input = client
                 .retrieveFileStream("test.txt");
               byte[] data = new byte[1024];
               System.out.println(new Date() + " 數(shù)據(jù)寫入中...");
               while (input.read(data) != -1) {
                rfile.write(data);
               }
               System.out.println(new Date() + " 所有數(shù)據(jù)已接受完成!");
               input.close();
               rfile.close();
              }
             }
            }
            client.logout();
            client.disconnect();
          posted @ 2009-03-20 11:20 筱 筱 閱讀(1922) | 評(píng)論 (0)編輯 收藏

          基本步驟:
              1,創(chuàng)建連接
              2,登錄
              3,上傳或下載文件
              4,退出
              5,斷開連接
          常用方法:
              void setControlEncoding(String encoding):設(shè)置FTP控制連接的編碼方式(默認(rèn)讀取中文文件名時(shí)為亂碼)
              boolean changeWorkingDirectory(String pathname):設(shè)置當(dāng)前的工作目錄
              boolean changeToParentDirectory():返回上級(jí)目錄
              void setRestartOffset(long offset):設(shè)置重新啟動(dòng)的偏移量(用于斷點(diǎn)續(xù)傳)
          下載文件:
              boolean retrieveFile(String,remote,OutputStream local):從服務(wù)器返回指定名稱的文件并且寫入到OuputStream,以便寫入到文件或其它地方。
              InputStream retrieveFileStream(String remote):從服務(wù)器返回指定名稱的文件的InputStream以便讀取。
          上傳文件:
              boolean storeFile(String remote,InputStream local):利用給定的名字(remote)和輸入流(InputStream)向服務(wù)器上傳一個(gè)文件。
              OutputStream storeFileStream(String remote):根據(jù)給定的名字返回一個(gè)能夠向服務(wù)器上傳文件的OutputStream。
              boolean storeUniqueFile(InputStream local):根據(jù)服務(wù)器自己指定的唯一的名字和輸入流InputStream向服務(wù)器上傳一個(gè)文件。
              boolean storeUniqueFile(String remote,InputStream local):根據(jù)指定的名字和輸入流InputStream向服務(wù)器上傳一個(gè)文件。
              OuputStream storeUniqueFileStream():返回一個(gè)輸出流OutputStream,以便向服務(wù)器寫入一個(gè)文件,該文件由服務(wù)器自己命名。
              OutputStream storeUniqueFileStream(String remote):返回一個(gè)輸出流OutputStream,以便向服務(wù)器寫入一個(gè)文件,該文件由用戶自己指定。

          posted @ 2009-03-20 10:57 筱 筱 閱讀(506) | 評(píng)論 (0)編輯 收藏

              OutputStream os=new FileOutputStream("");
            OutputStreamWriter osr=new OutputStreamWriter(os);
            BufferedWriter bw=new BufferedWriter(osr);
              
              InputStream is = new FileInputStream("");
            InputStreamReader isr=new InputStreamReader(is);
            BufferedReader br=new BufferedReader(isr);

              
          posted @ 2009-03-19 09:47 筱 筱 閱讀(572) | 評(píng)論 (0)編輯 收藏

          oracle占領(lǐng)http8080端口的問(wèn)題最近得以解決
          最簡(jiǎn)單的一種:
          登錄oracle enterprise manager console 選擇獨(dú)立登錄,選擇xml數(shù)據(jù)庫(kù),配置,直接修改http-port就ok了!
          posted @ 2009-03-13 14:59 筱 筱 閱讀(299) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題
          共9頁(yè): 上一頁(yè) 1 2 3 4 5 6 7 8 9 下一頁(yè) 
          主站蜘蛛池模板: 左权县| 安阳县| 临邑县| 富锦市| 津南区| 石屏县| 密山市| 菏泽市| 大化| 黑龙江省| 太白县| 都安| 固阳县| 双城市| 衢州市| 湖口县| 宣恩县| 鹤壁市| 余干县| 翁牛特旗| 莱阳市| 象州县| 胶州市| 启东市| 汤阴县| 故城县| 申扎县| 平邑县| 长白| 田阳县| 彰武县| 武威市| 奉贤区| 千阳县| 宜兴市| 桃江县| 香河县| 台南市| 龙川县| 榆树市| 砀山县|