<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>handsome</title>
    <description></description>
    <link>http://shycn.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>教你写正则（二）</title>
        <author>handsome224521</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://shycn.javaeye.com">handsome224521</a>&nbsp;
          链接：<a href="http://shycn.javaeye.com/blog/188058" style="color:red;">http://shycn.javaeye.com/blog/188058</a>&nbsp;
          发表时间: 2008年04月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-size: small;">上次说到什么地方了;应该接着说一下字符</span>
<span style="font-size: small;">类了。呵呵<br />
有了字符集合的元字符，查找数字字母都很简单了，但是有些没预定义的字符集合就麻<br />
烦了哦。别怕，人类是聪明的：你只需在方括号里将他们列出来就行了如[aeiou]就匹<br />
配任何一个英文元音字母。[.?!]匹配标点符号（. ? !）。下面来看一下：\(?0\d{2}[)-]?\d{8}<br />
它可以匹配几种电话号码：像（010）xxxxxxxx,或者0xx-xxxxxxxx 或者直接就是<br />
0xxxxxxxxxx；分析一下：\(是转义字符大家没忘记吧，它代表出现一次（?）或不出<br />
现。然后跟一个0，后面是两位数字（看过上文的应该明白）然后是）或-或空格。中<br />
的一个，他们出现一次或不出现。最后是8位数字了。明白了吧。</span>
</p>
<p style="text-align: left;"><span style="font-size: small;">分枝条件：</span>
</p>
<p style="text-align: left;"><span style="font-size: small;">顾名思义就是分支的意思。废话吧。看下就明白了。符号是|是不是很熟悉。就是或则嘛！如：0\d{2}-\d{8}|0\d{3}-\d{7}这个<br />
表达式能匹配两种以连字号分隔的电话号码：一种是三位区号，8位本地号(如010-12345678)，一种是4位区号，7位本地号(0376-2233445)<br />
下面是&nbsp; 分组<br />
我们已经提到了怎么重复单个字符（直接在字符后面加上限定符就行了）；但如果想要重复多个字符又该怎么办？你可以用小括号来指定子表达式(也叫做分组)，然后你就可以指定这个子表达式的重复次数了，你也可以对子表达式进行其它一些操作(后面会有介绍)。(\d{1,3}\.){3}\d{1,3}是一个简单的IP地址匹配表达式。但是ip必须不能大于255 怎么办呢？如果能使用算术比较的话，或许能简单地解决这个问题，但是正则表达式中并不提供关于数学的任何功能，所以只能使用冗长的分组，选择，字符类来描述一个正确的IP地址：((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)。<br />
理解这个表达式的关键是理解2[0-4]\d|25[0-5]|[01]?\d\d?，这里我就不细说了，你<br />
自己应该能分析得出来它的意义<br />
反义：就是取反的意思；&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 也就是比如你查出数字以外的字符。自己看一下吧！<br />
\W 匹配任意不是字母，数字，下划线，汉字的字符 <br />
\S 匹配任意不是空白符的字符 <br />
\D 匹配任意非数字的字符 <br />
\B 匹配不是单词开头或结束的位置 <br />
[^x] 匹配除了x以外的任意字符 <br />
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符 <br />
好了实际上说这么多就行了，只要大家不是专门研究这东西的。最后告诉大家一个又快又省事的方法就是直接google。呵呵，不写<br />
了可能没什么必要，都没人讨论一下，而且<br />
还担心管理员给隐藏了....</span>
</p>
          <br/>
          <span style="color:red;">
            <a href="http://shycn.javaeye.com/blog/188058#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 29 Apr 2008 14:49:52 +0800</pubDate>
        <link>http://shycn.javaeye.com/blog/188058</link>
        <guid>http://shycn.javaeye.com/blog/188058</guid>
      </item>
      <item>
        <title>教你正则表达式</title>
        <author>handsome224521</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://shycn.javaeye.com">handsome224521</a>&nbsp;
          链接：<a href="http://shycn.javaeye.com/blog/186528" style="color:red;">http://shycn.javaeye.com/blog/186528</a>&nbsp;
          发表时间: 2008年04月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="background-color: #ffff99;">我同学写了一个正者的验证，就是几个例子 。看了一下...感觉应该授之于渔...</span>
</p>
<p><span style="background-color: #ffff99;">么是正者？</span>
<br />
在编写处理字符串的程序或网页时，经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说，</p>
<p>正则表达式就是记录文本规则的代码。<br />
很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard)，也就是*和?。如果你想查找某个目录下的所有的Word文档的话，你会搜索</p>
<p>*.doc。在这里，*会被解释成任意的字符串。和通配符类似，正则表达式也是用来进行文本匹配的工具，只不过比起通配符，它能更精确地描述你的需求&mdash;&mdash;当然，代价就是更复杂。<br />
学习正则表达式的最好方法是从例子开始：试验&quot;假设你在一篇英文小说里查找hi&quot;,答案：&quot;正则表达式hi&quot;没忽悠你。是这样的。这是最简单的正则表达式，它可以精确匹配这样的字符串。很不幸，很多单词里包含hi这两个连续的字符，比如him,history,high等等。用hi来查找的话，这里边的hi也会被找出来。精确一点，改为\bhi\b吧。\b是正则表达式规定的一个特殊代码（<span style="background-color: #ffff99;">元字符</span>
）。下面会详细说它。代表着单词的开头或结尾，也就是单词的分界处。假如你要找的是hi后面不远处跟着一个Lucy，那么你应该用\bhi\b.*\bLucy\b；'.'和'*'都是元字符。前者匹配除了换行符以外的任意字符，后者是数量。.*连在一起就意味着任意数量的不包含换行的字符。如果同时使用其它元字符，我们就能构造出功能更强大的正则表达式。不难吧...哈哈因为你是天才...<br />
<span style="background-color: #ffff99;">正则表达式的语法很令人头疼</span>
，即使你是天才也会这么认为。由于难于读写，容易出错，所以找一种工具对正则表达式进行测试是很有必要的。在不同的环境下正则表达式的一些细节是不相同的，本人推荐RegexTester.exe。</p>
<p><span style="background-color: #ffff99;">元字符</span>
...注意了上面没看懂的....<br />
现在你已经知道几个很有用的元字符了，如\b,.,*，还有\d.正则表达式里还有更多的元字符，比如\s匹配任意的空白符，包括空格，制表符(Tab)，换行符，中文全角空格等。\w匹配字母或数字或下划线或汉字等。<br />
对中文/汉字的特殊处理是由.Net提供的正则表达式引擎支持的，其它环境下的具体情况请查看相关文档。<br />
下面来看看更多的例子：<br />
\ba\w*\b匹配以字母a开头的单词&mdash;&mdash;先是某个单词开始处(\b)，然后是字母a,然后是任意数量的字母或数字(\w*)，最后是单词结束处(\b)。<br />
好吧，现在我们说说正则表达式里的单词是什么意思吧：就是多于一个的连续的\w。不错，这与学习英文时要背的成千上万个同名的东西的确关系不大 :)<br />
\d+匹配1个或更多连续的数字。这里的+是和*类似的元字符，不同的是*匹配重复任意次(可能是0次)，而+则匹配重复1次或更多次。<br />
\b\w{6}\b 匹配刚好6个字母/数字的单词。<br />
常用的元字符 代码 说明 <br />
. 匹配除换行符以外的任意字符 <br />
\w 匹配字母或数字或下划线或汉字 <br />
\s 匹配任意的空白符 <br />
\d 匹配数字 <br />
\b 匹配单词的开始或结束 <br />
^ 匹配字符串的开始 <br />
$ 匹配字符串的结束 <br />
元字符^（和数字6在同一个键位上的符号）和$都匹配一个位置，这和\b有点类似。^匹配你要用来查找的字符串的开头，$匹配结尾。这两个代码在验证输入的内容时非常有用，比如一个网站如果要求你填写的QQ号必须为5位到12位数字时，可以使用：^\d{5,12}$。<br />
这里的{5,12}和前面介绍过的{2}是类似的，只不过{2}匹配只能不多不少重复2次，{5,12}则是重复的次数不能少于5次，不能多于12次，否则都不匹配。<br />
因为使用了^和$，所以输入的整个字符串都要用来和\d{5,12}来匹配，也就是说整个输入必须是5到12个数字，因此如果输入的QQ号能匹配这个正则表达式的话，那就符合要求了。<span style="background-color: #ffff99;">我同学举了这个例子...不过学了这招他上面的例子你可以一个个自己写不要记了...哈哈<br />
</span>
和忽略大小写的选项类似，有些正则表达式处理工具还有一个处理多行的选项。如果选中了这个选项，^和$的意义就变成了匹配行的开始处和结束处。<br />
<span style="background-color: #ffff99;">字符转义：</span>
</p>
<p>如果你想查找元字符本身的话，比如你查找.,或者*,就出现了问题：你没办法指定它们，因为它们会被解释成别的意思。这时你就得使用\来取消这些字符的特殊意义。因此，你应该使用\.和\*。当然，要查找\本身，你也得用\\. 好累...不过会编程的都知道<br />
例如：unibetter\.com匹配unibetter.com，C:\\Windows匹配C:\Windows。</p>
<p><span style="background-color: #ffff99;">重复：<br />
</span>
你已经看过了前面的*,+,{2},{5,12}这几个匹配重复的方式了<br />
下面是正则表达式中所有的限定符<br />
常用的限定符 代码/语法 说明 <br />
* 重复零次或更多次 <br />
+ 重复一次或更多次 <br />
? 重复零次或一次 <br />
{n} 重复n次 <br />
{n,} 重复n次或更多次 <br />
{n,m} 重复n到m次 <br />
如：Windows\d+匹配Windows后面跟1个或更多数字</p>
<p>好累 今天就写这么多剩下的以后些吧...谢谢大家关注</p>
          <br/>
          <span style="color:red;">
            <a href="http://shycn.javaeye.com/blog/186528#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 24 Apr 2008 20:51:31 +0800</pubDate>
        <link>http://shycn.javaeye.com/blog/186528</link>
        <guid>http://shycn.javaeye.com/blog/186528</guid>
      </item>
      <item>
        <title>再学Spring AOP</title>
        <author>handsome224521</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://shycn.javaeye.com">handsome224521</a>&nbsp;
          链接：<a href="http://shycn.javaeye.com/blog/186512" style="color:red;">http://shycn.javaeye.com/blog/186512</a>&nbsp;
          发表时间: 2008年04月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>Spring AOP部分使用JDK动态代理或者CGLIB来为目标对象创建代理。（建议尽量使用JDK的动态代理） <br />如果被代理的目标对象实现了至少一个接口，则会使用JDK动态代理。所有该目标类型实现的接口都将被代理。若该目标对象没有实现任何接口，则创建一个CGLIB代理。 <br />如果你希望强制使用CGLIB代理，（例如：希望代理目标对象的所有方法，而不只是实现自接口的方法）那也可以。但是需要考虑以下问题: <br /><span style="background-color: #ffcc00;">无法通知（advise）Final 方法，因为他们不能被覆写。 <br />你需要将CGLIB 2二进制发行包放在classpath下面，与之相较JDK本身就提供了动态代理 <br />强制使用CGLIB代理需要将 &lt;aop:config&gt; 的 proxy-target-class 属性设为true: <br /></span>&lt;aop:config proxy-target-class="true"&gt; <br />... <br />&lt;/aop:config&gt; <br />当需要使用CGLIB代理和@AspectJ自动代理支持，请按照如下的方式设置 &lt;aop:aspectj-autoproxy&gt; 的 proxy-target-class 属性： <br />&lt;aop:aspectj-autoproxy proxy-target-class="true"/&gt; <br />除了在配置文件中使用 &lt;aop:config&gt; 或者 &lt;aop:aspectj-autoproxy&gt; 来声明切面。 同样可以通过编程方式来创建代理通知（advise）目标对象。这里我介绍的是自动创建代理。 <br />类 <span style="background-color: #ffcc00;">org.springframework.aop.aspectj.annotation.AspectJProxyFactory</span> 可以为@AspectJ切面的目标对象创建一个代理。该类的基本用法非常简单，示例如下</p>
