﻿<?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-mashiguang</title><link>http://www.blogjava.net/mashiguang/</link><description>小马快跑</description><language>zh-cn</language><lastBuildDate>Tue, 02 Dec 2008 10:49:41 GMT</lastBuildDate><pubDate>Tue, 02 Dec 2008 10:49:41 GMT</pubDate><ttl>60</ttl><item><title>oracel dbms_jobs的使用</title><link>http://www.blogjava.net/mashiguang/archive/2008/07/14/214768.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Mon, 14 Jul 2008 08:56:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2008/07/14/214768.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/214768.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2008/07/14/214768.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/214768.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/214768.html</trackback:ping><description><![CDATA[&nbsp;
<p><span style="font-family: 宋体">最近公司客户反映有些页面运行速度太慢，通过对系统代码的分析，发现排行榜功能是罪魁祸首，因为数据量太大，每次刷新页面都计算一次排行榜，的确耗时费力。</span></p>
<p><span style="font-family: 宋体">其实可以让数据库自己计算排行榜，并把计算结果保存到一个单独的表里去，这个表只用来保存排行榜的数据，数据量很小，然后所有的排行榜查询都去</span>select<span style="font-family: 宋体">这个表。</span></p>
<p><span style="font-family: 宋体">计算排行榜的功能我们可以写成一个存储过程，但是排行榜的数据不是一成不变的，还需要不时的调用这个存储过程才行，</span>oracle<span style="font-family: 宋体">为我们提供了</span>dbms_jobs<span style="font-family: 宋体">。</span></p>
<p>oracel dbms_jobs<span style="font-family: 宋体">包可以提交作业到作业队列中，这个包中还提供其它一些函数管理以前提交的作业，如对作业进行修改、禁止或删除等操作。</span></p>
<p><span style="font-family: 宋体">常用函数：</span></p>
<p>submit()<span style="font-family: 宋体">，提交作业到作业队列。</span></p>
<p>isumbit()<span style="font-family: 宋体">，</span></p>
<p>remove()<span style="font-family: 宋体">，从作业队列中删除作业。</span></p>
<p>change()<span style="font-family: 宋体">，改变已有作业的参数。</span></p>
<p>what()<span style="font-family: 宋体">，改变作业要执行的代码。</span></p>
<p>next_date()<span style="font-family: 宋体">，改变作业下一次执行时间。</span></p>
<p>interval()<span style="font-family: 宋体">，改变作业执行的时间间隔。</span></p>
<p>broken()<span style="font-family: 宋体">，暂停执行作业。</span></p>
<p>run()<span style="font-family: 宋体">，强制执行作业。</span></p>
<p><span style="font-family: 宋体">最常用的</span>submit()<span style="font-family: 宋体">函数：</span></p>
<p>dbms_jobs.submit(</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; job out binary_integer,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; what in varchar2,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; next_date in date default sysdate,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; interval in varchar default null,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; no_parse in boolean default false,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; instance in binary_integer default any_instance,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; force in boolean default false</p>
<p>);</p>
<p>submit<span style="font-family: 宋体">函数参数：</span></p>
<p>job<span style="font-family: 宋体">，作业的作业号，是个输出参数，所以调用</span>submit<span style="font-family: 宋体">函数时，这个参数要指定一个已存在的变量。</span></p>
<p>what<span style="font-family: 宋体">，作业要执行的代码，一般是存储过程。</span></p>
<p>next_date<span style="font-family: 宋体">，下一次作业运行的日期。</span></p>
<p>interval<span style="font-family: 宋体">，<span style="color: red"><span style="font-family: 宋体">作业执行的间隔时间，这个参数默认值是</span>null<span style="font-family: 宋体">，</span></span></span><span style="font-family: 宋体"><span style="color: red">也就是</span></span><span style="color: red">what</span><span style="color: red; font-family: 宋体">指定的代码只在</span><span style="color: red">next_date</span><span style="color: red; font-family: 宋体">这一时间执行一次。</span></p>
<p>no_parse<span style="font-family: 宋体">，默认值是</span>false<span style="font-family: 宋体">，当参数值是</span>false<span style="font-family: 宋体">，提交作业时就对</span>what<span style="font-family: 宋体">指定的代码进行语法分析；当参数值是</span>true<span style="font-family: 宋体">，第一次运行</span>what<span style="font-family: 宋体">指定代码时才进行语法分析。</span></p>
<p>instance<span style="font-family: 宋体">，指明运行作业的数据库实例。</span></p>
<p>force<span style="font-family: 宋体">，如果是</span>true,instance<span style="font-family: 宋体">可以是任何正数；如果是</span>false<span style="font-family: 宋体">，</span>instance<span style="font-family: 宋体">指定的实例必须正在运行。</span></p>
<p><span style="font-family: 宋体">示例：</span></p>
<p>var jobno number;</p>
<p>begin</p>
<p>dbms_job.submit(:jobno,'p_xxx_taxis;',trunc(sysdate)+(18/24),'trunc(sysdate+1,''hh'')');--<span style="font-family: 宋体">每天</span>18<span style="font-family: 宋体">点执行</span></p>
<p>commit;</p>
<p>end;</p>
<p><span style="font-family: 宋体">上面这段话要在</span>&nbsp;<span style="font-family: 宋体">命令窗口</span>&nbsp;<span style="font-family: 宋体">下运行</span>,<span style="font-family: 宋体">如在</span>pl/sql developer<span style="font-family: 宋体">里面的</span>--&gt;<span style="font-family: 宋体">新键</span>--&gt;<span style="font-family: 宋体">命令窗口</span></p>
<p><span style="font-family: 宋体">这样就会在每天的</span>18<span style="font-family: 宋体">点执行存储过程</span>p_xxx_taxis<span style="font-family: 宋体">。在我这里</span>p_xxx_taxis<span style="font-family: 宋体">执行的是计算排行榜的任务。</span></p>
<img src ="http://www.blogjava.net/mashiguang/aggbug/214768.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2008-07-14 16:56 <a href="http://www.blogjava.net/mashiguang/archive/2008/07/14/214768.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jndi调用时,各种应用服务器InitialContext的写法</title><link>http://www.blogjava.net/mashiguang/archive/2008/07/14/214758.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Mon, 14 Jul 2008 08:35:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2008/07/14/214758.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/214758.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2008/07/14/214758.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/214758.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/214758.html</trackback:ping><description><![CDATA[<p><br />
调用ejb时,如果客户端和ejb不在同一个jvm,就要设置InitialContext,不同的应用服务器InitialContext写法也不同.<br />
Context.INITIAL_CONTEXT_FACTORY:指定到目录服务的连接工厂<br />
Context.PROVIDER_URL:目录服务提供者URL</p>
<p>//jboss:<br />
Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"<br />
Context.URL_PKG_PREFIXES, "org.jboss.naming"<br />
Context.PROVIDER_URL, "localhost:1099"</p>
<p>//weblogic:<br />
Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"<br />
Context.PROVIDER_URL, "t3://localhost:7001"</p>
<p>//apusic(金蝶):<br />
Context.INITIAL_CONTEXT_FACTORY, "com.apusic.jndi.InitialContextFactory"<br />
Context.PROVIDER_URL, "rmi://localhost:6888"</p>
<p>//WebSphere:<br />
Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory"<br />
Context.PROVIDER_URL, "iiop://localhost:900"</p>
<p><br />
//J2EE&nbsp; SDK(J2EE&nbsp; RI):<br />
Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.cosnaming.CNCtxFactory"<br />
Context.PROVIDER_URL, "iiop://127.0.0.1:1050"</p>
<p>//SilverStream:<br />
Context.INITIAL_CONTEXT_FACTORY, "com.sssw.rt.jndi.AgInitCtxFactory"<br />
Context.PROVIDER_URL, "sssw://localhost:80"</p>
<p>//OC4J:<br />
Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory"<br />
Context.PROVIDER_URL, "ormi://127.0.0.1/"</p>
<p>//WAS5:<br />
Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory"<br />
Context.PROVIDER_URL, "iiop://localhost:2809"</p>
<p>&nbsp;</p>
<p>常用JNDI服务提供者连接工厂:<br />
Filesystem:&nbsp;&nbsp;Com.sun.jndi.fscontext.FSContextFactory或者com.sun.jndi.fscontext.RefFSContextFactory<br />
LDAPv3:&nbsp;&nbsp;&nbsp;&nbsp;Com.sun.jndi.ldap.LdapCtxFactory<br />
NDS:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.novell.naming.service.nds.NdsInitialContextFactory<br />
NIS:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.sun.jndi.nis.NISCtxFactory<br />
RMI registry:&nbsp;com.sun.jndi.rmi.registry.RegistryContextFactory<br />
IBM LDAP服务提供者:&nbsp;&nbsp;&nbsp;com.ibm.jndi.LDAPCtxFactory<br />
BEA 名字服务提供者:&nbsp;&nbsp;&nbsp;weblogic.jndi.WLInitialContextFactory<br />
JBOSS名字服务提供者:&nbsp;&nbsp;org.jnp.interfaces.NamingContextFactory</p>
<img src ="http://www.blogjava.net/mashiguang/aggbug/214758.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2008-07-14 16:35 <a href="http://www.blogjava.net/mashiguang/archive/2008/07/14/214758.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java自动打包的差异</title><link>http://www.blogjava.net/mashiguang/archive/2007/12/13/167549.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Thu, 13 Dec 2007 09:03:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2007/12/13/167549.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/167549.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2007/12/13/167549.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/167549.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/167549.html</trackback:ping><description><![CDATA[自JDK1.0开始就存在包装器类,但是在JDK5.0之前,必须手工地插入打包和拆包的代码.<br />
JDK5.0中就有了自动打包功能,但在5.0中自动打包时存在一些差异,刚才看《java核心技术第7版》时才发现.<br />
<br />
<span style="color: #ff0000">代码1:<br />
</span>
<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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">Integer&nbsp;a</span><span style="color: #000000">=</span><span style="color: #000000">1000</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Integer&nbsp;b</span><span style="color: #000000">=</span><span style="color: #000000">1000</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />System.out.println(a</span><span style="color: #000000">==</span><span style="color: #000000">b);</span><span style="color: #008000">//</span><span style="color: #008000">false</span></div>
<span style="color: #ff0000">代码2:</span><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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">Integer&nbsp;a</span><span style="color: #000000">=</span><span style="color: #000000">100</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Integer&nbsp;b</span><span style="color: #000000">=</span><span style="color: #000000">100</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />System.out.println(a</span><span style="color: #000000">==</span><span style="color: #000000">b);</span><span style="color: #008000">//</span><span style="color: #008000">true</span></div>
<span style="color: #ff0000">代码3:</span><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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">Integer&nbsp;a</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Integer(</span><span style="color: #000000">100</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Integer&nbsp;b</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Integer(</span><span style="color: #000000">100</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />System.out.println(a</span><span style="color: #000000">==</span><span style="color: #000000">b);</span><span style="color: #008000">//</span><span style="color: #008000">false</span></div>
<br />
<p>第一段代码不成立,而第二段代码成立的原因是:自动打包<br />
<span style="color: #ff0000">自动打包规范要求boolean,byte,char&#8804;127,介于-128&#8594;127之间的short和int被包装到固定的对象中.</span><br />
打包和拆包是编译器认可的，而不是虚拟机，编译器在生成类的字节码时，插入必要的方法调用，虚拟机只是执行这些字节码。</p>
<p>第三段代码不用多说肯定不成立.</p>
<p>&nbsp;</p>
 <img src ="http://www.blogjava.net/mashiguang/aggbug/167549.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2007-12-13 17:03 <a href="http://www.blogjava.net/mashiguang/archive/2007/12/13/167549.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jboss4.0.5到jboss4.2.1因InvokerServlet调用出异常解决办法</title><link>http://www.blogjava.net/mashiguang/archive/2007/11/28/163636.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Wed, 28 Nov 2007 02:46:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2007/11/28/163636.html</guid><description><![CDATA[<p><br />
