vickzhu

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  151 随笔 :: 0 文章 :: 34 评论 :: 0 Trackbacks

#

使用group by子句的注意事项:

(1)在SELECT子句的字段列表中,除了聚集函数外,其他所出现的字段一定要在group by子句中有定义才行。例如“group by A,B”,那么“SELECT SUM(A),C”就有问题,因为C不在group by中,但是SUM(A)是可以的。

(2)SELECT子句的字段列表中不一定要有聚集函数,但至少要用到group by子句列表中的一个项目。例如“group by A,B,C”,则“SELECT A”是可以的。

(3)在SQL Server中text、ntext和image数据类型的字段不能作为group by子句的分组依据。

posted @ 2009-04-21 18:26 筱 筱 阅读(149) | 评论 (0)编辑 收藏

格式 
定义变量:
$identifier
$(identifier)
$(identifier:conversion)

变量的字符串级别最高,如果遇到相同的字符串,首先被认为是变量。显示$,需要后面在跟一个,$$。例如:
You account has $$1650.00 in it.

变量名称规则:
1、变量名是由US-ASCII码、下划线和数字组成;
2、只能以US-ASCII码开头;
3、变量名大小写敏感。
注意:
1、WML变量没有类型,均表示为字符串;
2、变量没有被赋值的时候,内容为空,即空字符串。
3、可以在运行过程中改变它的值。

创建变量
最简单的方法是使用<setvar>元素,语法如下:
<setvar name="string" value="string" />

<setvar>只能在<go>、<prev>和<refresh>中使用。
下例定义了一个叫vNAME的变量并赋值为“Jeff”:
<setvar name="vNAME" value="Jeff" />

另外,还可以在<input>、<select>和<postfield>中定义变量。

替换文本 
变量可以用作替换用途,但只能在文本类型(如显示字符、URL等)中使用。
任何元素和属性都不能使用变量来替代。例如:
Hello, $vNAME.
将显示:
Hello, Jeff.

ESCAPE
转换

前面说过变量可以用作替换用途,但是在URL中使用时,变量的内容必须遵守[RFC2396]标准。
这个标准规定某些特殊字符在URL里使用的时候必须用特殊表示方法,即ESCAPE八进制表示。
例如:
list.asp?id=3

在URL中要表示为:

list.asp%3fid=3

所以变量有可能需要标志为是否对其内容进行ESCAPE转换,变量定义就有如下几种特殊方式:

效果 表达方式1 表达方式2 表达方式3
对变量中ESCAPE字符进行转换 $(var:e) $(var:E) $(var:escape)
不进行ESCAPE转换 $(var:u) $(var:U) $(var:unesc)
变量中没有ESCAPE字符 $(var:n) $(var:N)

$(noesc)


给变量进行ESCAPE转换是WML的默认方式。
posted @ 2009-04-13 14:11 筱 筱 阅读(147) | 评论 (0)编辑 收藏

概述:
Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理。
接口:
目前Servlet2.4和JSP2.0总共有8个监听器接口和6个Event类,其中HttpSessionAttributeListener与
HttpSessionBindingListener 皆使用HttpSessionBindingEvent;HttpSessionListener和 HttpSessionActivationListener则都使用HttpSessionEvent;其余Listener对应的Event如下所 示:

Listener接口

Event

ServletContextListener

ServletContextEvent

ServletContextAttributeListener

ServletContextAttributeEvent

HttpSessionListener

HttpSessionEvent

HttpSessionActivationListener

HttpSessionAttributeListener

HttpSessionBindingEvent

HttpSessionBindingListener

ServletRequestListener

ServletRequestEvent

ServletRequestAttributeListener

ServletRequestAttributeEvent

分别介绍:
一 ServletContext相关监听接口
补充知识:
通过ServletContext 的实例可以存取应用程序的全局对象以及初始化阶段的变量。
在JSP文件中,application 是 ServletContext 的实例,由JSP容器默认创建。Servlet 中调用 getServletContext()方法得到 ServletContext 的实例。
注意:
全局对象即Application范围对象,初始化阶段的变量指在web.xml中,经由<context-param>元素所设定的变量,它的范围也是Application范围,例如:

<context-param>
<param-name>Name</param-name>
<param-value>browser</param-value>
</context-param>
当容器启动时,会建立一个Application范围的对象,若要在JSP网页中取得此变量时:
String name = (String)application.getInitParameter("Name");
或者使用EL时:
${initPara.name}
若是在Servlet中,取得Name的值方法:
String name = (String)ServletContext.getInitParameter("Name");


