﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-Kelven Cheung</title><link>http://www.blogjava.net/zhangrenquan/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 10:46:02 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 10:46:02 GMT</pubDate><ttl>60</ttl><item><title>winXP自动关机命令</title><link>http://www.blogjava.net/zhangrenquan/archive/2006/08/07/62166.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Mon, 07 Aug 2006 06:18:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2006/08/07/62166.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/62166.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2006/08/07/62166.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/62166.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/62166.html</trackback:ping><description><![CDATA[Windows XP的关机是由Shutdown.exe程序来控制的，位于Windows\System32文件夹中。如果想让Windows 2000也实现同样的效果，可以把Shutdown.exe复制到系统目录下。<br /><br />比如你的电脑要在22:00关机，可以选择“开始→运行”，输入“at 22:00 Shutdown -s”，这样，到了22点电脑就会出现“系统关机”对话框，默认有30秒钟的倒计时并提示你保存工作。如果你想以倒计时的方式关机，可以输入“Shutdown.exe -s -t 3600”，这里表示60分钟后自动关机，“3600”代表60分钟。<br /><br />设置好自动关机后，如果想取消的话，可以在运行中输入“shutdown -a”。另外输入“shutdown -i”，则可以打开设置自动关机对话框，对自动关机进行设置。<br /><br />Shutdown.exe的参数，每个都具有特定的用途，执行每一个都会产生不同的效果，比如“-s”就表示关闭本地计算机，“-a”表示取消关机操作，下面列出了更多参数，大家可以在Shutdown.exe中按需使用。<br /><br />  -f：强行关闭应用程序<br />　 -m：\\计算机名：控制远程计算机<br />　　-i：显示图形用户界面，但必须是Shutdown的第一个选项<br />　　-l：注销当前用户<br />　　-r：关机并重启<br />　　-t：时间：设置关机倒计时<br />　　-c：“消息内容”：输入关机对话框中的消息内容(不能超127个字符)<img src ="http://www.blogjava.net/zhangrenquan/aggbug/62166.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2006-08-07 14:18 <a href="http://www.blogjava.net/zhangrenquan/archive/2006/08/07/62166.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TOMCAT中数据库连接池的配置</title><link>http://www.blogjava.net/zhangrenquan/archive/2006/06/14/52684.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Wed, 14 Jun 2006 03:17:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2006/06/14/52684.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/52684.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2006/06/14/52684.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/52684.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/52684.html</trackback:ping><description><![CDATA[
		<div class="postbody">1．将数据库驱动程序的JAR文件放在Tomcat的 common/lib 中；<br />2．在server.xml中设置数据源，以MySQL数据库为例，如下：<br />在&lt;GlobalNamingResources&gt; &lt;/GlobalNamingResources&gt;节点中加入，<br />      &lt;Resource<br />      name="jdbc/DBPool"<br />      type="javax.sql.DataSource"<br />      password="root"<br />      driverClassName="com.mysql.jdbc.Driver"<br />      maxIdle="2"<br />      maxWait="5000"<br />      username="root"<br />      url="jdbc:mysql://127.0.0.1:3306/test"<br />      maxActive="4"/&gt;<br />   属性说明：name，数据源名称，通常取”jdbc/XXX”的格式；<br />            type，”javax.sql.DataSource”;<br />            password，数据库用户密码；<br />            driveClassName，数据库驱动；<br />            maxIdle，最大空闲数，数据库连接的最大空闲时间。超过空闲时间，数据库连<br />                     接将被标记为不可用，然后被释放。设为0表示无限制。<br />            MaxActive，连接池的最大数据库连接数。设为0表示无限制。<br />            maxWait ，最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示<br />                     无限制。<br />3．在你的web应用程序的web.xml中设置数据源参考，如下：<br />  在&lt;web-app&gt;&lt;/web-app&gt;节点中加入，<br />  &lt;resource-ref&gt;<br />    &lt;description&gt;MySQL DB Connection Pool&lt;/description&gt;<br />    &lt;res-ref-name&gt;jdbc/DBPool&lt;/res-ref-name&gt;<br />    &lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;<br />    &lt;res-auth&gt;Container&lt;/res-auth&gt;<br />    &lt;res-sharing-scope&gt;Shareable&lt;/res-sharing-scope&gt;<br /> &lt;/resource-ref&gt;<br />  子节点说明： description，描述信息；<br />               res-ref-name，参考数据源名字，同上一步的属性name；<br />               res-type，资源类型，”javax.sql.DataSource”；<br />               res-auth，”Container”；<br />               res-sharing-scope，”Shareable”；<br />4．在web应用程序的context.xml中设置数据源链接，如下：<br />  在&lt;Context&gt;&lt;/Context&gt;节点中加入，<br />  &lt;ResourceLink<br />   name="jdbc/DBPool" <br />   type="javax.sql.DataSource" <br />   global="jdbc/DBPool"/&gt;<br />   属性说明：name，同第2步和第3步的属性name值，和子节点res-ref-name值；<br />             type，同样取”javax.sql.DataSource”；<br />             global，同name值。<br /> <br />至此，设置完成，下面是如何使用数据库连接池。<br />1．建立一个连接池类，DBPool.java，用来创建连接池，代码如下：<br />import javax.naming.Context;<br />import javax.naming.InitialContext;<br />import javax.naming.NamingException;<br />import javax.sql.DataSource;<br /><br />public class DBPool {<br />    private static DataSource pool;<br />    static {<br />         Context env = null;<br />          try {<br />              env = (Context) new InitialContext().lookup("java:comp/env");<br />              pool = (DataSource)env.lookup("jdbc/DBPool");<br />              if(pool==null) <br />                  System.err.println("'DBPool' is an unknown DataSource");<br />               } catch(NamingException ne) {<br />                  ne.printStackTrace();<br />          }<br />      }<br />    public static DataSource getPool() {<br />        return pool;<br />    }<br />}<br /><br />2．在要用到数据库操作的类或jsp页面中，用DBPool.getPool().getConnection()，获得一个Connection对象，就可以进行数据库操作，最后别忘了对Connection对象调用close()方法，注意：这里不会关闭这个Connection，而是将这个Connection放回数据库连接池。<br /></div>
