﻿<?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-OpenCloseD-随笔分类-JAVA</title><link>http://www.blogjava.net/OpenCloseD/category/15129.html</link><description>!Qrdinary
</description><language>zh-cn</language><lastBuildDate>Fri, 08 Jun 2007 02:44:24 GMT</lastBuildDate><pubDate>Fri, 08 Jun 2007 02:44:24 GMT</pubDate><ttl>60</ttl><item><title>取一个字符串的第一个字母</title><link>http://www.blogjava.net/OpenCloseD/archive/2007/06/08/122754.html</link><dc:creator>开关</dc:creator><author>开关</author><pubDate>Thu, 07 Jun 2007 17:22:00 GMT</pubDate><guid>http://www.blogjava.net/OpenCloseD/archive/2007/06/08/122754.html</guid><wfw:comment>http://www.blogjava.net/OpenCloseD/comments/122754.html</wfw:comment><comments>http://www.blogjava.net/OpenCloseD/archive/2007/06/08/122754.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/OpenCloseD/comments/commentRss/122754.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/OpenCloseD/services/trackbacks/122754.html</trackback:ping><description><![CDATA[<p style="COLOR: #ffcc00">&nbsp;</p>
public static void main(String[] args) {<br>&nbsp;&nbsp;// TODO Auto-generated method stub<br>&nbsp;&nbsp;String aa="%.,.,2xb1bfsdfasfaarytjetyjj.,,";<br>&nbsp;&nbsp; int pos=isLetter(aa);<br>&nbsp;&nbsp;aa=aa.substring(pos,pos+1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(aa);<br>&nbsp;}<br>&nbsp;public&nbsp;&nbsp; static&nbsp;&nbsp; int&nbsp;&nbsp; isLetter(String&nbsp;&nbsp; validString){&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[]&nbsp;&nbsp; tempbyte=validString.getBytes(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int pos=0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for( int&nbsp; i=0;i&lt;validString.length();i++)&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte&nbsp; by=tempbyte[i];&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if((by&gt;=65)&amp;&amp;(by&lt;=90)||((by&gt;=97)&amp;&amp;(by&lt;=122)))&nbsp;&nbsp; {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pos++;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp; pos;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;<br><br><br><br><br><br>判断是否为数字组成的字串 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; public &nbsp; static &nbsp; boolean &nbsp; isNumber(String &nbsp; validString){ &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; byte[] &nbsp; tempbyte=validString.getBytes(); &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(int &nbsp; i=0;i&lt;validString.length();i++) &nbsp; { &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //by=tempbyte[i]; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if((tempbyte[i]&lt;48)||(tempbyte[i]&gt;57)){ &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; false; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; true; &nbsp; <br>&nbsp; &nbsp; &nbsp; } &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 判断字符串是否为只包括字母和数字 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; public &nbsp; static &nbsp; boolean &nbsp; isChar(String &nbsp; validString){ &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; byte[] &nbsp; tempbyte=validString.getBytes(); &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(int &nbsp; i=0;i&lt;validString.length();i++) &nbsp; { &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // &nbsp; &nbsp; by=tempbyte[i]; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if((tempbyte[i]&lt;48)||((tempbyte[i]&gt;57)&amp;(tempbyte[i]&lt;65))||(tempbyte[i]&gt;122)||((tempbyte[i]&gt;90)&amp;(tempbyte[i]&lt;97))) &nbsp; { &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; false; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; true; &nbsp; <br>&nbsp; &nbsp; &nbsp; } &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 判断字符串是否只包括字母 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; public &nbsp; static &nbsp; boolean &nbsp; isLetter(String &nbsp; validString){ &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; byte[] &nbsp; tempbyte=validString.getBytes(); &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(int &nbsp; i=0;i&lt;validString.length();i++) &nbsp; { &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //by=tempbyte[i]; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if((tempbyte[i]&lt;65)||(tempbyte[i]&gt;122)||((tempbyte[i]&gt;90)&amp;(tempbyte[i]&lt;97))) &nbsp; { &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; false; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; true; &nbsp; <br>&nbsp; &nbsp; &nbsp; }<br><br>目前计算机中用得最广泛的字符集及其编码，是由美国国家标准局(ANSI)制定的ASCII码（American Standard Code for Information Interchange，美国标准信息交换码），它已被国际标准化组织（ISO）定为国际标准，称为ISO 646标准。适用于所有拉丁文字字母，ASCII码有7位码和8位码两种形式。 <br><br>因为1位二进制数可以表示（21=）2种状态：0、1；而2位二进制数可以表示（22）=4种状态：00、01、10、11；依次类推，7位二进制数可以表示（27=）128种状态，每种状态都唯一地编为一个7位的二进制码，对应一个字符（或控制码），这些码可以排列成一个十进制序号0～127。所以，7位ASCII码是用七位二进制数进行编码的，可以表示128个字符。 <br><br>第0～32号及第127号(共34个)是控制字符或通讯专用字符，如控制符：LF（换行）、CR（回车）、FF（换页）、DEL（删除）、BEL（振铃）等； <br>通讯专用字符：SOH（文头）、EOT（文尾）、ACK（确认）等； <br><br>第33～126号(共94个)是字符，其中第48～57号为0～9十个阿拉伯数字；65～90号为26个大写英文字母，97～122号为26个小写英文字母，其余为一些标点符号、运算符号等。 <br><br>注意：在计算机的存储单元中，一个ASCII码值占一个字节(8个二进制位)，其最高位(b7)用作奇偶校验位。所谓奇偶校验，是指在代码传送过程中用来检验是否出现错误的一种方法，一般分奇校验和偶校验两种。奇校验规定：正确的代码一个字节中1的个数必须是奇数，若非奇数，则在最高位b7添1；偶校验规定：正确的代码一个字节中1的个数必须是偶数，若非偶数，则在最高位b7添1。 <br><br><br>Unicode码：Unicode码也是一种国际标准编码，采用二个字节编码，与ANSI码不兼容。目前，在网络、Windows系统和很多大型软件中得到应用。<br>
<img src ="http://www.blogjava.net/OpenCloseD/aggbug/122754.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/OpenCloseD/" target="_blank">开关</a> 2007-06-08 01:22 <a href="http://www.blogjava.net/OpenCloseD/archive/2007/06/08/122754.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java打包发布</title><link>http://www.blogjava.net/OpenCloseD/archive/2006/11/14/81065.html</link><dc:creator>开关</dc:creator><author>开关</author><pubDate>Tue, 14 Nov 2006 02:21:00 GMT</pubDate><guid>http://www.blogjava.net/OpenCloseD/archive/2006/11/14/81065.html</guid><wfw:comment>http://www.blogjava.net/OpenCloseD/comments/81065.html</wfw:comment><comments>http://www.blogjava.net/OpenCloseD/archive/2006/11/14/81065.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/OpenCloseD/comments/commentRss/81065.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/OpenCloseD/services/trackbacks/81065.html</trackback:ping><description><![CDATA[
		<p>
				<font color="#f5f5dc">打包发布<br /><br />为什么会有这个玩意呢，首先，这是jar的全称：JavaTM Archive (JAR) file，是的，就是java存档文件。这有点类似zip文件，想一想它是干什么的用的呢，压缩！？没错就是要压缩，将我们原先零散的东西放到一下，重新组织，所有这些目的只有一个：方便！好了，不用管他是怎么压缩的，我们的重点是哪些是我们要压缩的(输入)，还有压缩成了什么(输出)，进而将它发布(部署)。 <br /><br />那我们的输入(要压缩的东西)主要是class文件，还有辅助的资源(这其中可能有图片，jsp文件，html文件等等)。Jar技术在jdk1.1版本中就已存在，在1.2中又有了增强。接下来说说jar的好处吧，这是官方的描述：安全，快速下载，压缩，猎取包，版本化包，可携。 <br /><br />说了这么多，我们现在开始实施。 <br /><br />先打开命令提示符(win2000或在运行筐里执行cmd命令，win98为DOS提示符)，输入jar –help,然后回车(如果你盘上已经有了jdk1.1或以上版本)，看到什么： <br /><br />用法：jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ... <br /><br />选项： <br /><br />-c 创建新的存档 <br />-t 列出存档内容的列表 <br />-x 展开存档中的命名的（或所有的〕文件 <br />-u 更新已存在的存档 <br />-v 生成详细输出到标准输出上 <br />-f 指定存档文件名 <br />-m 包含来自标明文件的标明信息 <br />-0 只存储方式；未用ZIP压缩格式 <br />-M 不产生所有项的清单（manifest〕文件 <br />-i 为指定的jar文件产生索引信息 <br />-C 改变到指定的目录，并且包含下列文件： <br /><br />如果一个文件名是一个目录，它将被递归处理。 <br /><br />清单（manifest〕文件名和存档文件名都需要被指定，按'm' 和 'f'标志指定的相同顺序。 <br /><br />示例1：将两个class文件存档到一个名为 'classes.jar' 的存档文件中： <br />jar cvf classes.jar Foo.class Bar.class <br /><br />示例2：用一个存在的清单（manifest）文件 'mymanifest' 将 foo/ 目录下的所有文件存档到一个名为 'classes.jar' 的存档文件中： <br />jar cvfm classes.jar mymanifest -C foo/ . <br /><br />来个小例子试试看： <br />我们只有一个HelloWorld，如下： <br /><br />public class HelloWorld{ <br />public static void main(String[] args){ <br />System.out.println(“Hi, Hello World!”); <br />} <br />} <br /><br /><br /><br />我将这个java文件存到C盘跟目录下，ok，接下来， <br /><br />在先前打开的命令提示符下(跳转到C盘提示符下)，我们输入javac HelloWorld.java，然后继续输入：jar cvf hello.jar HelloWorld.class，回车后去你的C盘看看，多了什么，没错 hello.jar 。 <br /><br />基本的步骤我们现在都知道了，你可以自己去尝试一下随着jar后面的参数的不同，结果有什么变化。 <br /><br />紧接着我们看看如何运行我们的jar包。 <br /><br />在进入正题之前，你要先打开我们刚刚做好的jar包看看，多了什么呢，META-INF目录？再看看里面是什么，还有一个MANIFEST.MF文件是不是？用文本编辑器(我这里是UltraEdit)打开它看看： <br />Manifest-Version: 1.0 <br />Created-By: 1.4.2 (Sun Microsystems Inc.) <br /><br />就是这样。这里我们对它进行修改，加一句：Main-Class: HelloWorld (在第三行)。这个就是我们之前写的那个类，也就是我们的入口类。也即， <br />Manifest-Version: 1.0 <br />Created-By: 1.4.2 (Sun Microsystems Inc.) <br />Main-Class: HelloWorld <br /><br />接下来，我们在命令提示符里执行： <br />jar umf MANIFEST.MF app.jar <br /><br />这样我们使用了我们自己的MANIFEST.MF文件对原来默认的进行了更新。你不妨可以再进去看看是不是添上了Main-Class: HelloWorld这一句。 <br /><br />Ok，这个最后的一步了，来验证我们做的一切，在命令提示符中输入： <br />java -jar hello.jar(执行) <br /><br />出现了什么，――Hi, Hello World! <br />我们再来看看jar文件在tomcat中发布，注意：在tomcat中我们就不能再用jar这种格式，而改war格式，它是专门用于web应用的，其实整个过程下来基本上和jar是类似的： <br /><br />先准备我们要打包的资源。 <br /><br />找到存放tomcat的webapps目录，进到其中，新建一个文件夹，这里命名为hello，再进去新建WEB-INF文件夹，再进去新建classes文件夹，此时我们也将我们唯一的servlet，HelloWorld.java放到这里，在与classes目录同级下建立一文件web.xml。Ok，目前我们初步建立了一个简单的web应用。 <br /><br />在命令提示符下进到先前创制的hello目录下，执行 jar cvf hello.war * ，我们便得到hello.war。将它拷贝至webapps目录下，ok，来看最后一步，打开tomcat的目录conf中的server.xml，加入：<br />reloadable="true"/&gt; <br />大功告成！运行它，启动tomcat，后在浏览器中输入http://localhost:8080/hello/HelloWorld，有了吗？ <br /><br />好了，就这么多，希望对你有点帮助。</font>
		</p>
		<p>
				<br />
				<font color="#f5f5dc">补充： <br />############ <br /><br />jar基本操作： <br /><br />############ <br /><br />1. 创建jar文件 <br />jar cf jar-file input-file(s) <br />c---want to Create a JAR file. <br />f---want the output to go to a file rather than to stdout. <br />eg: 1)jar cf myjar.jar query_maintain_insert.htm <br />2)jar cvf myjar.jar query_maintain_insert.htm <br />v---Produces verbose(详细的) output. <br />3)jar cvf myjar.jar query_maintain_insert.htm mydirectory <br />4)jar cv0f myjar.jar query_maintain_insert.htm mydirectory <br />0---don't want the JAR file to be compressed. <br />5)jar cmf MANIFEST.MF myjar.jar yahh.txt <br />m---Used to include manifest information from an existing manifest file. <br />6)jar cMf MANIFEST.MF myjar.jar yahh.txt <br />M---the default manifest file should not be produced. <br />7)jar cvf myjar.jar * <br />*---create all contents in current directory. <br />2. 察看jar文件 <br />jar tf jar-file <br />t---want to view the Table of contents of the JAR file. <br />eg: 1)jar vft yahh.jar <br />v---Produces verbose(详细的) output. <br />3. 提取jar文件 <br />jar xf jar-file [archived-file(s)] <br />x---want to extract files from the JAR archive. <br />eg: 1)jar xf yahh.jar yahh.txt(仅提取文件yahh.txt) <br />2)jar xf yahh.jar alex/yahhalex.txt(仅提取目录alex下的文件yahhalex.txt) <br />3)jar xf yahh.jar(提取该jar包中的所有文件或目录) <br />4. 修改Manifest文件 <br />jar cmf manifest-addition jar-file input-file(s) <br />m---Used to include manifest information from an existing manifest file. <br /><br />5. 更新jar文件 <br /><br />jar uf jar-file input-file(s) <br />u---want to update an existing JAR file.  </font>
		</p>
<img src ="http://www.blogjava.net/OpenCloseD/aggbug/81065.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/OpenCloseD/" target="_blank">开关</a> 2006-11-14 10:21 <a href="http://www.blogjava.net/OpenCloseD/archive/2006/11/14/81065.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat server.xml 相关</title><link>http://www.blogjava.net/OpenCloseD/archive/2006/09/26/71945.html</link><dc:creator>开关</dc:creator><author>开关</author><pubDate>Tue, 26 Sep 2006 04:56:00 GMT</pubDate><guid>http://www.blogjava.net/OpenCloseD/archive/2006/09/26/71945.html</guid><wfw:comment>http://www.blogjava.net/OpenCloseD/comments/71945.html</wfw:comment><comments>http://www.blogjava.net/OpenCloseD/archive/2006/09/26/71945.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/OpenCloseD/comments/commentRss/71945.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/OpenCloseD/services/trackbacks/71945.html</trackback:ping><description><![CDATA[
		<font color="#deb887">
				<font size="2">说明：以下文字均以tomcat5.0.30为例进行。<br /><br />1，配置tomcat服务器访问端口，只需配置Connector的port端口即可。Tomcat默认为8080，现修改port参数值为80。<br />&lt;!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 --&gt;<br />&lt;Connector port="80"<br />maxThreads="150" minSpareThreads="25" maxSpareThreads="75"<br />enableLookups="false" redirectPort="8443" acceptCount="100"<br />debug="0" connectionTimeout="20000" <br />disableUploadTimeout="true" URIEncoding="GBK"/&gt;<br /><br />2，配置tomcat支持URL中文参数，只需添加Connector的URIEncoding参数即可，默认情况下该参数未被配置。要支持URL参数支持中文，加上URIEncoding=”GBK”就行了（见1中附代码最后一行）。<br /><br /><br />3，配置新的webApp：找到host尾标记&lt;/Host&gt;，插入新的context即可。<br />如：<br />（1）&lt;Context path="" docBase="ROOT" debug="0"/&gt;<br />若要支持数据库（以SQL Server为例），则为：<br />（2）&lt;Context path="/xkb" docBase="F:\XKB6\webApp" debug="5" reloadable="true" crossContext="true"&gt;<br />&lt;Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"/&gt;<br />&lt;Resource name="jdbc/SqlServerDB" auth="Container" type="javax.sql.DataSource"/&gt;<br />&lt;ResourceParams name="jdbc/SqlServerDB"&gt;<br />&lt;parameter&gt;<br />&lt;name&gt;factory&lt;/name&gt;<br />&lt;value&gt;org.apache.commons.dbcp.BasicDataSourceFactory&lt;/value&gt;<br />&lt;/parameter&gt;<br /><br />&lt;!-- Maximum number of dB connections in pool. Make sure you configure your mysqld max_connections large enough to handle all of your db connections. Set to 0 for no limit.--&gt;<br /><br />&lt;parameter&gt;<br />&lt;name&gt;maxActive&lt;/name&gt;<br />&lt;value&gt;50&lt;/value&gt;<br />&lt;/parameter&gt;<br /><br />&lt;!-- Maximum number of idle dB connections to retain in pool. Set to 0 for no limit.--&gt;<br /><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 /><br />&lt;!-- Maximum time to wait for a dB connection to become available in ms, in this example 0.5 seconds. An Exception is thrown if this timeout is exceeded. Set to -1 to wait indefinitely. --&gt;<br /><br />&lt;parameter&gt;<br />&lt;name&gt;maxWait&lt;/name&gt;<br />&lt;value&gt;500&lt;/value&gt;<br />&lt;/parameter&gt;<br /><br />&lt;!-- msSQL dB username and password for dB connections --&gt;<br /><br />&lt;parameter&gt;<br />&lt;name&gt;username&lt;/name&gt;<br />&lt;value&gt;sa&lt;/value&gt;<br />&lt;/parameter&gt;<br /><br />&lt;parameter&gt;<br />&lt;name&gt;password&lt;/name&gt;<br />&lt;value&gt;wangnewton&lt;/value&gt;<br />&lt;/parameter&gt;<br /><br />&lt;!-- Class name for SQLServer2000 JDBC driver --&gt;<br /><br />&lt;parameter&gt;<br />&lt;name&gt;driverClassName&lt;/name&gt;<br />&lt;value&gt;com.microsoft.jdbc.sqlserver.SQLServerDriver&lt;/value&gt;<br /><br />&lt;/parameter&gt;<br /><br />&lt;!-- The JDBC connection url for connecting to your MS SQL Server dB.The autoReconnect=true argument to the url makes sure that the mm.Sql Server JDBC Driver will automatically reconnect if mysqld closed the connection. mysqld by default closes idle connections after 8 hours.--&gt;<br /><br />&lt;parameter&gt;<br />&lt;name&gt;url&lt;/name&gt;<br />&lt;value&gt;jdbc:microsoft:sqlserver://localhost:1433;databaseName=XKBCourse&lt;/value&gt;<br />&lt;!--must use &amp; not use &amp; --&gt;<br />&lt;/parameter&gt;<br /><br />&lt;/ResourceParams&gt;<br />&lt;/Context&gt;  </font>
				<br />
		</font>
<img src ="http://www.blogjava.net/OpenCloseD/aggbug/71945.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/OpenCloseD/" target="_blank">开关</a> 2006-09-26 12:56 <a href="http://www.blogjava.net/OpenCloseD/archive/2006/09/26/71945.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EJB 中 MDB的小记</title><link>http://www.blogjava.net/OpenCloseD/archive/2006/09/13/69268.html</link><dc:creator>开关</dc:creator><author>开关</author><pubDate>Tue, 12 Sep 2006 17:14:00 GMT</pubDate><guid>http://www.blogjava.net/OpenCloseD/archive/2006/09/13/69268.html</guid><wfw:comment>http://www.blogjava.net/OpenCloseD/comments/69268.html</wfw:comment><comments>http://www.blogjava.net/OpenCloseD/archive/2006/09/13/69268.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/OpenCloseD/comments/commentRss/69268.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/OpenCloseD/services/trackbacks/69268.html</trackback:ping><description><![CDATA[
		<font color="#deb887">在手动写CODE来建立publisher或者subscriber的时其步骤: </font>
		<p>
				<font color="#deb887">1。先得到上下文对象(此对象的用client端得getContext()方法加以改进复制)。 </font>
		</p>
		<p>
				<font color="#deb887">2。由对象然后lookup工厂的jndi(这个jndi WEBLOGIC默认的是"Weblogic.jms.ConnectionFactory")。 </font>
		</p>
		<p>
				<font color="#deb887">3。由工厂得到连接，当然此连接根据要得到的类型不同而改变(队列就是createQueueConnection主题就是createTopicConnection)。 </font>
		</p>
		<p>
				<font color="#deb887">4。由conn得到相应的session例如(TopicSession session=conn.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);) </font>
		</p>
		<p>
				<font color="#deb887">5。根据上下文对象和队列的jndi得到要监控的队列如(Topic topic=(Topic)ctx.lookup("pubsub");)。 </font>
		</p>
		<p>
				<font color="#deb887">6。在session的基础上建立发送者 </font>
		</p>
		<p>
				<font color="#deb887">7。在session的基础上建立要发送的对象(根据类型有5种) </font>
		</p>
		<p>
				<font color="#deb887">8。发送者发送对象  或者 接收者开始接收 </font>
		</p>
		<p>
				<font color="#deb887">ps：关于自己写的监听class可以 写一个内部类 让这个内部类extends MessageListener interface,然后写一个和标准MDB一样的 onMessage()方法。 </font>
		</p>
<img src ="http://www.blogjava.net/OpenCloseD/aggbug/69268.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/OpenCloseD/" target="_blank">开关</a> 2006-09-13 01:14 <a href="http://www.blogjava.net/OpenCloseD/archive/2006/09/13/69268.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>