1.ServletContextListener:
用于监听WEB 应用启动和销毁的事件,监听器类需要实现javax.servlet.ServletContextListener 接口。
ServletContextListener 是 ServletContext 的监听者,如果 ServletContext 发生变化,如服务器启动时 ServletContext 被创建,服务器关闭时 ServletContext 将要被销毁。

ServletContextListener接口的方法:
void contextInitialized(ServletContextEvent sce)
通知正在接受的对象,应用程序已经被加载及初始化。
void contextDestroyed(ServletContextEvent sce)
通知正在接受的对象,应用程序已经被载出。

ServletContextEvent中的方法:
ServletContext getServletContext()
取得ServletContext对象


2.ServletContextAttributeListener:用于监听WEB应用属性改变的事件,包括:增加属性、删除属性、修改属性,监听器类需要实现javax.servlet.ServletContextAttributeListener接口。

ServletContextAttributeListener接口方法:
void attributeAdded(ServletContextAttributeEvent scab)
若有对象加入Application的范围,通知正在收听的对象
void attributeRemoved(ServletContextAttributeEvent scab)
若有对象从Application的范围移除,通知正在收听的对象
void attributeReplaced(ServletContextAttributeEvent scab)
若在Application的范围中,有对象取代另一个对象时,通知正在收听的对象


ServletContextAttributeEvent中的方法:
java.lang.String getName()
回传属性的名称
java.lang.Object getValue()
回传属性的值

二、HttpSession相关监听接口
1.HttpSessionBindingListener接口
注意:HttpSessionBindingListener接口是唯一不需要再web.xml中设定的Listener

当我们的类实现了HttpSessionBindingListener接口后,只要对象加入Session范围 (即调用HttpSession对象的setAttribute方法的时候)或从Session范围中移出(即调用HttpSession对象的 removeAttribute方法的时候或Session Time out的时候)时,容器分别会自动调用下列两个方法:
void valueBound(HttpSessionBindingEvent event)
void valueUnbound(HttpSessionBindingEvent event)

思考:如何实现记录网站的客户登录日志, 统计在线人数?

2.HttpSessionAttributeListener接口
HttpSessionAttributeListener监听HttpSession中的属性的操作。
当 在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se) 方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法。这和ServletContextAttributeListener比较类似。