在应用的web.xml中配置了InvokerServlet.<br />
</p>
<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"  alt="" /><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">InvokerServlet</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;org.apache.catalina.servlets.InvokerServlet<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">debug</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">0</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">load-on-startup</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">-1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">load-on-startup</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">action</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">*.do</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<p><br />
在jboss4.0.5中使用没有问题,但迁移到4.2时,当使用到InvokerServlet就会出异常,解决办法:<br />
在D:\jboss-4.2.1.GA\server\all\deploy\jboss-web.deployer下context.xml文件中的context元素中添加属性:privileged</p>
<p>&lt;Context cookies="true" crossContext="true" privileged="true"&gt;</p>
<p>出现这个问题可能是tomcat5.5和tomcat6的差异,暂未查明,本文只供个人参考,不接受评论.</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/mashiguang/aggbug/163636.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2007-11-28 10:46 <a href="http://www.blogjava.net/mashiguang/archive/2007/11/28/163636.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ant打ear包的详细步骤</title><link>http://www.blogjava.net/mashiguang/archive/2007/11/24/162758.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Fri, 23 Nov 2007 16:44:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2007/11/24/162758.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/162758.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2007/11/24/162758.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/162758.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/162758.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 用一个简单的ejb3.0示例记录ant打ear包的过程源码下载环境:apache-ant-1.6.5jboss-4.2.1.GAjboss-annotations-ejb3.jarjboss-ejb3.jarjboss-ejb3x.jar最后三个包在jboss里有.1,建ejb3.0项目session bean接口:HelloWorldpub...&nbsp;&nbsp;<a href='http://www.blogjava.net/mashiguang/archive/2007/11/24/162758.html'>阅读全文</a><img src ="http://www.blogjava.net/mashiguang/aggbug/162758.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2007-11-24 00:44 <a href="http://www.blogjava.net/mashiguang/archive/2007/11/24/162758.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>apache commons-email</title><link>http://www.blogjava.net/mashiguang/archive/2007/11/01/157533.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Thu, 01 Nov 2007 08:51:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2007/11/01/157533.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/157533.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2007/11/01/157533.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/157533.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/157533.html</trackback:ping><description><![CDATA[<p><strong>使用commons mail时需要的jar包:</strong><br />
1,commons-email-1.1.jar<br />
2,mail.jar<br />
3,activation.jar<br />
(在web应用里只需要commons-email包)</p>
<p><strong>发送简单的文字邮件:</strong></p>
<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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">SimpleEmail&nbsp;email&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SimpleEmail();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setHostName(</span><span style="color: #000000">"</span><span style="color: #000000">smtp.sina.com</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setAuthentication(</span><span style="color: #000000">"</span><span style="color: #000000">username</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">password</span><span style="color: #000000">"</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">在邮件服务商处注册的用户名和密码</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">email.addTo(</span><span style="color: #000000">"</span><span style="color: #000000">mailTo@163.com</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setFrom(</span><span style="color: #000000">"</span><span style="color: #000000">username@sina.com</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">alias</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setCharset(</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">gbk或gb2312,只要支持中文就行</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">email.setSubject(</span><span style="color: #000000">"</span><span style="color: #000000">title</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setMsg(</span><span style="color: #000000">"</span><span style="color: #000000">content</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.send();</span></div>
<br />
<strong>发送带附件的邮件:</strong><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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Create&nbsp;the&nbsp;attachment</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">EmailAttachment&nbsp;attachment&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;EmailAttachment();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />attachment.setPath(</span><span style="color: #000000">"</span><span style="color: #000000">mypictures/john.jpg</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />attachment.setDisposition(EmailAttachment.ATTACHMENT);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />attachment.setDescription(</span><span style="color: #000000">"</span><span style="color: #000000">Picture&nbsp;of&nbsp;John</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />attachment.setName(</span><span style="color: #000000">"</span><span style="color: #000000">John</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Create&nbsp;the&nbsp;email&nbsp;message</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">MultiPartEmail&nbsp;email&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MultiPartEmail();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setHostName(</span><span style="color: #000000">"</span><span style="color: #000000">mail.myserver.com</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setAuthentication(</span><span style="color: #000000">"</span><span style="color: #000000">username</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">password</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.addTo(</span><span style="color: #000000">"</span><span style="color: #000000">jdoe@somewhere.org</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">John&nbsp;Doe</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setFrom(</span><span style="color: #000000">"</span><span style="color: #000000">me@apache.org</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">Me</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setCharset(</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setSubject(</span><span style="color: #000000">"</span><span style="color: #000000">The&nbsp;picture</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setMsg(</span><span style="color: #000000">"</span><span style="color: #000000">Here&nbsp;is&nbsp;the&nbsp;picture&nbsp;you&nbsp;wanted</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;add&nbsp;the&nbsp;attachment</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">email.attach(attachment);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;send&nbsp;the&nbsp;email</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">email.send();</span></div>
<br />
<p>创建多个EmailAttachment对象,并调用MultiPartEmail.attach();就可以发送多个附件.</p>
<p><strong>发送HTML格式的邮件:</strong></p>
<p>发送html格式的邮件和简单邮件的区别就在创建HtmlEmail对象<br />
并用email.setHtmlMsg(String)或email.setMsg(String)把含有html标签的字符串赋给email对象.<br />
HtmlEmail对象还有一个setTextMsg(String)方法,这个方法参数里的html标签会被当做普通字符处理,不会被解析成html元素.<br />
更详细内容可以看<a href="http://commons.apache.org/email/userguide.html">apache commons-email的用户指南</a>.</p>
<img src ="http://www.blogjava.net/mashiguang/aggbug/157533.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2007-11-01 16:51 <a href="http://www.blogjava.net/mashiguang/archive/2007/11/01/157533.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>&lt;转&gt;,防止刷新/后退引起的重复提交问题的Java Token代码，非Struts</title><link>http://www.blogjava.net/mashiguang/archive/2007/08/21/138324.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Tue, 21 Aug 2007 03:45:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2007/08/21/138324.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/138324.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2007/08/21/138324.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/138324.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/138324.html</trackback:ping><description><![CDATA[<p>贴子转自<a href="http://hi.baidu.com/bobylou">http://hi.baidu.com/bobylou</a>，转之前并没有验证文章里的方法是不是有效，估计原作者把它放到blog之前应该做过测试了吧。<br><br></p>
<p><strong>Struts</strong>本身有一套完善的<strong>防止重复提交表单</strong>的<strong>Token</strong>(<strong>令牌</strong>)机制，但笔者目前的项目自写的framework没有用到Struts，故也得自写防止用户因为后退或者刷新来重复提交表单内容的Token机制。不难，容易实现。</p>
<p>实现原理：一致性。jsp生成表单时，在表单中插入一个隐藏&lt;input&gt;字段，该字段就是保存在页面端的token字符串，同时把该字符串存入session中。等到用户提交表单时，会一并提交该隐藏的token字符串。在服务器端，查看下是否在session中含有与该token字符串相等的字符串。如果有，那么表明是第一次提交该表单，然后删除存放于session端的token字符串，再做正常业务逻辑流程；如果没有，那么表示该表单被重复提交，做非正常流程处理，可以警告提示也可以什么也不做。</p>
<p>看代码。</p>
<p>首先是<strong><font color=#ff0000>Token主类</font></strong>。类很简单，而且主要方法都给doc注释了</p>
<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 id=Codehighlighter1_0_109_Open_Image onclick="this.style.display='none'; Codehighlighter1_0_109_Open_Text.style.display='none'; Codehighlighter1_0_109_Closed_Image.style.display='inline'; Codehighlighter1_0_109_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_0_109_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_109_Closed_Text.style.display='none'; Codehighlighter1_0_109_Open_Image.style.display='inline'; Codehighlighter1_0_109_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span id=Codehighlighter1_0_109_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">/**/</span><span id=Codehighlighter1_0_109_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>*&nbsp;blog:&nbsp;</span><span style="COLOR: #008000; TEXT-DECORATION: underline">http://hi.baidu.com/bobylou</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>*&nbsp;$Revision:&nbsp;1.1&nbsp;$<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>*&nbsp;$Date:&nbsp;2007/07/18&nbsp;10:02:55&nbsp;$<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>*&nbsp;$Author:&nbsp;bobrow$<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #008000">*/</span></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></span><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000">&nbsp;com.paizuo.framework.util;<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></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.util.ArrayList;<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></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;javax.servlet.http.HttpSession;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_236_2234_Open_Image onclick="this.style.display='none'; Codehighlighter1_236_2234_Open_Text.style.display='none'; Codehighlighter1_236_2234_Closed_Image.style.display='inline'; Codehighlighter1_236_2234_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_236_2234_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_236_2234_Closed_Text.style.display='none'; Codehighlighter1_236_2234_Open_Image.style.display='inline'; Codehighlighter1_236_2234_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Token&nbsp;</span><span id=Codehighlighter1_236_2234_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_236_2234_Open_Text><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>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000">&nbsp;String&nbsp;TOKEN_LIST_NAME&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">tokenList</span><span style="COLOR: #000000">"</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>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000">&nbsp;String&nbsp;TOKEN_STRING_NAME&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">token</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_427_714_Open_Image onclick="this.style.display='none'; Codehighlighter1_427_714_Open_Text.style.display='none'; Codehighlighter1_427_714_Closed_Image.style.display='inline'; Codehighlighter1_427_714_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_427_714_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_427_714_Closed_Text.style.display='none'; Codehighlighter1_427_714_Open_Image.style.display='inline'; Codehighlighter1_427_714_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;ArrayList&nbsp;getTokenList(HttpSession&nbsp;session)&nbsp;</span><span id=Codehighlighter1_427_714_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_427_714_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;Object&nbsp;obj&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;session.getAttribute(TOKEN_LIST_NAME);<br><img id=Codehighlighter1_512_555_Open_Image onclick="this.style.display='none'; Codehighlighter1_512_555_Open_Text.style.display='none'; Codehighlighter1_512_555_Closed_Image.style.display='inline'; Codehighlighter1_512_555_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_512_555_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_512_555_Closed_Text.style.display='none'; Codehighlighter1_512_555_Open_Image.style.display='inline'; Codehighlighter1_512_555_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(obj&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)&nbsp;</span><span id=Codehighlighter1_512_555_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_512_555_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;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;(ArrayList)&nbsp;obj;<br><img id=Codehighlighter1_562_708_Open_Image onclick="this.style.display='none'; Codehighlighter1_562_708_Open_Text.style.display='none'; Codehighlighter1_562_708_Closed_Image.style.display='inline'; Codehighlighter1_562_708_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_562_708_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_562_708_Closed_Text.style.display='none'; Codehighlighter1_562_708_Open_Image.style.display='inline'; Codehighlighter1_562_708_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_562_708_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_562_708_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;ArrayList&nbsp;tokenList&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ArrayList();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute(TOKEN_LIST_NAME,&nbsp;tokenList);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;tokenList;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&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 id=Codehighlighter1_795_942_Open_Image onclick="this.style.display='none'; Codehighlighter1_795_942_Open_Text.style.display='none'; Codehighlighter1_795_942_Closed_Image.style.display='inline'; Codehighlighter1_795_942_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_795_942_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_795_942_Closed_Text.style.display='none'; Codehighlighter1_795_942_Open_Image.style.display='inline'; Codehighlighter1_795_942_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;saveTokenString(String&nbsp;tokenStr,&nbsp;HttpSession&nbsp;session)&nbsp;</span><span id=Codehighlighter1_795_942_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_795_942_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;ArrayList&nbsp;tokenList&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;getTokenList(session);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tokenList.add(tokenStr);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute(TOKEN_LIST_NAME,&nbsp;tokenList);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;<br><img id=Codehighlighter1_995_1064_Open_Image onclick="this.style.display='none'; Codehighlighter1_995_1064_Open_Text.style.display='none'; Codehighlighter1_995_1064_Closed_Image.style.display='inline'; Codehighlighter1_995_1064_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_995_1064_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_995_1064_Closed_Text.style.display='none'; Codehighlighter1_995_1064_Open_Image.style.display='inline'; Codehighlighter1_995_1064_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;String&nbsp;generateTokenString()</span><span id=Codehighlighter1_995_1064_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_995_1064_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;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Long(System.currentTimeMillis()).toString();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&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 id=Codehighlighter1_1071_1331_Open_Image onclick="this.style.display='none'; Codehighlighter1_1071_1331_Open_Text.style.display='none'; Codehighlighter1_1071_1331_Closed_Image.style.display='inline'; Codehighlighter1_1071_1331_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1071_1331_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1071_1331_Closed_Text.style.display='none'; Codehighlighter1_1071_1331_Open_Image.style.display='inline'; Codehighlighter1_1071_1331_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1071_1331_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">/**&nbsp;*/</span><span id=Codehighlighter1_1071_1331_Open_Text><span style="COLOR: #008000">/**</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Generate&nbsp;a&nbsp;token&nbsp;string,&nbsp;and&nbsp;save&nbsp;the&nbsp;string&nbsp;in&nbsp;session,&nbsp;then&nbsp;return&nbsp;the&nbsp;token&nbsp;string.<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="COLOR: #808080">@param</span><span style="COLOR: #008000">&nbsp;HttpSession<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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="COLOR: #808080">@return</span><span style="COLOR: #008000">&nbsp;a&nbsp;token&nbsp;string&nbsp;used&nbsp;for&nbsp;enforcing&nbsp;a&nbsp;single&nbsp;request&nbsp;for&nbsp;a&nbsp;particular&nbsp;transaction.<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1394_1515_Open_Image onclick="this.style.display='none'; Codehighlighter1_1394_1515_Open_Text.style.display='none'; Codehighlighter1_1394_1515_Closed_Image.style.display='inline'; Codehighlighter1_1394_1515_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1394_1515_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1394_1515_Closed_Text.style.display='none'; Codehighlighter1_1394_1515_Open_Image.style.display='inline'; Codehighlighter1_1394_1515_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;String&nbsp;getTokenString(HttpSession&nbsp;session)&nbsp;</span><span id=Codehighlighter1_1394_1515_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_1394_1515_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;String&nbsp;tokenStr&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;generateTokenString();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;saveTokenString(tokenStr,&nbsp;session);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;tokenStr;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&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 id=Codehighlighter1_1522_1872_Open_Image onclick="this.style.display='none'; Codehighlighter1_1522_1872_Open_Text.style.display='none'; Codehighlighter1_1522_1872_Closed_Image.style.display='inline'; Codehighlighter1_1522_1872_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1522_1872_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1522_1872_Closed_Text.style.display='none'; Codehighlighter1_1522_1872_Open_Image.style.display='inline'; Codehighlighter1_1522_1872_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1522_1872_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">/**&nbsp;*/</span><span id=Codehighlighter1_1522_1872_Open_Text><span style="COLOR: #008000">/**</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;check&nbsp;whether&nbsp;token&nbsp;string&nbsp;is&nbsp;valid.&nbsp;if&nbsp;session&nbsp;contains&nbsp;the&nbsp;token&nbsp;string,&nbsp;return&nbsp;true.&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;otherwise,&nbsp;return&nbsp;false.<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="COLOR: #808080">@param</span><span style="COLOR: #008000">&nbsp;String<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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tokenStr<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="COLOR: #808080">@param</span><span style="COLOR: #008000">&nbsp;HttpSession<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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="COLOR: #808080">@return</span><span style="COLOR: #008000">&nbsp;true:&nbsp;session&nbsp;contains&nbsp;tokenStr;&nbsp;false:&nbsp;session&nbsp;is&nbsp;null&nbsp;or&nbsp;tokenStr&nbsp;is&nbsp;id&nbsp;not&nbsp;in&nbsp;session<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1957_2232_Open_Image onclick="this.style.display='none'; Codehighlighter1_1957_2232_Open_Text.style.display='none'; Codehighlighter1_1957_2232_Closed_Image.style.display='inline'; Codehighlighter1_1957_2232_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1957_2232_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1957_2232_Closed_Text.style.display='none'; Codehighlighter1_1957_2232_Open_Image.style.display='inline'; Codehighlighter1_1957_2232_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">boolean</span><span style="COLOR: #000000">&nbsp;isTokenStringValid(String&nbsp;tokenStr,&nbsp;HttpSession&nbsp;session)&nbsp;</span><span id=Codehighlighter1_1957_2232_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_1957_2232_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;</span><span style="COLOR: #0000ff">boolean</span><span style="COLOR: #000000">&nbsp;valid&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_2015_2205_Open_Image onclick="this.style.display='none'; Codehighlighter1_2015_2205_Open_Text.style.display='none'; Codehighlighter1_2015_2205_Closed_Image.style.display='inline'; Codehighlighter1_2015_2205_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2015_2205_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2015_2205_Closed_Text.style.display='none'; Codehighlighter1_2015_2205_Open_Image.style.display='inline'; Codehighlighter1_2015_2205_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(session&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)</span><span id=Codehighlighter1_2015_2205_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_2015_2205_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;ArrayList&nbsp;tokenList&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;getTokenList(session);<br><img id=Codehighlighter1_2116_2196_Open_Image onclick="this.style.display='none'; Codehighlighter1_2116_2196_Open_Text.style.display='none'; Codehighlighter1_2116_2196_Closed_Image.style.display='inline'; Codehighlighter1_2116_2196_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2116_2196_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2116_2196_Closed_Text.style.display='none'; Codehighlighter1_2116_2196_Open_Image.style.display='inline'; Codehighlighter1_2116_2196_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(tokenList.contains(tokenStr))&nbsp;</span><span id=Codehighlighter1_2116_2196_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_2116_2196_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;&nbsp;valid&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">true</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tokenList.remove(tokenStr);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;valid;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></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></span></div>
<p><strong><font color=#ff0000>怎么使用？</font></strong></p>
<p><strong>在jsp页面端。</strong></p>
<p>首先import该类：</p>
<p>&lt;%@ page import="com.paizuo.framework.util.Token" %&gt;</p>
<p>表单包含隐藏的token字符串:</p>
<p>&nbsp;</p>
<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: #0000ff">&lt;</span><span style="COLOR: #800000">form</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><img src="http://www.blogjava.net/Images/dot.gif"><img src="http://www.blogjava.net/Images/dot.gif"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">input&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">="hidden"</span><span style="COLOR: #ff0000">&nbsp;name</span><span style="COLOR: #0000ff">="&lt;%=Token.TOKEN_STRING_NAME&nbsp;%&gt;"</span><span style="COLOR: #ff0000">&nbsp;value</span><span style="COLOR: #0000ff">="&lt;%=Token.getTokenString(session)&nbsp;%&gt;"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><img src="http://www.blogjava.net/Images/dot.gif"><img src="http://www.blogjava.net/Images/dot.gif"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">form</span><span style="COLOR: #0000ff">&gt;</span></div>
<p>&nbsp;</p>
<p><strong>在Server端action中进行检验。</strong></p>
<p>&nbsp;</p>
<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 id=Codehighlighter1_97_110_Open_Image onclick="this.style.display='none'; Codehighlighter1_97_110_Open_Text.style.display='none'; Codehighlighter1_97_110_Closed_Image.style.display='inline'; Codehighlighter1_97_110_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_97_110_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_97_110_Closed_Text.style.display='none'; Codehighlighter1_97_110_Open_Image.style.display='inline'; Codehighlighter1_97_110_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(Token.isTokenStringValid(request.getParameter(Token.TOKEN_STRING_NAME),&nbsp;request.getSession()))</span><span id=Codehighlighter1_97_110_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_97_110_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">进行正常业务流程</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_116_132_Open_Image onclick="this.style.display='none'; Codehighlighter1_116_132_Open_Text.style.display='none'; Codehighlighter1_116_132_Closed_Image.style.display='inline'; Codehighlighter1_116_132_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_116_132_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_116_132_Closed_Text.style.display='none'; Codehighlighter1_116_132_Open_Image.style.display='inline'; Codehighlighter1_116_132_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">else</span><span id=Codehighlighter1_116_132_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_116_132_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">进行防重复提交处理流程</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<p>完毕。</p>
<img src ="http://www.blogjava.net/mashiguang/aggbug/138324.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2007-08-21 11:45 <a href="http://www.blogjava.net/mashiguang/archive/2007/08/21/138324.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql相关</title><link>http://www.blogjava.net/mashiguang/archive/2007/07/07/128174.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Fri, 06 Jul 2007 17:03:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2007/07/07/128174.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/128174.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2007/07/07/128174.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/128174.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/128174.html</trackback:ping><description><![CDATA[<p><strong>1.创建mysql用户并授权:GRANT</strong></p>
语法: <br>GRANT <em>privileges</em> (<em>columns</em>)<br>ON <em>what</em><br>TO <em>username</em> IDENTIFIED BY "<em>password</em>"<br>WITH GRANT OPTION<br><br><em>privileges </em>:授予用户的权限<br><em>columns</em> :权限运用的列,可选<br><em>what</em> :权限运用的对象,可以是数据库,表,列<br><em>username</em> :权限授予的用户<br><em>password</em> :密码<br>WITH GRANT OPTION子句是可选的。 <br><br>先来创建一个用户plmm(漂亮mm),给她最大的权限,可以对所有的表做任何操作,密码是"1234",但是她只能从本地登陆:
<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: #0000ff">grant</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">all</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">on</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">*</span><span style="COLOR: #000000">.</span><span style="COLOR: #808080">*</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">to</span><span style="COLOR: #000000">&nbsp;plmm</span><span style="COLOR: #008000">@localhost</span><span style="COLOR: #000000">&nbsp;identified&nbsp;</span><span style="COLOR: #0000ff">by</span><span style="COLOR: #000000">&nbsp;"</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1234</span><span style="COLOR: #000000">"</span></div>
再来创建一个用户klmm(恐龙mm),我们只给她查看test数据库里的table1表的权限,而且只能在192.168.0.%登陆,这里的"%"是个通配符,如果要使用通配符的话一定要用引号括起来.
<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: #0000ff">grant</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">select</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">on</span><span style="COLOR: #000000">&nbsp;test.table1<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">to</span><span style="COLOR: #000000">&nbsp;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#107;&#108;&#109;&#109;&#64;&#39;&#49;&#57;&#50;&#46;&#49;&#54;&#56;&#46;&#48;&#46;&#37;&#39;">klmm</span><span style="COLOR: #008000">@'192</span><span style="COLOR: #000000">.</span><span style="FONT-WEIGHT: bold; COLOR: #800000">168.0</span><span style="COLOR: #000000">.</span><span style="FONT-WEIGHT: bold; COLOR: #800000">%</span><span style="COLOR: #000000">'</a>&nbsp;identified&nbsp;</span><span style="COLOR: #0000ff">by</span><span style="COLOR: #000000">&nbsp;"</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1234</span><span style="COLOR: #000000">"</span></div>
<br>下面表中列出<em>privileges&nbsp; </em>除了上面用到的all和select还有哪些值可以选择<br>
<table style="WIDTH: 509px; BORDER-COLLAPSE: collapse; HEIGHT: 416px" cellSpacing=0 cellPadding=3 border=1>
    <tbody>
        <tr>
            <td>权限指定符</td>
            <td>权限允许的操作</td>
        </tr>
        <tr>
            <td>ALTER</td>
            <td>修改表和索引</td>
        </tr>
        <tr>
            <td>CREATE</td>
            <td>创建数据库和表</td>
        </tr>
        <tr>
            <td>DELETE</td>
            <td>删除表中已有的记录</td>
        </tr>
        <tr>
            <td>DROP</td>
            <td>抛弃（删除）数据库和表</td>
        </tr>
        <tr>
            <td>INDEX</td>
            <td>创建或抛弃索引</td>
        </tr>
        <tr>
            <td>INSERT</td>
            <td>向表中插入新行</td>
        </tr>
        <tr>
            <td>REFERENCE</td>
            <td>未用</td>
        </tr>
        <tr>
            <td>SELECT</td>
            <td>检索表中的记录</td>
        </tr>
        <tr>
            <td>UPDATE</td>
            <td>修改现存表记录</td>
        </tr>
        <tr>
            <td>FILE</td>
            <td>读或写服务器上的文件</td>
        </tr>
        <tr>
            <td>PROCESS</td>
            <td>查看服务器中执行的线程信息或杀死线程</td>
        </tr>
        <tr>
            <td>RELOAD</td>
            <td>重载授权表或清空日志、主机缓存或表缓存。</td>
        </tr>
        <tr>
            <td>SHUTDOWN</td>
            <td>关闭服务器</td>
        </tr>
        <tr>
            <td>ALL</td>
            <td>所有；ALL PRIVILEGES同义词</td>
        </tr>
        <tr>
            <td>USAGE</td>
            <td>特殊的&#8220;无权限&#8221;权限</td>
        </tr>
    </tbody>
