posts - 22,comments - 35,trackbacks - 0
Windows XP的关机是由Shutdown.exe程序来控制的,位于Windows\System32文件夹中。如果想让Windows 2000也实现同样的效果,可以把Shutdown.exe复制到系统目录下。

比如你的电脑要在22:00关机,可以选择“开始→运行”,输入“at 22:00 Shutdown -s”,这样,到了22点电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工作。如果你想以倒计时的方式关机,可以输入“Shutdown.exe -s -t 3600”,这里表示60分钟后自动关机,“3600”代表60分钟。

设置好自动关机后,如果想取消的话,可以在运行中输入“shutdown -a”。另外输入“shutdown -i”,则可以打开设置自动关机对话框,对自动关机进行设置。

Shutdown.exe的参数,每个都具有特定的用途,执行每一个都会产生不同的效果,比如“-s”就表示关闭本地计算机,“-a”表示取消关机操作,下面列出了更多参数,大家可以在Shutdown.exe中按需使用。

  -f:强行关闭应用程序
  -m:\\计算机名:控制远程计算机
  -i:显示图形用户界面,但必须是Shutdown的第一个选项
  -l:注销当前用户
  -r:关机并重启
  -t:时间:设置关机倒计时
  -c:“消息内容”:输入关机对话框中的消息内容(不能超127个字符)
posted @ 2006-08-07 14:18 kelven 阅读(415) | 评论 (0)编辑 收藏
http://popkart.tiancity.com/homepage/
posted @ 2006-07-10 13:18 kelven 阅读(336) | 评论 (2)编辑 收藏
1.将数据库驱动程序的JAR文件放在Tomcat的 common/lib 中;
2.在server.xml中设置数据源,以MySQL数据库为例,如下:
在<GlobalNamingResources> </GlobalNamingResources>节点中加入,
      <Resource
      name="jdbc/DBPool"
      type="javax.sql.DataSource"
      password="root"
      driverClassName="com.mysql.jdbc.Driver"
      maxIdle="2"
      maxWait="5000"
      username="root"
      url="jdbc:mysql://127.0.0.1:3306/test"
      maxActive="4"/>
   属性说明:name,数据源名称,通常取”jdbc/XXX”的格式;
            type,”javax.sql.DataSource”;
            password,数据库用户密码;
            driveClassName,数据库驱动;
            maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连
                     接将被标记为不可用,然后被释放。设为0表示无限制。
            MaxActive,连接池的最大数据库连接数。设为0表示无限制。
            maxWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示
                     无限制。
3.在你的web应用程序的web.xml中设置数据源参考,如下:
  在<web-app></web-app>节点中加入,
  <resource-ref>
    <description>MySQL DB Connection Pool</description>
    <res-ref-name>jdbc/DBPool</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
 </resource-ref>
  子节点说明: description,描述信息;
               res-ref-name,参考数据源名字,同上一步的属性name;
               res-type,资源类型,”javax.sql.DataSource”;
               res-auth,”Container”;
               res-sharing-scope,”Shareable”;
4.在web应用程序的context.xml中设置数据源链接,如下:
  在<Context></Context>节点中加入,
  <ResourceLink
   name="jdbc/DBPool" 
   type="javax.sql.DataSource" 
   global="jdbc/DBPool"/>
   属性说明:name,同第2步和第3步的属性name值,和子节点res-ref-name值;
             type,同样取”javax.sql.DataSource”;
             global,同name值。
 
至此,设置完成,下面是如何使用数据库连接池。
1.建立一个连接池类,DBPool.java,用来创建连接池,代码如下:
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class DBPool {
    private static DataSource pool;
    static {
         Context env = null;
          try {
              env = (Context) new InitialContext().lookup("java:comp/env");
              pool = (DataSource)env.lookup("jdbc/DBPool");
              if(pool==null) 
                  System.err.println("'DBPool' is an unknown DataSource");
               } catch(NamingException ne) {
                  ne.printStackTrace();
          }
      }
    public static DataSource getPool() {
        return pool;
    }
}