3.HttpSessionListener接口
HttpSessionListener监听 HttpSession的操作。当创建一个Session时,激发session Created(HttpSessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法。

4.HttpSessionActivationListener接口
主要用于同一个Session转移至不同的JVM的情形。

请注意HttpSessionAttributeListener与HttpSessionBindingListener的区别:
1.前者是需要在web.xml中进行描述的,后者不需要。
2.前者是在任何session的属生变化时都会触发执行其方法中的代码,而后者只是在实现它的对象被绑定到会话属性或被从会话属生中解除绑定时,才会触发执行那个对象的valueBound和valueUnboundy这两个方法的代码。比如说有两个对象A和B都实现了HttpSessionBindingListener接口,当A被绑定到会话属性中时,只是A的valueBound()方法被触发执行。


三、ServletRequest监听接口
1.ServletRequestListener接口
和ServletContextListener接口类似的,这里由ServletContext改为ServletRequest
2.ServletRequestAttributeListener接口
和ServletContextListener接口类似的,这里由ServletContext改为ServletRequest

  下面说明如何在web.xml中布署事件监听器以实现对事件的处理,格式如下:
<listener>
  <listener-class> 
    fey.servlet.listener.CustomServletContextListener 
  </listener-class >  
</listener>
  其中fey.servlet.listener.CustomServletContextListener是实现上述各事件监听器接口的类名。当然,你需要将这些类放入Web容器的Web应用的classes或lib目录下以让Web容器可以找到。
  另外说明一点,一个类可以一个或多个监听器接口。

有的listener可用于统计网站在线人数及访问量。 如下:

服务器启动时(实现ServletContextListener监听器contextInitialized方法),读取数据库,并将其用一个计数变量保存在application范围内

session创建时(实现HttpSessionListener监听器sessionCreated方法),读取计数变量加1并重新保存

服务器关闭时(实现ServletContextListener监听器contextDestroyed方法),更新数据库

简例一

监听用户上线与退出,显示在线用户

1、登陆页面 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、控制页面(只是为了说明监听器问题,所以简单了点...) 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、显示页面 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("在线人数 "+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、配置页面 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、监听器 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 {
// 参数
ServletContext sc;
ArrayList list = new ArrayList();
// 新建一个session时触发此操作
public void sessionCreated(HttpSessionEvent se) {
sc=se.getSession().getServletContext();
System.out.println("新建一个session");
}
// 销毁一个session时触发此操作
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("销毁一个session");
if (!list.isEmpty()) {
   list.remove((String) se.getSession().getAttribute("userName"));
   sc.setAttribute("list", list);
}
}
// 在session中添加对象时触发此操作,在list中添加一个对象
public void attributeAdded(HttpSessionBindingEvent sbe) {
list.add((String) sbe.getValue());
sc.setAttribute("list", list);
}
// 修改、删除session中添加对象时触发此操作
public void attributeRemoved(HttpSessionBindingEvent arg0) {
}
public void attributeReplaced(HttpSessionBindingEvent arg0) {
}
}

在Web开发中关于监听器的应用
首先,也要在web.xml配置文件中进行声明:
        在web.xml文件中的声明如下:(声明片断)    要放在filter过滤器声明和filter-mapping声明后面
   
   <listener>
        <listener-class>markchen.web.listener.MySessionListener</listener-class>
    </listener>
    <listener>
         <listener-class>markchen.web.listener.MyServletContextListener</listener-class>
    </listener>


//这两个java类的内容都和简单,仅仅是为了演示说明而已

//MySessionListener.java文件的内容如下
     //Web应用程序中会话的生命周期监听器实现   
package markchen.web.listener;

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

public class MySessionListener implements HttpSessionListener {
   
    //在会话一创建时该方法被调用,可以在此处编写自己需要做特殊处理的程序代码
     public void sessionCreated(HttpSessionEvent event) {
               
                  HttpSession session = event.getSession();       
                  String sessionId=session.getId();
                  System.out.println("Session::::::"+sessionId+"******Created******");
        }
       
     //在会话即将销毁时该方法被调用,可以在此处编写自己需要做特殊处理的程序代码
     public void sessionDestroyed(HttpSessionEvent event) {
               
                 HttpSession session = event.getSession();       
                 String sessionId=session.getId();
                 System.out.println("Session::::::"+sessionId+"******Destroyed******");
       
                }       
}
    
      注意:在sessionDestroyed()方法中一定不要再调用session.invalidate()方法了
            因为每调用一次session.invalidate()方法都会触发sessionDestroyed()方法的调用
             进而形成死循环,最终使Web应用程序意外终止

      //MyServletContextListener.java
            //Web应用程序的生命周期监听器实现
package markchen.web.listener;

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

public class MyServletContextListener implements ServletContextListener {
       
         //在Web应用程序初始化后该方法被调用
         public void contextInitialized(ServletContextEvent event) {
              
              System.out.println("******Application started******");               
         }
       
         //在Web应用程序销毁时该方法被调用
       public void contextDestroyed(ServletContextEvent event) {

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

posted @ 2009-04-08 10:07 筱 筱 阅读(1563) | 评论 (0)编辑 收藏

一,查看linux的ssh服务是否已经启动:service sshd status;
    如果没有启动则执行:service sshd start 或者 service sshd restart
二,使linux防火墙开启22端口,因为ssh是通过22端口提供服务的
    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.看下状态

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

三,使用SSH Secure shell连接,选接连接方式为:password。

四,OK

posted @ 2009-03-28 21:56 筱 筱 阅读(572) | 评论 (0)编辑 收藏

redhat9下安装VMware Tools

下面是安装步骤:
1.启动Rad Hat 9.0(图形界面方式登陆),并且以管理员的身份登陆。
2.在VMware虚拟机的菜单中点击:虚拟机->安装VMware 工具->install。
3.Red Hat 9.0自动挂载VMware Tools的虚拟光驱,并显示在桌面。
4.进去VMware Tools的虚拟光驱里,把VMwareTools-5.5.1-19175.tar.gz复制到/tmp目录。
5.进去/tmp目录,把VMwareTools-5.5.1-19175.tar.gz解压到当前目录下。
6.打开一个终端(shell),并以root身份登陆。
7.输入以下命令:cd /tmp/vmware-tools-distrib(进入vmware-tools-distrib目录)。
8.输入:./vmware-install.pl(执行vmware-install.pl文件)。
9.然后一路“回车”,就OK。
10. 输入reboot命令(重新启动)。
OK!!!

posted @ 2009-03-26 17:03 筱 筱 阅读(120) | 评论 (0)编辑 收藏

  Web2.0时代,大家都一再强调互动! 互动! 互动! 企业级网站需要与客户沟通互动,所以我们之前介绍了10款免费的网站在线客服系统,个人站长们也越来越追求互动,博客从一开始就为互动而生,好像不互动就不像个博客似儿的.虽然本博早已厌倦互动,但还是为大家介绍10多款基于Web的网页即时聊天程序.使用网页即时聊天程序的好处就是,让访客能即时的和站长或博客主沟通交流,形成良好的氛围,甚至成为朋友.尤其对博客来说,能很好的增加稳定的读者群.

注:下面的其中几个程序并非标准的Web即时聊天程序,只能算留言本而已.但其实他能当聊天程序用,只是少了”即时”…

Plugoo

plugoo不需要额外的帐号,只需要你经常使用的IM帐号即可(目前plugoo支持的IM 有: MSN Messenger/ Yahoo! Messenger/ GoogleTalk/ Jabber ),注册成功以后系统会自动添加 plugoo@plugoo.com为你IM的好友,同时生成一段代码,挂在自己的网站上便可以直接于你网站的访客进行Web网页即时聊天。via

Hab.la

一款十分高效且简洁的网页即时聊天程序序,一段简单的Javascript代码可以帮助你完善个人站点的客服系统。Hab.la 目前仍然是一款测试中的产品,他们提供了一整套高效的网页客服解决方案。缺少了MSN、AIM、Y! Messenger等多款IM通信协议的支持外,Hab.la 几乎同Plugoo实现的功能如出一辙——只需要在自己的站点中添加上一小段轻量级的Javascript代码,便可以很轻松的帮助站长和管理员来连接自己用户和读者,并建立相对比较完善的客服系统。目前,Hab.la 已经能够全面支持Jabber与Google Talk!via

Chatback Badge

Chatback Badge是Google Talk团队发布的一款很有意思的网页即时聊天小工具,它可以在页面上实时显示你的GT在线状态以及个性化签名等信息;不仅如 此,Chatback 还是一款可以即时引导用户进入Google Talk 网页版 Badge进行实时交流状态的扩展,这样,你的访客便可以借助网页版GT和你的客户端GTalk进行即时聊天了,简单而快捷,你的读者甚至不需要独立的 GTalk帐户也能够轻松和你交流。via

TocPlus

TocPlus是让您直接与网上商城、博客、网页的访客进行实时对话的通讯系统。如果将TocPlus的服务适用于网上商城,就如地面商城可以向顾客直接推荐合适的商品或即时回答顾客所提出的咨询,因此可提高营业效益。TocPlus的所有服务为免费。

vawkr

一个即时的视频聊天服务,通常我们需要使用同一种IM即时聊天工具,才能实现和别人视频聊天,但是通过vawkr,只要双方都有摄像头,那么无需下载任何 IM工具,双方都可进行视频聊天,你可以创建一个永久的聊天室,然后得到一个url地址,将这个地址发给你要邀请的人,当他点击进入后,如果允许 vawkr使用其摄像头和麦克风,那么你们就可以进行视频聊天了,vawkr还支持将聊天室放在MySpace 、Facebook、 blog 或者web上。via

-以下5个来自web20share

Gabbly

可 以在浏览器,网页中嵌入聊天系统,可以自定义用户名,显示在线访问人数,访客登陆/离开网站提示(可以选择关闭),访客登陆提示音(可以选择关闭),所有 聊天记录都可以被RSS订阅保存。Gabbly还有一个功能,任何一个网页,即便没有装Gabbly 在线聊天器,你只要在网址前加上’gabbly.com/’,如gabbly.com/hopesome.com,就可以和同在这个页面的人即时聊天。

Blobber

功能和Gabbly类似,需要注册。

Woocall

新浪推出的服务,和新浪网页上的差不多。需要邮件申请,感觉用户的可定制性不是很强.

MeeboMe
作 为一个可以嵌入website/blog的flash widget,本身并不突出,但是当它和Meebo结合起来之后,任何人都会觉得眼前一亮!换句简单点的话说,登录Meebo之后,你不仅可以同时和 MSN、Y!M、Jabber/Gtalk以及AIM中的联系人进行交流,而且还能实时地和你的website/blog上的读者进行交流,而这一切都在 你的浏览器页面中完成.

Cbox-blog
Cbox-更像是一个可以嵌入到blog中的留言本服务,使用非常简单方便,通过调用一段代码就可插入到blog中。并且还可以自定义大小和颜色样式等,以便符合自已的blog风络。

Twitterchat

通过twitter也可以做个简单的聊天室. 你必须有个twitter帐号,然后在 twitterchat.com注册一个帐号,需要用twitter的用户名及密码,邮箱填自己的随便一个.注册后会得到一段代码,可以自己修改聊天窗口宽和高。然后挂在自己上的blog 即可。via

chirrup

Chirrup是一个基于twitter的简单的评论/留言系统,可以很方便地加入到自己blog/wiki/Web中。如果你的blog或者其他web没有评论或者留言本系统,除了以前介绍的js-kit外,chirrup也是一个不错的选择,在twitter“大行其道”的网络时代,所谓“鸟随鸾凤飞腾远,人伴贤良品质高”,安装一个基于twitter的留言或评论系统,对提高blog的流量、人气等等也是很有帮助的。使用方法

Aimboo

是一个类似于Plugoo的 即时通讯服务,可通过代码调用放置一个聊天窗口在你的Blog上,并与你的本地IM软件连接,这样当你的读者访问你的Blog时,就可以与你及时联络了, 目前 Aimboo支持Jabber、Gtalk、MSN、AIM及ICQ等常用的IM协议。

posted @ 2009-03-24 11:33 筱 筱 阅读(2850) | 评论 (0)编辑 收藏

FTPClient client = new FTPClient();
  client.connect("ip地址", 21);
  client.login("用户名", "密码");
  client.setSoTimeout(5000);//设置连接超时时间为5000毫秒
  // 在尝试连接以后,你应该检查返回码验证是否连接成功!
  int reply = client.getReplyCode();
  if (!FTPReply.isPositiveCompletion(reply)) {
   client.disconnect();
   System.err.println("FTP 服务器拒绝连接.");
   System.exit(1);
  }
  System.out.println("连接正在建立中......");
  if (client.isConnected()) {
   System.out.println("连接已建立!");
   client.setControlEncoding("gb2312");// 设置编码方式,默认编码方式为:ISO8859-1
   client.changeWorkingDirectory("archives");// 改变当前ftp的工作目录
   // client.changeToParentDirectory();//回到上级目录
   FTPFile[] fs = client.listFiles(); // 得到当前工作目录下的所有文件
   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");// 随机访问文件类
     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() + " 数据写入中...");
     while (input.read(data) != -1) {
      rfile.write(data);
     }
     System.out.println(new Date() + " 所有数据已接受完成!");
     input.close();
     rfile.close();
    }
   }
  }
  client.logout();
  client.disconnect();