</table>
<br><strong>2.撤消用户权限:revoke<br></strong>上面我们创建plmm用户时给了她所有的权限,现在要撤消她更新(update)数据库的权限
<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: #0000ff">revoke</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">update</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">ON</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">*</span><span style="COLOR: #000000">.</span><span style="COLOR: #808080">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">FROM</span><span style="COLOR: #000000">&nbsp;plmm</span><span style="COLOR: #008000">@localhost</span></div>
<img src ="http://www.blogjava.net/mashiguang/aggbug/128174.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2007-07-07 01:03 <a href="http://www.blogjava.net/mashiguang/archive/2007/07/07/128174.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>servlet使用技巧,给臃肿的web.xml瘦身.</title><link>http://www.blogjava.net/mashiguang/archive/2007/07/06/128653.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Fri, 06 Jul 2007 11:17:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2007/07/06/128653.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/128653.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2007/07/06/128653.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/128653.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/128653.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以往每添加一个servlet就要在web.xml里添加&lt;servlet&gt;&lt;servlet-mapping&gt;,随着项目的进度,servlet数目越来越可观.<br>web.xml里也密密麻麻的排满了&lt;servlet&gt;&lt;servlet-mapping&gt;这些食之无味弃之崩溃的东西,有一种方法可以改善这种境况.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在web.xml里添加如下的配置:
<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;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">InvokerServlet</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.apache.catalina.servlets.InvokerServlet<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">init-param</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">param-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">debug</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">param-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">param-value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">0</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">param-value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">init-param</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">load-on-startup</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">-1</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">load-on-startup</span><span style="COLOR: #0000ff">&gt;</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">&lt;/</span><span style="COLOR: #800000">servlet</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet-mapping</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">InvokerServlet</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">url-pattern</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/servlet/*</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">url-pattern</span><span style="COLOR: #0000ff">&gt;</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">&lt;/</span><span style="COLOR: #800000">servlet-mapping</span><span style="COLOR: #0000ff">&gt;</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ok,现在web.xml里保留这一个servlet配置就可以满足所有的servlet调用了,比如调用UserManagerService这个servlet,在页面表单里这样写:
<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: #0000ff">&lt;</span><span style="COLOR: #800000">form&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="f"</span><span style="COLOR: #ff0000">&nbsp;method</span><span style="COLOR: #0000ff">="post"</span><span style="COLOR: #ff0000">&nbsp;action</span><span style="COLOR: #0000ff">="/servlet/com.mashiguang.servlet.UserManagerService"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">input</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">submit</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">form</span><span style="COLOR: #0000ff">&gt;</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注意表单action "/servlet/"后面是这个servlet class的全名.
<img src ="http://www.blogjava.net/mashiguang/aggbug/128653.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2007-07-06 19:17 <a href="http://www.blogjava.net/mashiguang/archive/2007/07/06/128653.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat配置</title><link>http://www.blogjava.net/mashiguang/archive/2007/07/04/128166.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Wed, 04 Jul 2007 10:29:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2007/07/04/128166.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/128166.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2007/07/04/128166.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/128166.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/128166.html</trackback:ping><description><![CDATA[<p><strong>1.配置tomcat可以浏览web应用目录:</strong><br>&nbsp;&nbsp;&nbsp;修改<em>%tomcat_home%/conf/web.xml</em>,listings参数值为true代表可以浏览web应用的目录.</p>
<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: #0000ff">&lt;</span><span style="COLOR: #800000">init-param</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">param-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">listings</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">param-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">param-value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">true</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">param-value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">init-param</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<img src ="http://www.blogjava.net/mashiguang/aggbug/128166.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2007-07-04 18:29 <a href="http://www.blogjava.net/mashiguang/archive/2007/07/04/128166.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>