<img src ="http://www.blogjava.net/zhangrenquan/aggbug/52684.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2006-06-14 11:17 <a href="http://www.blogjava.net/zhangrenquan/archive/2006/06/14/52684.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP下载文件</title><link>http://www.blogjava.net/zhangrenquan/archive/2006/04/14/41116.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Fri, 14 Apr 2006 08:04:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2006/04/14/41116.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/41116.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2006/04/14/41116.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/41116.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/41116.html</trackback:ping><description><![CDATA[<p>&lt;%@ page import="java.io.*"%&gt;<br>&lt;%<br>String root=application.getRealPath("/");<br>String fileName=request.getParameter("fileName");<br>String filePath=request.getParameter("filePath");</p>
<p>response.setContentType("application/octet-stream");<br>response.setHeader("Content-Disposition",<br>"attachment; filename=\"" +fileName+ "\"");</p>
<p>try{ <br>java.io.OutputStream os = response.getOutputStream(); //不加此行将只能下载文本文件.下载jpg等就会出现打不开的现象.<br>java.io.FileInputStream fis = new java.io.FileInputStream(root+filePath); <br>byte[] b = new byte[1024]; <br>int i = 0; <br>while ( (i = fis.read(b)) &gt; 0 ) <br>{ <br>os.write(b, 0, i); <br>} </p>
<p>fis.close(); <br>os.flush(); <br>os.close(); <br>} <br>catch ( Exception e ) <br>{ <br>System.out.println ( "IOException." + e );<br>} <br>%&gt;</p>
<p>java.io.FileInputStream fis = new java.io.FileInputStream(文件的真实路径);<br>也可以<br><br>&lt;% <br>if (request.getParameter("fileUrl") != null) <br>{<br>String strFileUrl = request.getParameter("fileUrl");<br><br>//获取文件名（DealFile是自己写的一个处理文件的一个类）<br>DealFile dealFile = new DealFile(strFileUrl);<br>String filename = dealFile.getFileName();<br><br>response.setHeader("content-type","application/octet-stream");<br>response.setHeader("Content-Disposition","attachment;filename=\""+ filename+"\"");<br><br>BufferedInputStream bis = null;<br>BufferedOutputStream bos = null;<br>try <br>{<br>//从文件所在目录以流的方式读取文件<br>bis = new BufferedInputStream(new FileInputStream(getServletContext().getRealPath(strFileUrl)));<br><br>bos = new BufferedOutputStream(response.getOutputStream());<br><br>byte[] buff = new byte[2048];<br>int bytesRead;<br><br>while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) <br>{<br>bos.write(buff,0,bytesRead);<br>}<br>bos.flush();<br>} <br>catch(final IOException e) <br>{<br>System.out.println ( "IOException." + e );<br>} <br>finally <br>{<br>if (bis != null)<br>bis.close();<br>if (bos != null)<br>bos.close();<br>}<br>return;<br>}<br>%&gt; <br></p><img src ="http://www.blogjava.net/zhangrenquan/aggbug/41116.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2006-04-14 16:04 <a href="http://www.blogjava.net/zhangrenquan/archive/2006/04/14/41116.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA开发者应该去的20个英文网站</title><link>http://www.blogjava.net/zhangrenquan/archive/2006/04/05/39375.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Wed, 05 Apr 2006 06:03:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2006/04/05/39375.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/39375.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2006/04/05/39375.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/39375.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/39375.html</trackback:ping><description><![CDATA[
		<p>[http://www.javaalmanac.com] - Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处. <br />[http://www.onjava.com] - O'Reilly的Java网站. 每周都有新文章. <br />[http://java.sun.com] - 官方的Java开发者网站 - 每周都有新文章发表. <br />[http://www.developer.com/java] - 由Gamelan.com 维护的Java技术文章网站. <br />[http://www.java.net] - Sun公司维护的一个Java社区网站. <br />[http://www.builder.com] - Cnet的Builder.com网站 - 所有的技术文章, 以Java为主. <br />[http://www.ibm.com/developerworks/java] - IBM的Developerworks技术网站; 这是其中的Java技术主页. <br />[http://www.javaworld.com] - 最早的一个Java站点. 每周更新Java技术文章. <br />[http://www.devx.com/java] - DevX维护的一个Java技术文章网站. <br />[http://www.fawcette.com/javapro] - JavaPro在线杂志网站. <br />[http://www.sys-con.com/java] - Java Developers Journal的在线杂志网站. <br />[http://www.javadesktop.org] - 位于Java.net的一个Java桌面技术社区网站. <br />[http://www.theserverside.com] - 这是一个讨论所有Java服务器端技术的网站. <br />[http://www.jars.com] - 提供Java评论服务. 包括各种framework和应用程序. <br />[http://www.jguru.com] - 一个非常棒的采用Q&amp;A形式的Java技术资源社区. <br />[http://www.javaranch.com] - 一个论坛，得到Java问题答案的地方，初学者的好去处。 <br />[http://www.ibiblio.org/javafaq/javafaq.html] - comp.lang.java的FAQ站点 - 收集了来自comp.lang.java新闻组的问题和答案的分类目录. <br />http://java.sun.com/docs/books/tutorial/] - 来自SUN公司的官方Java指南 - 对于了解几乎所有的java技术特性非常有帮助. <br />http://www.javablogs.com] - 互联网上最活跃的一个Java Blog网站. <br />http://java.about.com/] - 来自About.com的Java新闻和技术文章网站.</p>
<img src ="http://www.blogjava.net/zhangrenquan/aggbug/39375.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2006-04-05 14:03 <a href="http://www.blogjava.net/zhangrenquan/archive/2006/04/05/39375.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网页素材</title><link>http://www.blogjava.net/zhangrenquan/archive/2006/03/24/37221.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Fri, 24 Mar 2006 06:59:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2006/03/24/37221.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/37221.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2006/03/24/37221.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/37221.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/37221.html</trackback:ping><description><![CDATA[
		<a href="http://www.021123.com/">http://www.021123.com/</a>
<img src ="http://www.blogjava.net/zhangrenquan/aggbug/37221.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2006-03-24 14:59 <a href="http://www.blogjava.net/zhangrenquan/archive/2006/03/24/37221.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat4/5连接池的设置及简单应用示例</title><link>http://www.blogjava.net/zhangrenquan/archive/2006/03/22/36810.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Wed, 22 Mar 2006 03:30:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2006/03/22/36810.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/36810.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2006/03/22/36810.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/36810.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/36810.html</trackback:ping><description><![CDATA[1.安装JDK1.4和jakarta-tomcat-4.1.27.exe。<br /><br />  路径分别为 D:\jdk1.4 和 D:\Tomcat 4.1。<br />  安装Tomcat 4时，会要求填写web访问端口、用户名、密码等信息。<br />  web访问端口默认为8080，用户名默认为admin，密码自己填写。<br /><br />  启动Tomcat4，访问<a href="http://127.0.0.1:8080/"><u><font color="#0000ff">http://127.0.0.1:8080/</font></u></a> ，就能看到Apache Tomcat/4.1.27的欢迎访问页面，页面上有一些相关介绍信息等。<br /><br /><br />2.设置数据库的驱动<br /><br />  以Oracle的JDBC驱动设置为例：<br /><br />  Oracle8i的驱动在\oracle\ora81\jdbc\lib\目录下。名字为classes12.zip。<br /><br />  Oracle9i的驱动在\oracle9i\jdbc\lib\目录下，名字为ojdbc14.jar。<br /><br />  将这个文件copy到D:\Tomcat 4.1\common\lib 下。<br /><br />  注意，如果使用Oracle8i 的驱动，则需要在D:\Tomcat 4.1\common\lib 目录下将classes12.zip更名为classes12.jar，因为Tomcat4不认识zip的后缀名。<br /><br /><br />3.设置Web应用。<br /><br />  新建一个文件夹，名字为mypool，位置为D:\mypool。这个D:\mypool路径将是web应用的主目录。<br /><br />  打开D:\Tomcat 4.1\conf\server.xml 文件，找到如下行：<br />  <br />   &lt;!-- Tomcat Root Context --&gt;<br />     &lt;!--<br />         &lt;Context path="" docBase="ROOT" debug="0"/&gt;<br />     --&gt;<br /> <br /> <br />  在这下面，加入如下行：<br />  <br />  &lt;Context path="/mypool" docBase="D:\mypool" privileged="true" reloadable="true"/&gt;<br /><br />  <br />  完成后，成为这个样子：<br /><br />    &lt;!-- Tomcat Root Context --&gt;<br />     &lt;!--<br />          &lt;Context path="" docBase="ROOT" debug="0"/&gt;<br />      --&gt;<br />    <br />     &lt;Context path="/mypool" docBase="D:\mypool" privileged="true" reloadable="true"/&gt;<br /><br />  保存D:\Tomcat 4.1\conf\server.xml 文件。<br /><br />  配置完成后，重新启动Tomcat，就可以这样访问这个web应用了： <a href="http://127.0.0.1:8080/mypool/"><u><font color="#0000ff">http://127.0.0.1:8080/mypool/</font></u></a> 。<br /><br /><br />4.设置Tomcat的连接池数据源。<br /><br />  访问 <a href="http://127.0.0.1:8080/admin"><u><font color="#0000ff">http://127.0.0.1:8080/admin</font></u></a> 页面，用刚才安装 Tomcat4 时填写的用户名和密码登录。<br /><br />  登录成功后，会出现Tomcat 的web应用管理界面（Tomcat Web Server Administration Tool）。<br /><br />  然后在左边的目录树点击“Data Sources”项，右边可以看到JNDI配置的页面。<br /> <br />  在右上角的下拉框中选择“Create New Data Source”，接下来填写配置信息：<br />  <br />  JNDI Name: jdbc/myOrcl  <br />  Data Source URL: jdbc:oracle:thin:@192.168.6.40:1521:dbserver<br />  JDBC Driver Class: oracle.jdbc.driver.OracleDriver<br />  User Name: myname<br />  Password: mypassword<br />  Max. Active Connections:  可用默认值 <br />  Max. Idle Connections:    可用默认值<br />  Max. Wait for Connection: 可用默认值<br />  Validation Query: 可不填写。<br /><br />  然后，按下“save”按钮保存。<br />  再按下“Commit Changes”按钮将配置更改提交完成。<br /><br />  此时如果看看 Tomcat4 的窗口，会发现在最下面有一行文字提示：  <br /><br />   Debugging -- changes saved to conf/server.xml<br /> <br />  此时 D:\Tomcat 4.1\conf\server.xml 文件的配置已经更改保存完毕。<br /><br /><br />  如果此时打开D:\Tomcat 4.1\conf\server.xml 文件，会发现server.xml 文件的内容改变了很多。<br />  一些注释文字都被去掉了。<br /><br />  还会发现上面第三步配置Web应用的如下文字<br />    <br />   &lt;!-- Tomcat Root Context --&gt;<br />     &lt;!--<br />          &lt;Context path="" docBase="ROOT" debug="0"/&gt;<br />      --&gt;<br />    <br />     &lt;Context path="/mypool" docBase="D:\mypool" privileged="true" reloadable="true"/&gt;<br /><br />  则被自动修改成了这样的：<br /><br />     &lt;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"&gt;<br />        &lt;/Context&gt;<br /><br />    <br />   好了，至此位置，对Oracle的应用连接池已经配置完毕。<br />   <br />   仔细对照server.xml 文件，会发现刚才所配置的连接池信息被放置在&lt;GlobalNamingResources&gt;标签中，这意味着这个信息是可以被全局引用的，大致是如下的样子：<br /><br />    &lt;GlobalNamingResources&gt;<br />    &lt;Environment name="simpleValue" override="true" type="java.lang.Integer" value="30"/&gt;<br />    &lt;Resource name="jdbc/myOrcl" scope="Shareable" type="javax.sql.DataSource"/&gt;<br />    &lt;Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" scope="Shareable" type="org.apache.catalina.UserDatabase"/&gt;<br />    <br />    &lt;ResourceParams name="jdbc/myOrcl"&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;maxWait&lt;/name&gt;<br />        &lt;value&gt;5000&lt;/value&gt;<br />      &lt;/parameter&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;maxActive&lt;/name&gt;<br />        &lt;value&gt;200&lt;/value&gt;<br />      &lt;/parameter&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;password&lt;/name&gt;<br />        &lt;value&gt;mypassword&lt;/value&gt;<br />      &lt;/parameter&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;url&lt;/name&gt;<br />        &lt;value&gt;jdbc:oracle:thin:@192.168.6.40:1521:dbserver&lt;/value&gt;<br />      &lt;/parameter&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;driverClassName&lt;/name&gt;<br />        &lt;value&gt;oracle.jdbc.driver.OracleDriver&lt;/value&gt;<br />      &lt;/parameter&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;maxIdle&lt;/name&gt;<br />        &lt;value&gt;20&lt;/value&gt;<br />      &lt;/parameter&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;username&lt;/name&gt;<br />        &lt;value&gt;myname&lt;/value&gt;<br />      &lt;/parameter&gt;<br />    &lt;/ResourceParams&gt;<br />    &lt;ResourceParams name="UserDatabase"&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;factory&lt;/name&gt;<br />        &lt;value&gt;org.apache.catalina.users.MemoryUserDatabaseFactory&lt;/value&gt;<br />      &lt;/parameter&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;pathname&lt;/name&gt;<br />        &lt;value&gt;conf/tomcat-users.xml&lt;/value&gt;<br />      &lt;/parameter&gt;<br />    &lt;/ResourceParams&gt;<br />  &lt;/GlobalNamingResources&gt;  <br /><br /><br />5.设置web应用对连接池的引用。<br />  <br />  打开D:\Tomcat 4.1\conf\server.xml 文件，找到刚才配置的web应用文字，由于刚才server.xml 文件被自动修改过，并去掉了很多注释内容，所以刚才配置的web应用<br /><br />   &lt;Context path="/mypool" docBase="D:\mypool" privileged="true" reloadable="true"/&gt;<br /><br />  被自动修改成了这样的：<br /><br />     &lt;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"&gt;<br />        &lt;/Context&gt;<br /><br />  在&lt;Context&gt;&lt;/Context&gt;的描述中加上本web应用对全局连接池的引用说明，如下文字：<br /><br />    &lt;ResourceLink global="jdbc/myOrcl" name="jdbc/myOrcl" type="javax.sql.DataSource"/&gt;  <br /><br />  设置完成后，web应用的描述大致如下面的样子：<br /><br />    &lt;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"&gt;   <br />   <br />      &lt;ResourceLink global="jdbc/myOrcl" name="jdbc/myOrcl" type="javax.sql.DataSource"/&gt;      <br />   <br /> &lt;/Context&gt;<br /><br /><br />  保存D:\Tomcat 4.1\conf\server.xml 文件。<br /><br />  注意，设置这个连接池的引用说明是非常重要的一步。<br />  一些朋友在Tomcat4中配置连接池失败的原因大都归咎与此。还有网上一些文章说这是一个Tomcat4的一个Bug。<br />  我用了整整两天两夜的时间才明白其中的奥秘。[:(]<br />  当时离疯掉只查一点点。因为毕竟配置一个连接池是很简单的。[:(]<br /><br /><br />6.一般情况下，到此，连接池的设置就完成了。<br /><br />  然后需要重新启动Tomcat，这样就可以使用连接池来工作了。<br /><br />  但是，看到很多文章上说，还需要设置一下web.xml才能应用。我没有设置web.xml，连接池也可以完全使用。<br /><br />  现在说一下web.xml的配置方法。<br /><br />  在D:\mypool中新建文件夹，命名为WEB-INF，注意是大写的字母。<br /><br />  然后在D:\mypool\WEB-INF\ 下新建文件web.xml，其内容为：<br /><br />  &lt;web-app&gt;<br />    &lt;resource-ref&gt;<br />        &lt;description&gt;Oracle DataSource example&lt;/description&gt;<br />        &lt;res-ref-name&gt;jdbc/myOrcl&lt;/res-ref-name&gt;<br />        &lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;<br />        &lt;res-auth&gt;Container&lt;/res-auth&gt;<br />    &lt;/resource-ref&gt;<br />  &lt;/web-app&gt;<br /><br />  保存D:\mypool\WEB-INF\web.xml 文件。<br /><br /><br />7.一个简单的应用示例。<br /><br />  写了一个简单的JSP页面，用连接池来访问数据库。<br /><br />内容如下：<br />－－－－－－－－－－－－－－－－－－－－－<br />&lt;%@ page contentType="text/html;charset=GBK"%&gt;<br />&lt;%@ page import="javax.naming.*"%&gt;<br />&lt;%@ page import="javax.sql.*"%&gt;<br />&lt;%@ page import="java.sql.*"%&gt;<br />&lt;%<br />    try<br />    {                   <br />       Context initCtx = new InitialContext();<br /> <br />       if(initCtx==null)<br />          throw new Exception("没有匹配的环境");<br /><br />       Context ctx = (Context) initCtx.lookup("java:comp/env");<br />      <br />       //获取连接池对象                   <br />       Object obj = (Object) ctx.lookup("jdbc/myOrcl");  <br />      <br />      //类型转换<br />       javax.sql.DataSource ds = (javax.sql.DataSource)obj;<br />         <br />       if(ds==null)<br />          throw new Exception("没有匹配数据库");  <br />    <br />       Connection conn = ds.getConnection();<br />      <br />       Statement stmt = conn.createStatement();                   <br />                             <br />       String strSql="select * from grade";  //SQL，要保证grade数据表里面有记录。<br />                      <br />       ResultSet rs=stmt.executeQuery(strSql);<br /><br />       if(rs.next())<br />         {                     <br />          out.println(rs.getString(1));                          <br />          out.println(rs.getString(2));                      <br />         }<br />       rs.close();      //关闭ResultSet  <br />       stmt.close();    //关闭Statement<br />       conn.close();    //将连接放回到连接池<br />     }<br /><br />     catch(Exception ex)<br /><br />     {    <br />         ex.printStackTrace();<br />         throw new SQLException("cannot get Connection pool."+ex);<br />     }<br />%&gt;<br /><br />&lt;hr&gt;<br />－－－－－－－－－－－－－－－－－－－－<br />  <br />记住，用完后的数据库连接要释放。<br />不然当打开的连接过多或恶意刷屏，连接池的连接数目会被用完。<br />当连接池的连接数目用完后，再访问jsp页面时，会在页面出现如下的错误信息，报告连接池的连接被耗尽：<br />java.sql.SQLException: DBCP could not obtain an idle db connection, pool exhausted<br /><br /><br /><br /><br />二、Win2k下Tomcat5 的连接池的配置<br /><br />安装jakarta-tomcat-5.0.13.exe，假如Tomcat5的安装目录为 D:\Tomcat 5.0 。<br /><br />别忘了把oracle的驱动程序classes12.jar文件copy到目录 D:\Tomcat 5.0\common\lib\ 下。<br /><br />Tomcat5的连接池设置和Tomcat4 的差不多，仅说明一下不同点或需要特别注意的地方。<br /><br /><br />1. Tomcat5启动后，访问 <a href="http://127.0.0.1:8080/admin"><u><font color="#0000ff">http://127.0.0.1:8080/admin</font></u></a> 页面，当设置完Tomcat的连接池数据源后，打开D:\Tomcat 5.0\conf\server.xml 文件，会看到配置的连接池相关信息大致如下样子：<br /><br />&lt;GlobalNamingResources&gt;<br />    &lt;Environment name="simpleValue" type="java.lang.Integer" value="30"/&gt;<br />    &lt;Resource name="jdbc/myOrcl" type="javax.sql.DataSource"/&gt;<br />    &lt;Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/&gt;<br />    &lt;ResourceParams name="jdbc/myOrcl"&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;maxWait&lt;/name&gt;<br />        &lt;value&gt;5000&lt;/value&gt;<br />      &lt;/parameter&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;maxActive&lt;/name&gt;<br />        &lt;value&gt;4&lt;/value&gt;<br />      &lt;/parameter&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;password&lt;/name&gt;<br />        &lt;value&gt;mypassword&lt;/value&gt;<br />      &lt;/parameter&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;url&lt;/name&gt;<br />        &lt;value&gt;jdbc:oracle:thin:@127.0.0.1:1521:dbserver&lt;/value&gt;<br />      &lt;/parameter&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;driverClassName&lt;/name&gt;<br />        &lt;value&gt;oracle.jdbc.driver.OracleDriver&lt;/value&gt;<br />      &lt;/parameter&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;maxIdle&lt;/name&gt;<br />        &lt;value&gt;2&lt;/value&gt;<br />      &lt;/parameter&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;username&lt;/name&gt;<br />        &lt;value&gt;myusername&lt;/value&gt;<br />      &lt;/parameter&gt;<br />    &lt;/ResourceParams&gt;<br />    &lt;ResourceParams name="UserDatabase"&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;factory&lt;/name&gt;<br />        &lt;value&gt;org.apache.catalina.users.MemoryUserDatabaseFactory&lt;/value&gt;<br />      &lt;/parameter&gt;<br />      &lt;parameter&gt;<br />        &lt;name&gt;pathname&lt;/name&gt;<br />        &lt;value&gt;conf/tomcat-users.xml&lt;/value&gt;<br />      &lt;/parameter&gt;<br />    &lt;/ResourceParams&gt;<br />  &lt;/GlobalNamingResources&gt;<br /><br />可以看到，一些连接池的信息配置参数已经和Tomcat4不同了。<br />但大致配置步骤和方法都是一样的。<br /><br /><br />2.设置web应用对连接池的引用。<br /><br /> 打开D:\Tomcat 5.0\conf\Catalina\localhost\ 目录，找到和web应用同名的xml文件（mypool.xml），打开这个文件，<br />修该其&lt;Context&gt;&lt;/Context&gt;的描述信息，添加如下行：<br /><br />   &lt;ResourceLink global="jdbc/myOrcl" name="jdbc/myOrcl" type="javax.sql.DataSource"/&gt;  <br /><br />使mypool.xml文件的内容看起来大致这个：<br />  <br />   &lt;Context docBase="D:/mypool" path="/mypool" privileged="true" reloadable="true"&gt;<br />     &lt;ResourceLink global="jdbc/myOrcl" name="jdbc/myOrcl" type="javax.sql.DataSource"/&gt;<br />   &lt;/Context&gt;<br /><br />然后保存mypool.xml，需要重新Tomcat5服务，使之生效。<br /><br /><br />3.JSP页面测试文件的写法也是一样的，不再赘述。<br /><br />4.一些补充：<br /><br />  如果web应用没有配置对连接池的引用，即没有配置&lt;ResourceLink&gt;，则会在访问jsp页面时出现如下错误：<br />    NameNotFoundException: Name jdbc is not bound in this Context<br /><br />  如果缺少Oracle的JDBC驱动，则会在访问jsp页面时出现如下错误：<br />    java.sql.SQLException: Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'<img src ="http://www.blogjava.net/zhangrenquan/aggbug/36810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2006-03-22 11:30 <a href="http://www.blogjava.net/zhangrenquan/archive/2006/03/22/36810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AJAX学习笔记</title><link>http://www.blogjava.net/zhangrenquan/archive/2006/02/26/32494.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Sun, 26 Feb 2006 05:42:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2006/02/26/32494.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/32494.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2006/02/26/32494.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/32494.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/32494.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先XMLHttpRequest不是web标准，而是大部分主流浏览器都支持的一种扩展技术。它被认为是一种异步调用的实现技术，因为它本来是被设计在后台取数据用的。在IE中它被作为一个ActiveX控件提供，而其他一些浏览器都提供一些本地API以供调用。下面是一些关于XMLHttpRequest的基本方法：1、获...&nbsp;&nbsp;<a href='http://www.blogjava.net/zhangrenquan/archive/2006/02/26/32494.html'>阅读全文</a><img src ="http://www.blogjava.net/zhangrenquan/aggbug/32494.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2006-02-26 13:42 <a href="http://www.blogjava.net/zhangrenquan/archive/2006/02/26/32494.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>女人永远不知道的12件事</title><link>http://www.blogjava.net/zhangrenquan/archive/2006/02/25/32392.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Sat, 25 Feb 2006 03:50:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2006/02/25/32392.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/32392.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2006/02/25/32392.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/32392.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/32392.html</trackback:ping><description><![CDATA[<SPAN class=tpc_content><FONT size=2>1、女人永远也不知道男人为什么要学会坚强?<BR></FONT><FONT size=2>因为他们自己知道.他们虽然外表坚强.但内心很脆弱.他们永远想让自己身边的她觉得自己</FONT><FONT size=2>是最棒的.<BR></FONT><FONT size=2><BR></FONT><FONT size=2>2、女人永远也不知道男人为什么不会轻易掉眼泪? </FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2>因为他们自己知道.他们不是不会掉眼泪.只是他明白.一但眼泪掉下来了.这段感情也就结</FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"> </SPAN><FONT size=2>束了.<BR></FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2><BR>3、女人永远也不知道男人为什么每次在心烦的时候那么喜欢抽烟?<BR></FONT><FONT size=2>因为他们自己知道.只有在烟雾中才能忆起他们过去美好的时光来寻求一点心里的平衡.</FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2><BR>4、女人永远也不知道男人为什么要在分手以后还会对她嘘寒问暖?<BR></FONT><FONT size=2>因为他们自己知道.他们并不是想跟你做朋友.只是想挽回这段曾经属于他的感情.<BR></FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2><BR>5、女人永远也不知道男人为什么每次在听到她被欺负了会显得那么发狂?<BR></FONT><FONT size=2>因为他们自己知道.哪怕这次架打输了.躺下了.他也会觉得高兴.因为他们宁愿自己受到伤</FONT><FONT size=2>害.也不愿意看到你哭泣.<BR></FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2><BR>6、女人永远也不知道男人为什么在分手以后会夜夜买醉? </FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2>因为他们知道.如果今晚不麻醉自己.那么今晚只能在思念中度过. </FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2><BR>7. 女人永远也不知道男人为什么每次出门会出手那么大方? </FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2>因为他们知道.他们宁愿自己一个人省吃检用.也不愿意你看到你被别人看不起.<BR></FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2><BR>8.女人永远也不知道男人为什么会那么爱对她发脾气?<BR></FONT><FONT size=2>因为他们自己知道.对她发脾气并不是不爱她.只是希望她在以后的路上不被别人所欺骗.<BR><BR></FONT><FONT size=2>9.女人永远也不知道男人为什么会那么在意你以前的男朋友? </FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2>因为他们自己知道.并不是他们不自信.只是他们害怕有一天你会离他而去.</FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2><BR>10.　女人永远也不知道男人为什么看到你为别人写的日记之后还会那么镇静的听你解释?</FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2>因为他们自己知道.自己并不是不想发火.只是希望能从你的口中得知到底是他重要还是别</FONT><FONT size=2>人重要? </FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2><BR>11、女人永远也不知道男人为什么不对她说我爱你⒊个字? </FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff">阃<BR></SPAN><FONT size=2>因为他们知道.并不是不想说.只是他们自己明白.⒈万句我爱你用在身上也不够.</FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2><BR>12. 女人永远也不知道男人为什么会跑到这里来发贴?<BR></FONT><FONT size=2>因为他们知道.希望有一天这贴能被你看见.以此来证明你对他的不理解.只有他自己心里明</FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"> </SPAN><FONT size=2>白.这贴要是没人回的话.很快便会消失了.你更不知道一个男人的幸福生活来之不易，那是</FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"> </SPAN><FONT size=2>他将每一个看过的贴子都顶了的缘故。<BR></FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2><BR>(如果你不能为你心爱的女人穿上嫁衣，请停下你解她衣扣的手) </FONT><SPAN style="FONT-SIZE: 0pt; COLOR: #ffffff"><BR></SPAN><FONT size=2><BR>愿天下有情人终成眷属.当你们看到这贴时心里最想的那个人也就是你们最爱的那个人!</FONT></SPAN><img src ="http://www.blogjava.net/zhangrenquan/aggbug/32392.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2006-02-25 11:50 <a href="http://www.blogjava.net/zhangrenquan/archive/2006/02/25/32392.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>连接SQLserver数据库注意事项</title><link>http://www.blogjava.net/zhangrenquan/archive/2006/02/17/31180.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Fri, 17 Feb 2006 03:59:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2006/02/17/31180.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/31180.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2006/02/17/31180.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/31180.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/31180.html</trackback:ping><description><![CDATA[在<A href="http://dev.21tx.com/java/" target=_blank><FONT color=#3366cc>Java</FONT></A>文件中，连接SQLserver数据库时，需要一个连接数据库的<A href="http://drivers.21tx.com/" target=_blank><FONT color=#3366cc>驱动</FONT></A>文件。 <BR><BR>在你安装<A href="http://dev.21tx.com/java/base/jdk/" target=_blank><FONT color=#3366cc>JDK</FONT></A>的路径下的lib文件夹里拷贝一个文件jtds-0.6.jar，并且在环境变量里设置classpath，例如：你的jdk装在c:\jdk，那么环境变量classpath的路径应设为c:\jdk\lib\jtds-0.6.jar。（环境变量知道这么设吧？在我的电脑的属性，高级里。多个路径之间用分号隔开。） <BR><BR>这里提供SQLserver连接驱动文件jtds-0.6.jar，<A href="http://dl.21tx.com/" target=_blank><FONT color=#3366cc>下载</FONT></A>解压后拷贝到jdk路径下的lib文件夹里。 <BR><BR>具体在文件中的应用： <BR><BR>import java.sql.*; <BR>String url="<A href="http://dev.21tx.com/java/adv/jdbc/" target=_blank><FONT color=#3366cc>JDBC</FONT></A>:jtds:sqlserver://localhost:1433/‘数据库名´"； <BR>String driver="net.sourceforge.jtds.jdbc.Driver"; <BR>Class.forName(driver); <BR>Connection conn=DriverManager.getConnection(url,"用户名","密码"); <BR>就可以连接到你的数据库了。 <BR><BR>1433是SQLserver默认的端口号,如果要连接到其他机器上，要将localhost改为其他机器的IP地址，如192.168.0.101。 <BR><BR><BR>其中数据库名是你所新建的数据库的名称，用户名和密码是你登陆SQLserver是的用户名和密码。 <BR><BR>有的人安装SQLserver时用的是<A href="http://dev.21tx.com/os/windows/" target=_blank><FONT color=#3366cc>Windows</FONT></A>身份验证，那么用户名和密码都为空。如果不能登陆，或者要用SQL身份验证的话，需要修改<A href="http://school.21tx.com/os/regtable/" target=_blank><FONT color=#3366cc>注册表</FONT></A>。在运行里打开regedit，然后查找loginmode（具体位置：hkey_local_machine\software\microsoft\<A href="http://dev.21tx.com/database/mssql/" target=_blank><FONT color=#3366cc>MSSQL</FONT></A>server\ <BR>mssqlserver\），仅用Windows身份验证的值为1，混合身份验证的值为2。只要将1改为2，就可以用SQL身份验证了，用户名为‘sa'，密码为空。<img src ="http://www.blogjava.net/zhangrenquan/aggbug/31180.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2006-02-17 11:59 <a href="http://www.blogjava.net/zhangrenquan/archive/2006/02/17/31180.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java提供文件下载的方法</title><link>http://www.blogjava.net/zhangrenquan/archive/2006/02/16/30959.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Thu, 16 Feb 2006 04:21:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2006/02/16/30959.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/30959.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2006/02/16/30959.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/30959.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/30959.html</trackback:ping><description><![CDATA[<BR><BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;root&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;getServletContext().getRealPath(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;path&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;request.getParameter(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">path</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;request.getParameter(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">name</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;response.setContentType(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">unknown</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;response.addHeader(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Content-Disposition</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">filename=\</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">&nbsp;+&nbsp;name&nbsp;+&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">\</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_286_661_Open_Image onclick="this.style.display='none'; Codehighlighter1_286_661_Open_Text.style.display='none'; Codehighlighter1_286_661_Closed_Image.style.display='inline'; Codehighlighter1_286_661_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_286_661_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_286_661_Closed_Text.style.display='none'; Codehighlighter1_286_661_Open_Image.style.display='inline'; Codehighlighter1_286_661_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_286_661_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_286_661_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.io.OutputStream&nbsp;&nbsp;&nbsp;&nbsp;os&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;response.getOutputStream();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.io.FileInputStream&nbsp;fis&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;java.io.FileInputStream(root&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;path&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;name);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">byte</SPAN><SPAN style="COLOR: #000000">[]&nbsp;b&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">byte</SPAN><SPAN style="COLOR: #000000">[</SPAN><SPAN style="COLOR: #000000">1024</SPAN><SPAN style="COLOR: #000000">];<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">while</SPAN><SPAN style="COLOR: #000000">&nbsp;(&nbsp;(i&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;fis.read(b))&nbsp;</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;)&nbsp;<BR><IMG id=Codehighlighter1_551_592_Open_Image onclick="this.style.display='none'; Codehighlighter1_551_592_Open_Text.style.display='none'; Codehighlighter1_551_592_Closed_Image.style.display='inline'; Codehighlighter1_551_592_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_551_592_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_551_592_Closed_Text.style.display='none'; Codehighlighter1_551_592_Open_Image.style.display='inline'; Codehighlighter1_551_592_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_551_592_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_551_592_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;os.write(b,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;i);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fis.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;os.flush();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;os.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">&nbsp;(&nbsp;Exception&nbsp;e&nbsp;)<BR><IMG id=Codehighlighter1_693_699_Open_Image onclick="this.style.display='none'; Codehighlighter1_693_699_Open_Text.style.display='none'; Codehighlighter1_693_699_Closed_Image.style.display='inline'; Codehighlighter1_693_699_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_693_699_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_693_699_Closed_Text.style.display='none'; Codehighlighter1_693_699_Open_Image.style.display='inline'; Codehighlighter1_693_699_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_693_699_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_693_699_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN></DIV><img src ="http://www.blogjava.net/zhangrenquan/aggbug/30959.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2006-02-16 12:21 <a href="http://www.blogjava.net/zhangrenquan/archive/2006/02/16/30959.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>