posted @ 2009-03-20 11:20 筱 筱 阅读(1899) | 评论 (0)编辑 收藏

基本步骤:
    1,创建连接
    2,登录
    3,上传或下载文件
    4,退出
    5,断开连接
常用方法:
    void setControlEncoding(String encoding):设置FTP控制连接的编码方式(默认读取中文文件名时为乱码)
    boolean changeWorkingDirectory(String pathname):设置当前的工作目录
    boolean changeToParentDirectory():返回上级目录
    void setRestartOffset(long offset):设置重新启动的偏移量(用于断点续传)
下载文件:
    boolean retrieveFile(String,remote,OutputStream local):从服务器返回指定名称的文件并且写入到OuputStream,以便写入到文件或其它地方。
    InputStream retrieveFileStream(String remote):从服务器返回指定名称的文件的InputStream以便读取。
上传文件:
    boolean storeFile(String remote,InputStream local):利用给定的名字(remote)和输入流(InputStream)向服务器上传一个文件。
    OutputStream storeFileStream(String remote):根据给定的名字返回一个能够向服务器上传文件的OutputStream。
    boolean storeUniqueFile(InputStream local):根据服务器自己指定的唯一的名字和输入流InputStream向服务器上传一个文件。
    boolean storeUniqueFile(String remote,InputStream local):根据指定的名字和输入流InputStream向服务器上传一个文件。
    OuputStream storeUniqueFileStream():返回一个输出流OutputStream,以便向服务器写入一个文件,该文件由服务器自己命名。
    OutputStream storeUniqueFileStream(String remote):返回一个输出流OutputStream,以便向服务器写入一个文件,该文件由用户自己指定。

posted @ 2009-03-20 10:57 筱 筱 阅读(495) | 评论 (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 筱 筱 阅读(565) | 评论 (0)编辑 收藏

oracle占领http8080端口的问题最近得以解决
最简单的一种:
登录oracle enterprise manager console 选择独立登录,选择xml数据库,配置,直接修改http-port就ok了!
posted @ 2009-03-13 14:59 筱 筱 阅读(291) | 评论 (0)编辑 收藏

仅列出标题
共9页: 上一页 1 2 3 4 5 6 7 8 9 下一页