<p>&nbsp;</p>
<pre name="code" class="java">// create a factory that can generate a proxy for the given target object
AspectJProxyFactory factory = new AspectJProxyFactory(targetObject); 

// add an aspect, the class must be an @AspectJ aspect
// you can call this as many times as you need with different aspects
factory.addAspect(SecurityManager.class);

// you can also add existing aspect instances, the type of the object supplied must be an @AspectJ aspect
factory.addAspect(usageTracker);	

// now get the proxy object...
MyInterfaceType proxy = factory.getProxy();
</pre>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://shycn.javaeye.com/blog/186512#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 24 Apr 2008 20:07:47 +0800</pubDate>
        <link>http://shycn.javaeye.com/blog/186512</link>
        <guid>http://shycn.javaeye.com/blog/186512</guid>
      </item>
      <item>
        <title>再学Spring Aop 原理</title>
        <author>handsome224521</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://shycn.javaeye.com">handsome224521</a>&nbsp;
          链接：<a href="http://shycn.javaeye.com/blog/183830" style="color:red;">http://shycn.javaeye.com/blog/183830</a>&nbsp;
          发表时间: 2008年04月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          再学AOP<br />概念：<br />切面(aspect):一个关注点的模块化，这个关注点可能会横切多个对象。<br /><br />连接点：Joinpoint：在程序执行过程中某个特定的点，一个连接点总是代表一个方法的执行。通过声明使（advice）通知的主体部分获得连接<br /><br />点的信息。<br /><br />通知（advice）在某个特定的连接点上执行的动作。许多aop框架包括spring都是以拦截器做通知的模型的，并维护一个以连接点为中心的拦截<br /><br />器链。<br /><br />切入点（Pointcut）：匹配连接点的断言。<br />引入（Introduction）：声明额外的方法或者麽各类型的字段，spring允许引入新的接口到任何被代理的对象。通过使用一个引入来使bean实<br /><br />现IsModify接口，以简便缓存机制。<br /><br />目标对象（Target Object）：被一个或者多个切面所通知的对象<br /><br />Aop代理（AOPProxy）：Aop框架创建的对象，用来实现切面契约（aspect contract）包括通知方法执行等功能。spring中是JDK动态代理。或<br /><br />者是CGLIB代理spring2.0最新引入的基于模式（schema-based）风格和AspectJ注解风格的切面声明，对与使用这些风格的用户来说，代理的创<br /><br />建使的<br /><br />织入(Weaving)：把切面连接到其他的应用程序类型或者对象上，并创建一个通知的对象，<br /><br />前置通知：在连接点之前执行的通知，但这个通知不能阻止连接点前的执行<br /><br />返回后通知：在连接点正常完成后执行的通知<br /><br />抛出异常后的通知：在方法抛出异常退出时执行的通知。<br /><br />后通知：当某连接退出的时候执行的通知。<br /><br />环绕通知：包围一个连接点的通知。<br /><br />注意：尽量使用最简单的通知类型来实现需要的功能，用合适的通知类型会使编程变得简单，并且能够避免很多潜在的错误。<br /><br />切入点和连接点匹配的概念是AOP的关键，这使得AOP不同于其他仅仅提<br /><br />供拦截功能的旧技术。<br /><br />AOP的功能和目标<br />上面简单的说了一些Aop的概念，进来有看了一下，感觉应该继续写下去，继续写一下它的功能和目标吧：<br />Spring AOP用纯Java实现。它不需要专门的编译过程。Spring AOP不需要控制类装载器层次，因此它适用于J2EE web容器或应用服务器，<br /><br />Spring目前仅支持使用方法调用作为连接点（join point）虽可以加入对成员变量拦截器支持，但Spring并没有实现成员变量拦截器。Spring<br /><br />并不是要尝试提供最完整的AOP实现（尽管Spring AOP有这个能力）， 相反的，它其实侧重于提供一种AOP实现和Spring IoC容器的整合，用于<br /><br />帮助解决在企业级开发中的常见问题。因此，它通常都和IoC容器一起使用。与其他AOP实现相比这是一个显著的区别。有些事使用Spring AOP<br /><br />是无法轻松或者高效的完成的，比如说通知一个细粒度的对象。事实证明只要适合AOP来解决的，Spring AOP都没有问题，Spring AOP提供了一<br /><br />个非常好的解决方案。而且spring从不去竞争哪个框架，而是去包容她，互补她。呵呵是不是一个最完美的情人....不爱她你还爱谁？<br />下一次我准备再看看AOP的代理机制吧
          <br/>
          <span style="color:red;">
            <a href="http://shycn.javaeye.com/blog/183830#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 17 Apr 2008 17:08:56 +0800</pubDate>
        <link>http://shycn.javaeye.com/blog/183830</link>
        <guid>http://shycn.javaeye.com/blog/183830</guid>
      </item>
      <item>
        <title>WebSphere Integration Developer中开发struts项目</title>
        <author>handsome224521</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://shycn.javaeye.com">handsome224521</a>&nbsp;
          链接：<a href="http://shycn.javaeye.com/blog/178186" style="color:red;">http://shycn.javaeye.com/blog/178186</a>&nbsp;
          发表时间: 2008年03月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          由于工作需要，需要在websphere integration developer 下开发struts项目，但由于学习资料很少，一时没办法学习，就想个位能否慷慨解囊，把自己的经验都拿来交流一下，或则把自己的成就拿来展示一下，让我们大开眼界，看看到底为什么要在WID下开发，他到底是否有自己的独特之处。
          <br/>
          <span style="color:red;">
            <a href="http://shycn.javaeye.com/blog/178186#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 31 Mar 2008 20:47:56 +0800</pubDate>
        <link>http://shycn.javaeye.com/blog/178186</link>
        <guid>http://shycn.javaeye.com/blog/178186</guid>
      </item>
      <item>
        <title>webSpher 下连接数据源（DB2）</title>
        <author>handsome224521</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://shycn.javaeye.com">handsome224521</a>&nbsp;
          链接：<a href="http://shycn.javaeye.com/blog/177920" style="color:red;">http://shycn.javaeye.com/blog/177920</a>&nbsp;
          发表时间: 2008年03月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          一步一步建立WebSphere 数据源连接：<br />1.打开websphere控制中心<br />2.如需您连接的数据源有密码，则先新建一个J2C认证<br />  具体步骤：安全性-->全局安全性-->认证下的JAAS配置-->J2C认证数<br /><br />据-->新建<br />3.好了之后，进行配置数据源，具体步骤：资源-->JDBC 提供程序 --><br /><br />进入的页面有一个已有的JDBC提供程序列表，如果没有需要的，则新建<br /><br />一个，点击新建按钮  -->选择数据库（DB2），及数据库驱动类型，及<br /><br />实现方式-->下一步 确定并保存<br />4.然后在该页面的“其它属性”面板中点击“数据源”，在进入的页面<br /><br />中点击“新建”按钮 <br /> 在组件管理的认证别名、容器管理的认证别名中分别选择您之前建立的<br /><br />J2C认证 、最后填上您的数据库名称及服务器地址。<br />点击确定<br />5.进行连接测试  消息显示： <br />  在节点 widNode 上的服务器 server1 上，数据源 DB2 Universal    <br /><br />JDBC Driver DataSource 的测试连接是成功的 <br />到此连接完毕
          <br/>
          <span style="color:red;">
            <a href="http://shycn.javaeye.com/blog/177920#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 31 Mar 2008 10:28:18 +0800</pubDate>
        <link>http://shycn.javaeye.com/blog/177920</link>
        <guid>http://shycn.javaeye.com/blog/177920</guid>
      </item>
      <item>
        <title>关于struts validation 验证的学习</title>
        <author>handsome224521</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://shycn.javaeye.com">handsome224521</a>&nbsp;
          链接：<a href="http://shycn.javaeye.com/blog/177741" style="color:red;">http://shycn.javaeye.com/blog/177741</a>&nbsp;
          发表时间: 2008年03月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这几日公司的项目准备使用struts的验证，所以就看了一下写在这里希望对各位有帮助，同时希望各位多讨论：<br />validation.xml文件的文档结构是由validator_1_1_3.dtd文件定义，其文件头部内容如下：<br /><br />&lt;?xml version="1.0" encoding="UTF-8"?><br />&lt;!DOCTYPE form-validation PUBLIC<br />          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"         <br /><br />"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd"><br /><br />其顶层元素为：&lt;form-validation>，它包含&lt;formset>和&lt;global>子元素。一般只需要定义&lt;formset>元素，&lt;formset>元素定义格式如下：<br /><br />&lt;formset><br />&lt;constant>&lt;/constant><br />&lt;form>&lt;/form><br />&lt;/formset><br /> 其中&lt;constant />为可选子元素，而&lt;form />子元素至少需要出现一次。&lt;form />子元素的定义格式如下：<br /><br />&lt;form name=""><br />&lt;field property="">&lt;/field><br />..............<br />&lt;field property="" depends=""  page=""  indexedListProperty="">&lt;/field><br />&lt;/form><br /><br />其中属性描述如下：<br />name：指定了表单的名字与配置文件中的form-bean的name相同；<br />field：对应表单中验证的字段；<br />property：对应ActionForm的属性；<br />depends：指定验证规则，例如：required、maxlength等；<br />page：ActionForm若是跨页表单，则与表单中的page属性对应。<br /><br />field应该是你验证信息实现的部分：<br />例如你想进行email验证：<br />&lt;field property="email" depends="required, email"><br />&lt;arg0 key="UserForm.email" /><br />&lt;/field><br />其中key对应的是资源文件中的键值，当然为了得到正确且可读的信息，开发人员还需要在资源文件中添加errors.required等默认的错误信息<br /><br />，具体操作如下：errors.email = {0}是无效e-mail地址<br /><br />在Struts中的验证机制还提供了扩展，开发人员可以添加自定义的验证规则，例如可添加文件类型的验证。此时需要编写的Java类、在<br /><br />validator-rules.xml添加该验证规则以及添加验证的js。
          <br/>
          <span style="color:red;">
            <a href="http://shycn.javaeye.com/blog/177741#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 30 Mar 2008 10:57:39 +0800</pubDate>
        <link>http://shycn.javaeye.com/blog/177741</link>
        <guid>http://shycn.javaeye.com/blog/177741</guid>
      </item>
      <item>
        <title>关于IBM的工作流中的活动理解</title>
        <author>handsome224521</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://shycn.javaeye.com">handsome224521</a>&nbsp;
          链接：<a href="http://shycn.javaeye.com/blog/177568" style="color:red;">http://shycn.javaeye.com/blog/177568</a>&nbsp;
          发表时间: 2008年03月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          业务流程的一些组成元素：<br />活动<br />合作伙伴<br />变量<br />相关集<br />处理程序<br /><br />活动：就是执行一项工作：包括计算调用业务合作伙伴或调用人工任务 最终来实现您的是业务逻辑<br /><br />服务活动<br />分为接收活动（服务的起点）、服务活动、响应活动<br />结构化活动 <br /><br />结构化 活动包含其他活动。结构化活动包括： <br /><br />序列 <br />选择 <br />接收选择 <br />并行 <br />While 循环 <br />范围 <br /><br /><br />结构化活动分析：<br />结构化活动包括：序列、选择、接收选择、并行、while循环、范围<br /><br />首先说一个最简单的吧：序列活动<br /><br />顾名思义就是按顺序进行，但它可以包含简单的活动，也可以是其他的结构或活动（可以嵌套），通常为了图表的整洁，我们会把序列进行隐藏。<br />二、选择活动 <br />根据条件控制流程采用的路径来决定下一步的活动集（相当于switch）不同的是它可包含otherwise<br /><br />三、接收选择活动：就是同选择活动相似，不过没有otherwise<br />向其他的一些活动就十分的简单易理解，这里就不提了，如果有希望进一步了解的请自己多努力，并多交流。
          <br/>
          <span style="color:red;">
            <a href="http://shycn.javaeye.com/blog/177568#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 29 Mar 2008 12:09:13 +0800</pubDate>
        <link>http://shycn.javaeye.com/blog/177568</link>
        <guid>http://shycn.javaeye.com/blog/177568</guid>
      </item>
      <item>
        <title>WebSphere Integration Developer 中流程与业务状态机</title>
        <author>handsome224521</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://shycn.javaeye.com">handsome224521</a>&nbsp;
          链接：<a href="http://shycn.javaeye.com/blog/176391" style="color:red;">http://shycn.javaeye.com/blog/176391</a>&nbsp;
          发表时间: 2008年03月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          上次我在查业务状态机和业务流程问题时就发现很少有人回答，我就自己查了一下资料。简单地写在这希望大家讨论一下：<br />实际上业务状态机是一种特殊的业务流程，这就说明二者十分的相似，但什么时候用流程什么时候用业务状态机呢？其实也是很简单的，比如一个流程涉及对时间作出相应，并且相应取决于流程的当前状态，那么将流程实现为业务状态机可能十分有用。
          <br/>
          <span style="color:red;">
            <a href="http://shycn.javaeye.com/blog/176391#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 26 Mar 2008 16:23:13 +0800</pubDate>
        <link>http://shycn.javaeye.com/blog/176391</link>
        <guid>http://shycn.javaeye.com/blog/176391</guid>
      </item>
      <item>
        <title>struts1.2+hibernate3.0 +spring 2.0 +mysql 开发时问题</title>
        <author>handsome224521</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://shycn.javaeye.com">handsome224521</a>&nbsp;
          链接：<a href="http://shycn.javaeye.com/blog/165956" style="color:red;">http://shycn.javaeye.com/blog/165956</a>&nbsp;
          发表时间: 2008年02月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          2008-2-29 20:38:48 org.apache.catalina.startup.HostConfig checkResources<br />信息: Reloading context [/OrderTicket]<br />INFO - Shutting down Log4J<br />INFO - Set web app root system property: 'webapp.root' = [D:\java\Tomcat 5.5\webapps\OrderTicket\]<br />INFO - Initializing Log4J from [D:\java\Tomcat 5.5\webapps\OrderTicket\WEB-INF\classes\log4j.properties]<br />ERROR - action: null<br />java.lang.NullPointerException<br />	at org.springframework.web.struts.ContextLoaderPlugIn.getServletContext(ContextLoaderPlugIn.java:258)<br />	at org.hj.orderticket.util.StrutsContextLoaderPlugIn.&lt;init>(StrutsContextLoaderPlugIn.java:15)<br /><br />像这样的问题我认为是在struts 的资源文件找不到的原因引起的 空指针异常，从而导致action无法启动造成的，这个问题我是重新设置一下ApplicationResources.propertie而得到解决的，不知是不是我乱碰而碰巧解决的，所以在这和各位高手讨论一下！
          <br/>
          <span style="color:red;">
            <a href="http://shycn.javaeye.com/blog/165956#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 28 Feb 2008 20:44:24 +0800</pubDate>
        <link>http://shycn.javaeye.com/blog/165956</link>
        <guid>http://shycn.javaeye.com/blog/165956</guid>
      </item>
  </channel>
</rss>