2.在要用到数据库操作的类或jsp页面中,用DBPool.getPool().getConnection(),获得一个Connection对象,就可以进行数据库操作,最后别忘了对Connection对象调用close()方法,注意:这里不会关闭这个Connection,而是将这个Connection放回数据库连接池。
posted @ 2006-06-14 11:17 kelven 阅读(923) | 评论 (0)编辑 收藏

<%@ page import="java.io.*"%>
<%
String root=application.getRealPath("/");
String fileName=request.getParameter("fileName");
String filePath=request.getParameter("filePath");

response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition",
"attachment; filename=\"" +fileName+ "\"");

try{
java.io.OutputStream os = response.getOutputStream(); //不加此行将只能下载文本文件.下载jpg等就会出现打不开的现象.
java.io.FileInputStream fis = new java.io.FileInputStream(root+filePath);
byte[] b = new byte[1024];
int i = 0;
while ( (i = fis.read(b)) > 0 )
{
os.write(b, 0, i);
}

fis.close();
os.flush();
os.close();
}
catch ( Exception e )
{
System.out.println ( "IOException." + e );
}
%>

java.io.FileInputStream fis = new java.io.FileInputStream(文件的真实路径);
也可以

<%
if (request.getParameter("fileUrl") != null)
{
String strFileUrl = request.getParameter("fileUrl");

//获取文件名(DealFile是自己写的一个处理文件的一个类)
DealFile dealFile = new DealFile(strFileUrl);
String filename = dealFile.getFileName();

response.setHeader("content-type","application/octet-stream");
response.setHeader("Content-Disposition","attachment;filename=\""+ filename+"\"");

BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try
{
//从文件所在目录以流的方式读取文件
bis = new BufferedInputStream(new FileInputStream(getServletContext().getRealPath(strFileUrl)));

bos = new BufferedOutputStream(response.getOutputStream());

byte[] buff = new byte[2048];
int bytesRead;

while(-1 != (bytesRead = bis.read(buff, 0, buff.length)))
{
bos.write(buff,0,bytesRead);
}
bos.flush();
}
catch(final IOException e)
{
System.out.println ( "IOException." + e );
}
finally
{
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
return;
}
%>

posted @ 2006-04-14 16:04 kelven 阅读(1454) | 评论 (0)编辑 收藏

[http://www.javaalmanac.com] - Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处.
[http://www.onjava.com] - O'Reilly的Java网站. 每周都有新文章.
[http://java.sun.com] - 官方的Java开发者网站 - 每周都有新文章发表.
[http://www.developer.com/java] - 由Gamelan.com 维护的Java技术文章网站.
[http://www.java.net] - Sun公司维护的一个Java社区网站.
[http://www.builder.com] - Cnet的Builder.com网站 - 所有的技术文章, 以Java为主.
[http://www.ibm.com/developerworks/java] - IBM的Developerworks技术网站; 这是其中的Java技术主页.
[http://www.javaworld.com] - 最早的一个Java站点. 每周更新Java技术文章.
[http://www.devx.com/java] - DevX维护的一个Java技术文章网站.
[http://www.fawcette.com/javapro] - JavaPro在线杂志网站.
[http://www.sys-con.com/java] - Java Developers Journal的在线杂志网站.
[http://www.javadesktop.org] - 位于Java.net的一个Java桌面技术社区网站.
[http://www.theserverside.com] - 这是一个讨论所有Java服务器端技术的网站.
[http://www.jars.com] - 提供Java评论服务. 包括各种framework和应用程序.
[http://www.jguru.com] - 一个非常棒的采用Q&A形式的Java技术资源社区.
[http://www.javaranch.com] - 一个论坛,得到Java问题答案的地方,初学者的好去处。
[http://www.ibiblio.org/javafaq/javafaq.html] - comp.lang.java的FAQ站点 - 收集了来自comp.lang.java新闻组的问题和答案的分类目录.
http://java.sun.com/docs/books/tutorial/] - 来自SUN公司的官方Java指南 - 对于了解几乎所有的java技术特性非常有帮助.
http://www.javablogs.com] - 互联网上最活跃的一个Java Blog网站.
http://java.about.com/] - 来自About.com的Java新闻和技术文章网站.

posted @ 2006-04-05 14:03 kelven 阅读(402) | 评论 (0)编辑 收藏
http://www.021123.com/
posted @ 2006-03-24 14:59 kelven 阅读(353) | 评论 (0)编辑 收藏
1.安装JDK1.4和jakarta-tomcat-4.1.27.exe。

  路径分别为 D:\jdk1.4 和 D:\Tomcat 4.1。
  安装Tomcat 4时,会要求填写web访问端口、用户名、密码等信息。
  web访问端口默认为8080,用户名默认为admin,密码自己填写。

  启动Tomcat4,访问http://127.0.0.1:8080/ ,就能看到Apache Tomcat/4.1.27的欢迎访问页面,页面上有一些相关介绍信息等。


2.设置数据库的驱动

  以Oracle的JDBC驱动设置为例:

  Oracle8i的驱动在\oracle\ora81\jdbc\lib\目录下。名字为classes12.zip。

  Oracle9i的驱动在\oracle9i\jdbc\lib\目录下,名字为ojdbc14.jar。

  将这个文件copy到D:\Tomcat 4.1\common\lib 下。

  注意,如果使用Oracle8i 的驱动,则需要在D:\Tomcat 4.1\common\lib 目录下将classes12.zip更名为classes12.jar,因为Tomcat4不认识zip的后缀名。


3.设置Web应用。

  新建一个文件夹,名字为mypool,位置为D:\mypool。这个D:\mypool路径将是web应用的主目录。

  打开D:\Tomcat 4.1\conf\server.xml 文件,找到如下行:
 
   <!-- Tomcat Root Context -->
     <!--
         <Context path="" docBase="ROOT" debug="0"/>
     -->
 
 
  在这下面,加入如下行:
 
  <Context path="/mypool" docBase="D:\mypool" privileged="true" reloadable="true"/>

 
  完成后,成为这个样子:

    <!-- Tomcat Root Context -->
     <!--
          <Context path="" docBase="ROOT" debug="0"/>
      -->
   
     <Context path="/mypool" docBase="D:\mypool" privileged="true" reloadable="true"/>

  保存D:\Tomcat 4.1\conf\server.xml 文件。

  配置完成后,重新启动Tomcat,就可以这样访问这个web应用了: http://127.0.0.1:8080/mypool/


4.设置Tomcat的连接池数据源。

  访问 http://127.0.0.1:8080/admin 页面,用刚才安装 Tomcat4 时填写的用户名和密码登录。

  登录成功后,会出现Tomcat 的web应用管理界面(Tomcat Web Server Administration Tool)。

  然后在左边的目录树点击“Data Sources”项,右边可以看到JNDI配置的页面。
 
  在右上角的下拉框中选择“Create New Data Source”,接下来填写配置信息:
 
  JNDI Name: jdbc/myOrcl  
  Data Source URL: jdbc:oracle:thin:@192.168.6.40:1521:dbserver
  JDBC Driver Class: oracle.jdbc.driver.OracleDriver
  User Name: myname
  Password: mypassword
  Max. Active Connections:  可用默认值
  Max. Idle Connections:    可用默认值
  Max. Wait for Connection: 可用默认值
  Validation Query: 可不填写。

  然后,按下“save”按钮保存。
  再按下“Commit Changes”按钮将配置更改提交完成。

  此时如果看看 Tomcat4 的窗口,会发现在最下面有一行文字提示:  

   Debugging -- changes saved to conf/server.xml
 
  此时 D:\Tomcat 4.1\conf\server.xml 文件的配置已经更改保存完毕。


  如果此时打开D:\Tomcat 4.1\conf\server.xml 文件,会发现server.xml 文件的内容改变了很多。
  一些注释文字都被去掉了。

  还会发现上面第三步配置Web应用的如下文字
   
   <!-- Tomcat Root Context -->
     <!--
          <Context path="" docBase="ROOT" debug="0"/>
      -->
   
     <Context path="/mypool" docBase="D:\mypool" privileged="true" reloadable="true"/>

  则被自动修改成了这样的:

     <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="D:\mypool" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/mypool" privileged="true" reloadable="true" swallowOutput="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
        </Context>

   
   好了,至此位置,对Oracle的应用连接池已经配置完毕。
   
   仔细对照server.xml 文件,会发现刚才所配置的连接池信息被放置在<GlobalNamingResources>标签中,这意味着这个信息是可以被全局引用的,大致是如下的样子:

    <GlobalNamingResources>
    <Environment name="simpleValue" override="true" type="java.lang.Integer" value="30"/>
    <Resource name="jdbc/myOrcl" scope="Shareable" type="javax.sql.DataSource"/>
    <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" scope="Shareable" type="org.apache.catalina.UserDatabase"/>
   
    <ResourceParams name="jdbc/myOrcl">
      <parameter>
        <name>maxWait</name>
        <value>5000</value>
      </parameter>
      <parameter>
        <name>maxActive</name>
        <value>200</value>
      </parameter>
      <parameter>
        <name>password</name>
        <value>mypassword</value>
      </parameter>
      <parameter>
        <name>url</name>
        <value>jdbc:oracle:thin:@192.168.6.40:1521:dbserver</value>
      </parameter>
      <parameter>
        <name>driverClassName</name>
        <value>oracle.jdbc.driver.OracleDriver</value>
      </parameter>
      <parameter>
        <name>maxIdle</name>
        <value>20</value>
      </parameter>
      <parameter>
        <name>username</name>
        <value>myname</value>
      </parameter>
    </ResourceParams>
    <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>
  </GlobalNamingResources>  


5.设置web应用对连接池的引用。
 
  打开D:\Tomcat 4.1\conf\server.xml 文件,找到刚才配置的web应用文字,由于刚才server.xml 文件被自动修改过,并去掉了很多注释内容,所以刚才配置的web应用

   <Context path="/mypool" docBase="D:\mypool" privileged="true" reloadable="true"/>

  被自动修改成了这样的:

     <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="D:\mypool" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/mypool" privileged="true" reloadable="true" swallowOutput="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
        </Context>

  在<Context></Context>的描述中加上本web应用对全局连接池的引用说明,如下文字:

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

  设置完成后,web应用的描述大致如下面的样子:

    <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="D:\mypool" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/mypool" privileged="true" reloadable="true" swallowOutput="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">  
   
      <ResourceLink global="jdbc/myOrcl" name="jdbc/myOrcl" type="javax.sql.DataSource"/>      
   
 </Context>


  保存D:\Tomcat 4.1\conf\server.xml 文件。

  注意,设置这个连接池的引用说明是非常重要的一步。
  一些朋友在Tomcat4中配置连接池失败的原因大都归咎与此。还有网上一些文章说这是一个Tomcat4的一个Bug。
  我用了整整两天两夜的时间才明白其中的奥秘。[:(]
  当时离疯掉只查一点点。因为毕竟配置一个连接池是很简单的。[:(]


6.一般情况下,到此,连接池的设置就完成了。

  然后需要重新启动Tomcat,这样就可以使用连接池来工作了。

  但是,看到很多文章上说,还需要设置一下web.xml才能应用。我没有设置web.xml,连接池也可以完全使用。

  现在说一下web.xml的配置方法。

  在D:\mypool中新建文件夹,命名为WEB-INF,注意是大写的字母。

  然后在D:\mypool\WEB-INF\ 下新建文件web.xml,其内容为:

  <web-app>
    <resource-ref>
        <description>Oracle DataSource example</description>
        <res-ref-name>jdbc/myOrcl</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
  </web-app>

  保存D:\mypool\WEB-INF\web.xml 文件。


7.一个简单的应用示例。

  写了一个简单的JSP页面,用连接池来访问数据库。

内容如下:
---------------------
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="javax.naming.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="java.sql.*"%>
<%
    try
    {                  
       Context initCtx = new InitialContext();
 
       if(initCtx==null)
          throw new Exception("没有匹配的环境");

       Context ctx = (Context) initCtx.lookup("java:comp/env");
     
       //获取连接池对象                  
       Object obj = (Object) ctx.lookup("jdbc/myOrcl");  
     
      //类型转换
       javax.sql.DataSource ds = (javax.sql.DataSource)obj;
         
       if(ds==null)
          throw new Exception("没有匹配数据库");  
   
       Connection conn = ds.getConnection();
     
       Statement stmt = conn.createStatement();                  
                             
       String strSql="select * from grade";  //SQL,要保证grade数据表里面有记录。
                     
       ResultSet rs=stmt.executeQuery(strSql);

       if(rs.next())
         {                    
          out.println(rs.getString(1));                          
          out.println(rs.getString(2));                      
         }
       rs.close();      //关闭ResultSet  
       stmt.close();    //关闭Statement
       conn.close();    //将连接放回到连接池
     }

     catch(Exception ex)

     {    
         ex.printStackTrace();
         throw new SQLException("cannot get Connection pool."+ex);
     }
%>

<hr>
--------------------
 
记住,用完后的数据库连接要释放。
不然当打开的连接过多或恶意刷屏,连接池的连接数目会被用完。
当连接池的连接数目用完后,再访问jsp页面时,会在页面出现如下的错误信息,报告连接池的连接被耗尽:
java.sql.SQLException: DBCP could not obtain an idle db connection, pool exhausted




二、Win2k下Tomcat5 的连接池的配置

安装jakarta-tomcat-5.0.13.exe,假如Tomcat5的安装目录为 D:\Tomcat 5.0 。

别忘了把oracle的驱动程序classes12.jar文件copy到目录 D:\Tomcat 5.0\common\lib\ 下。

Tomcat5的连接池设置和Tomcat4 的差不多,仅说明一下不同点或需要特别注意的地方。


1. Tomcat5启动后,访问 http://127.0.0.1:8080/admin 页面,当设置完Tomcat的连接池数据源后,打开D:\Tomcat 5.0\conf\server.xml 文件,会看到配置的连接池相关信息大致如下样子:

<GlobalNamingResources>
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
    <Resource name="jdbc/myOrcl" type="javax.sql.DataSource"/>
    <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
    <ResourceParams name="jdbc/myOrcl">
      <parameter>
        <name>maxWait</name>
        <value>5000</value>
      </parameter>
      <parameter>
        <name>maxActive</name>
        <value>4</value>
      </parameter>
      <parameter>
        <name>password</name>
        <value>mypassword</value>
      </parameter>
      <parameter>
        <name>url</name>
        <value>jdbc:oracle:thin:@127.0.0.1:1521:dbserver</value>
      </parameter>
      <parameter>
        <name>driverClassName</name>
        <value>oracle.jdbc.driver.OracleDriver</value>
      </parameter>
      <parameter>
        <name>maxIdle</name>
        <value>2</value>
      </parameter>
      <parameter>
        <name>username</name>
        <value>myusername</value>
      </parameter>
    </ResourceParams>
    <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>
  </GlobalNamingResources>

可以看到,一些连接池的信息配置参数已经和Tomcat4不同了。
但大致配置步骤和方法都是一样的。


2.设置web应用对连接池的引用。

 打开D:\Tomcat 5.0\conf\Catalina\localhost\ 目录,找到和web应用同名的xml文件(mypool.xml),打开这个文件,
修该其<Context></Context>的描述信息,添加如下行:

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

使mypool.xml文件的内容看起来大致这个:
 
   <Context docBase="D:/mypool" path="/mypool" privileged="true" reloadable="true">
     <ResourceLink global="jdbc/myOrcl" name="jdbc/myOrcl" type="javax.sql.DataSource"/>
   </Context>

然后保存mypool.xml,需要重新Tomcat5服务,使之生效。


3.JSP页面测试文件的写法也是一样的,不再赘述。

4.一些补充:

  如果web应用没有配置对连接池的引用,即没有配置<ResourceLink>,则会在访问jsp页面时出现如下错误:
    NameNotFoundException: Name jdbc is not bound in this Context

  如果缺少Oracle的JDBC驱动,则会在访问jsp页面时出现如下错误:
    java.sql.SQLException: Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'
posted @ 2006-03-22 11:30 kelven 阅读(1636) | 评论 (1)编辑 收藏