﻿<?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-log4deng-文章分类-J2EE</title><link>http://www.blogjava.net/qiyadeng/category/3460.html</link><description>if(log.itWillForget()){
&lt;br&gt;&amp;nbsp;&amp;nbsp;
     log.blog("log4deng!"); 
&lt;br&gt;
}&lt;br&gt;
else if(log.isYourExperience){
&lt;br&gt;&amp;nbsp;&amp;nbsp;
     log.blog("log4deng!"); 
&lt;br&gt;
}&lt;br&gt;
......</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 00:39:16 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 00:39:16 GMT</pubDate><ttl>60</ttl><item><title>Struts Checkbox radio怎么进行动态的选择</title><link>http://www.blogjava.net/qiyadeng/articles/23776.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Wed, 14 Dec 2005 02:19:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/23776.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/23776.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/23776.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/23776.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/23776.html</trackback:ping><description><![CDATA[<P>使用Struts的朋友，可能经常发现使用页面的一些标签的时候觉得不够得心应手。比如我们要设计一个用户修改得信息的界面，需要调出一些用户的信息。不幸的是，当页面中含有Checkbox或是radio的时候有没有想过怎么处理？以前我也为这个苦恼，不少论坛上的人也发帖子问这个问题。最近看到了两篇文章，可以解决这个问题。来自IBM developer:<BR><A href="http://www-128.ibm.com/developerworks/java/library/j-sr3.html">http://www-128.ibm.com/developerworks/java/library/j-sr3.html</A><BR><A href="http://www-128.ibm.com/developerworks/java/library/j-sr4.html">http://www-128.ibm.com/developerworks/java/library/j-sr4.html</A><BR><IMG height=409 alt=multibox.bmp src="http://www.blogjava.net/images/blogjava_net/qiyadeng/multibox.bmp" width=429 border=0><IMG height=409 alt=radio.bmp src="http://www.blogjava.net/images/blogjava_net/qiyadeng/radio.bmp" width=429 border=0><BR>先调简单的说起吧，我们来实现动态的checkbox:<BR>1、Form的设计：我们这个例子有个String[] mountains，这个变量数组中包含很多的山的名字;还有个数组String[] selectedMountains就是默认选中的一些山，像下面这样很简单。</P><PRE class=code><P>public class MultiboxForm extends ActionForm {<BR>&nbsp;<BR>&nbsp;private String[] selectedMountains = {"Everest","K2","Lhotse","Cho Oyu"};<BR>&nbsp;private String[] mountains ={"Everest","K2","Kangchenjunga","Lhotse","Makalu","Kangchenjunga South","Lhotse Middle","Kangchenjunga West","Lhotse Shar","Cho Oyu"};</P>
<P>&nbsp;public String[] getMountains() {<BR>&nbsp;&nbsp;return mountains;<BR>&nbsp;}<BR>&nbsp;public void setMountains(String[] mountains) {<BR>&nbsp;&nbsp;this.mountains = mountains;<BR>&nbsp;}<BR>&nbsp;public String[] getSelectedMountains() {<BR>&nbsp;&nbsp;return selectedMountains;<BR>&nbsp;}<BR>&nbsp;public void setSelectedMountains(String[] selectedMountains) {<BR>&nbsp;&nbsp;this.selectedMountains = selectedMountains;<BR>&nbsp;}</P>
<P></P></PRE>2、Action的设计：这个就更简单了，一句话，由控制器切换到视图。<PRE class=code><BR>&nbsp;return mapping.findForward("success");<BR></PRE>3、JSP的设计：<PRE class=code><BR>&nbsp;&nbsp;&lt;html:form action="/multibox" name="multiboxForm" type="qiya.deng.struts.form.MultiboxForm"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;logic:iterate name="multiboxForm" property="mountains" id="mountain"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:multibox property="selectedMountains"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:write name="mountain"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/html:multibox&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:write name="mountain"/&gt;&lt;br/&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/logic:iterate&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;br/&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;html:submit/&gt;&lt;html:cancel/&gt;<BR>&nbsp;&nbsp;&lt;/html:form&gt;<BR></PRE>这个相对比较复杂，也是比较中要的。&lt;logic:iterate/&gt;是迭代MultiboxForm中的mountians,<BR>&lt;html:multibox property="selectedMountains"&gt;<BR>&nbsp;&lt;bean:write name="mountain"/&gt;<BR>&lt;/html:multibox&gt;<BR>这个标签的作用就是selecteDMountains的值和迭代的mountain值一致的时候就会选中。 
<P></P>
<P>接下来说Radio，其实Form和Action部分都差不多，只是JSP页面有点不一样，Radio里面甚至牵涉到了JavaScript。<BR>1.From的设计：<PRE class=code><BR>&nbsp;private String selectedMountain = "Kangchenjunga West";<BR>&nbsp;private String[] mountains ={"Everest","K2","Kangchenjunga","Lhotse","Makalu","Kangchenjunga South","Lhotse Middle","Kangchenjunga West","Lhotse Shar","Cho Oyu"};<BR>&nbsp;<BR>&nbsp;public String[] getMountains() {<BR>&nbsp;&nbsp;return mountains;<BR>&nbsp;}<BR>&nbsp;public void setMountains(String[] mountains) {<BR>&nbsp;&nbsp;this.mountains = mountains;<BR>&nbsp;}<BR>&nbsp;public String getSelectedMountain() {<BR>&nbsp;&nbsp;return selectedMountain;<BR>&nbsp;}<BR>&nbsp;public void setSelectedMountain(String selectedMountain) {<BR>&nbsp;&nbsp;this.selectedMountain = selectedMountain;<BR>&nbsp;}<BR></PRE>2.Action同上一样，切换到JSP页面去。&nbsp;<BR>3.重点部分JSP:<PRE class=code><BR>&nbsp;&nbsp;&lt;html:form action="/radio" name="radioForm" type="qiya.deng.struts.form.RadioForm"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;bean:define id="selectedRadio" property="selectedMountain" name="radioForm"&gt;&lt;/bean:define&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;logic:iterate id="mountain" property="mountains" name="radioForm"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:define id="mountainValue"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:write name="mountain"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean:define&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:radio property="selectedMountain" value="&lt;%=mountainValue%&gt;" styleId="&lt;%=mountainValue%&gt;"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:write name="mountain"/&gt;&lt;br/&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/logic:iterate&gt;&lt;br/&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;html:submit/&gt;&lt;html:cancel/&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;script type="text/javascript"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;!--<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;var selectedRadio = <BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;document.forms["radioForm"].elements["&lt;bean:write name="selectedRadio"/&gt;"];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;selectedRadio.checked=true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;--&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;/script&gt;<BR>&nbsp;&nbsp;&lt;/html:form&gt;<P></P></PRE>
<P><BR>"&lt;bean:define/&gt;"定义了一个PageContext作用域的属性selectedRadio，下面的JavaScript的作用就是根据这个属性找到应该选中的Radio。其他的地方和上面那个很相似的。如果还是不太理解先运行，看看生成的HTML代码。<BR></P><img src ="http://www.blogjava.net/qiyadeng/aggbug/23776.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-12-14 10:19 <a href="http://www.blogjava.net/qiyadeng/articles/23776.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tab tag 与Struts整合</title><link>http://www.blogjava.net/qiyadeng/articles/22843.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Wed, 07 Dec 2005 04:45:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/22843.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/22843.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/22843.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/22843.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/22843.html</trackback:ping><description><![CDATA[<P>发现一个比较酷的Tab标签，这个标签很小，但是基本上能适用于一般的应用。它的全称是<STRONG>The Ditchnet JSP Tabs Taglib </STRONG>（）<A href="http://209.61.157.8:8080/taglibs/">http://209.61.157.8:8080/taglibs/</A>，可以看出是JSP的标签。但是我们现在很多项目都是基于Struts，所以需要简单的来个整合。<BR><BR>在它的网站上有比较详细的安装说明，并且配有实例。需要的读者可以仔细查看，这里就不介绍了。<BR>在使用的JSP页面中加入<pre class="code"><BR>&lt;head&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;tab:tabConfig/&gt;<BR>&lt;/head&gt;<BR></pre>这是导入一些CSS和JavaScript.<BR>然后基本上就是两套标签：<BR>&lt;tab:tabContainer&gt;<BR>&lt;tab:tabPane&gt;<BR>从命名我们就很容易看出来是什么作用&lt;tab:tabContainer&gt;是相当于容器一样的东西可以包含很多的&lt;tab:tabPane&gt;,而&lt;tab:tabPane&gt;就是我们要的那种Tab的效果的面板。<pre class="code"><BR>&nbsp;&nbsp;&lt;tab:tabContainer id="foo-bar-container"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tab:tabPane id="foo" tabTitle="姓名"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:errors/&gt;&lt;br/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:message key="tab_textfield_name"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:text property="userName"&gt;&lt;/html:text&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:submit&gt;&lt;bean:message key="tab_submit_label"/&gt;&lt;/html:submit&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/tab:tabPane&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;tab:tabPane id="bar" tabTitle="密码"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:errors/&gt;&lt;br/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:message key="tab_textfield_password"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:password property="password"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:message key="tab_textfield_repassword"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:password property="rePassword"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:submit&gt;&lt;bean:message key="tab_submit_label"/&gt;&lt;/html:submit&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/tab:tabPane&gt;<BR>&nbsp;&nbsp;&lt;/tab:tabContainer&gt;<BR></pre>注意上面的两个标签都有id这要是唯一的，而且是整个应用唯一。<BR><BR>上面的代码就是一个表单，含有userName,password,rePassword三个文本域。但是需要一个Form,有没有考虑过Form放在什么位置呢？经过试验我发现要将Form 放到&lt;tab:tabContainer&gt;的标签之外。这样就像处理一个普通的Struts Form一样了。如果你需要每个Tab也可以是个Form，这样也没有什么问题。<BR><BR>完整的JSP代码如下:<pre class="code"><BR><BR>&lt;%@ page language="java" pageEncoding="UTF-8"%&gt;<BR>&lt;%@ taglib prefix="tab" uri="<A href="http://ditchnet.org/jsp-tabs-taglib">http://ditchnet.org/jsp-tabs-taglib</A>" %&gt;<BR>&lt;%@ taglib prefix="html" uri="<A href="http://jakarta.apache.org/struts/tags-html">http://jakarta.apache.org/struts/tags-html</A>" %&gt;<BR>&lt;%@ taglib prefix="bean" uri="<A href="http://jakarta.apache.org/struts/tags-bean">http://jakarta.apache.org/struts/tags-bean</A>" %&gt;<BR>&lt;html&gt;<BR>&nbsp;&lt;head&gt;<BR>&nbsp;&nbsp;&lt;tab:tabConfig/&gt;<BR>&nbsp;&lt;/head&gt;<BR>&nbsp;&nbsp;&lt;body&gt;<BR>&nbsp;&lt;html:form action="/saveAll"&gt;<BR>&nbsp;&nbsp;&lt;tab:tabContainer id="foo-bar-container"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;tab:tabPane id="foo" tabTitle="姓名"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:errors/&gt;&lt;br/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:message key="tab_textfield_name"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:text property="userName"&gt;&lt;/html:text&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:submit&gt;&lt;bean:message key="tab_submit_label"/&gt;&lt;/html:submit&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/tab:tabPane&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;tab:tabPane id="bar" tabTitle="密码"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:errors/&gt;&lt;br/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:message key="tab_textfield_password"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:password property="password"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:message key="tab_textfield_repassword"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:password property="rePassword"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:submit&gt;&lt;bean:message key="tab_submit_label"/&gt;&lt;/html:submit&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tab:tabPane&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/tab:tabContainer&gt;<BR>&nbsp;&lt;/html:form&gt;&nbsp;<BR>&nbsp;&lt;/body&gt;<BR>&lt;/html&gt;<BR></pre>效果如图：<BR><IMG height=315 alt=Snap2.bmp src="http://www.blogjava.net/images/blogjava_net/qiyadeng/j2ee/Snap2.bmp" width=385 border=0></P><img src ="http://www.blogjava.net/qiyadeng/aggbug/22843.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-12-07 12:45 <a href="http://www.blogjava.net/qiyadeng/articles/22843.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts之自定义Validator</title><link>http://www.blogjava.net/qiyadeng/articles/17571.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Mon, 31 Oct 2005 10:00:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/17571.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/17571.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/17571.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/17571.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/17571.html</trackback:ping><description><![CDATA[在使用Struts的时候，验证是使用Validator来做，但是有时候需要有自己的验证规则,幸运的是我们可以方便地进行扩展。<br>
比如我们想定义一个规则来判定两次输入的密码是相等的。我们需要这样做，首先我们需要一个类，象这样子 ：<br>
<br>
<pre class="code">
package com.motel168.util;<br>
<br>
import java.text.SimpleDateFormat;<br>
import java.util.Date;<br>
<br>
import javax.servlet.http.HttpServletRequest;<br>
<br>
import org.apache.commons.validator.Field;<br>
import org.apache.commons.validator.GenericValidator;<br>
import org.apache.commons.validator.ValidatorAction;<br>
import org.apache.commons.validator.ValidatorUtil;<br>
import org.apache.struts.action.ActionErrors;<br>
import org.apache.struts.validator.Resources;<br>
<br>
public class MyValidator {<br>
    public static boolean validateTwoFields(Object
bean,ValidatorAction va,Field field,ActionErrors
errors,HttpServletRequest request){<br>
        <br>
        String value = ValidatorUtil.getValueAsString(bean,field.getProperty());<br>
        String sProperty2 = field.getVarValue("secondProperty");<br>
        String value2 = ValidatorUtil.getValueAsString(bean,sProperty2);<br>
        if(!GenericValidator.isBlankOrNull(value)){<br>
            try{<br>
                if(!value.equals(value2)){<br>
           
       
errors.add(field.getKey(),Resources.getActionError(request,va,field));<br>
                    return false;<br>
                }<br>
            }catch(Exception e){<br>
           
   
errors.add(field.getKey(),Resources.getActionError(request,va,field));<br>
                return false;<br>
            }<br>
        }<br>
        return true;<br>
    }<br>
    <br>
}<br>
</pre>
<br>
上面这个类就是用来判断两个域是否相等，很简单，但是注意方法名一定要是validateXXX。<br>
<br>
接下来需要扩展validator-rules.xml,在</global>之前加入这么一段:<br>
<pre class="code">
      <validator name="twofields" classname="com.motel168.util.MyValidator" method="validateTwoFields"<br>
             
   
 methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"<br>
             
     depends="required" msg="errors.twofield"><br>
      <javascript><br>
      <![CDATA[<br>
        function validateTwoFields(form){<br>
              var bValid = true;<br>
              var focusField = null;<br>
              var i = 0;<br>
              var fields = new Array();<br>
              oTwoFields = new twofields();<br>
              for(x in oTwoFields){<br>
                  var field = form[oTwoFields[x][0]];<br>
             
    var secondField =
form[oTwoFields[x][2]("secondProperty")];<br>
             
   
if(field.type=="text"||field.type=="textarea"||field.type=="select-one"||field.type=="radio"||field.type=="password"){<br>
                      var value;<br>
                      var secondValue;<br>
             
        if(field.type=="select-one"){<br>
             
            var si =
field.selectedIndex;<br>
             
            value =
field.options[si].value;<br>
             
            secondValue =
secondField.options[si].value;<br>
                      }else{<br>
             
           
value=field.value;<br>
             
            secondValue =
secondField.value;<br>
                      }<br>
                      if(value!=secondValue){<br>
             
            if(i==0){<br>
             
           
    focusField = field;<br>
                      }<br>
             
        fields[i++]=oTwoFields[x][1];<br>
                      bValid = flase;<br>
                  }<br>
              }<br>
          }<br>
          if(fiels.length > 0){<br>
              focusFiled.focus();<br>
              alert(fields.join('\n'));<br>
              }<br>
          return bValid;<br>
      <br>
      ]]&gt;<br>
      </javascript><br>
      </validator>    <br>
</pre>
然后使用的时候就和其他没什么两样的了：<br>
<pre class="code">
        <form name="changePasswordForm"><br>
            <field property="newPassword1" depends="required,twofields"><br>
                <msg name="required" key="errors.required"/><br>
           
    <msg name="tworfields" key="errors.twofields"/><br>
                <arg0 key="errors.newpassword1"/><br>
                <arg1 key="errors.newpassword2"/><br>
                <var><br>
           
       
<var-name>secondProperty</var-name><br>
           
       
<var-value>newPassword2</var-value><br>
                </var><br>
            </field><br>
            <field property="newPassword2" depends="required"><br>
                <msg name="required" key="errors.required"/><br>
                <arg0 key="errors.newpassword2"/><br>
            </field><br>
        </form><br>
<br>
</pre>
<br>
注意这个地方<br>
<pre class="code">
                <var><br>
           
       
<var-name>secondProperty</var-name><br>
           
       
<var-value>newPassword2</var-value><br>
                </var><br>
</pre>
就是我们在java类中读取的变量，它代表的是另外的一个域。<br>
在JSP中的使用就不再说明了，大功告成:)。<br>
<br>
<br>
<img src ="http://www.blogjava.net/qiyadeng/aggbug/17571.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-10-31 18:00 <a href="http://www.blogjava.net/qiyadeng/articles/17571.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用AXIS开始WebService之设置</title><link>http://www.blogjava.net/qiyadeng/articles/15215.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Tue, 11 Oct 2005 02:14:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/15215.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/15215.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/15215.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/15215.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/15215.html</trackback:ping><description><![CDATA[<P>用AXIS开始WebService之设置<BR><A href="http://ws.apache.org/axis/java/install.html">http://ws.apache.org/axis/java/install.html</A><BR><A href="http://www.chinaunix.net/jh/13/620370.html">http://www.chinaunix.net/jh/13/620370.html</A><BR>1.相关文件全部下载好：<BR>主要文件：<BR>axis-bin-1_2_1.zip&nbsp;目前最新的<A href="http://apache.justdn.org/ws/axis/1_2_1/">http://apache.justdn.org/ws/axis/1_2_1/</A><BR>依赖文件：<BR>a.mail.jar 下载地址:http://java.sun.com/products/javamail <BR>b.activation.jar 下载地址:http://java.sun.com/products/javabeans/glasgow/jaf.html <BR>c.xerces.jar 下载地址:http://xml.apache.org/xerces-j/index.html 1.4.4版本<BR>d.xmlsec-1.2.1.jar 下载地址:http://xml.apache.org/security/</P>
<P>2.相关设置<BR>a.把上面提到的a,b,c,d四个包拷贝到&lt;CATALINA_HOME&gt;/common/lib目录下<BR>b.把axis目录下的WEB-INF/lib目录下的文件全部拷贝到&lt;CATALINA_HOME&gt;/common/lib目录下<BR>c.把JAVA_HOME/lib/tools.jar拷贝到&lt;CATALINA_HOME&gt;/common/lib目录下</P>
<P>这样就应该OK了!</P><img src ="http://www.blogjava.net/qiyadeng/aggbug/15215.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-10-11 10:14 <a href="http://www.blogjava.net/qiyadeng/articles/15215.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat中配置MySQL连接池</title><link>http://www.blogjava.net/qiyadeng/articles/15214.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Tue, 11 Oct 2005 02:13:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/15214.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/15214.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/15214.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/15214.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/15214.html</trackback:ping><description><![CDATA[<P>1.把驱动拷贝到%TOMCAT_HOME%/common/lib目录下<BR>2.新建数据库表，并向表中添加记录<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"><SPAN style="COLOR: #008080">1</SPAN><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">use</SPAN><SPAN style="COLOR: #000000">&nbsp;test;<BR></SPAN><SPAN style="COLOR: #008080">2</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;</SPAN><SPAN style="COLOR: #0000ff">create</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">table</SPAN><SPAN style="COLOR: #000000">&nbsp;testdata&nbsp;(<BR></SPAN><SPAN style="COLOR: #008080">3</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #000000">int</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #808080">not</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">&nbsp;auto_increment&nbsp;</SPAN><SPAN style="COLOR: #0000ff">primary</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">key</SPAN><SPAN style="COLOR: #000000">,<BR></SPAN><SPAN style="COLOR: #008080">4</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foo&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #000000">varchar</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">25</SPAN><SPAN style="COLOR: #000000">),&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">5</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bar&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #000000">int</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">6</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">insert</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">into</SPAN><SPAN style="COLOR: #000000">&nbsp;testdata&nbsp;</SPAN><SPAN style="COLOR: #0000ff">values</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #ff0000">'</SPAN><SPAN style="COLOR: #ff0000">hello</SPAN><SPAN style="COLOR: #ff0000">'</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">12345</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">7</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV>
<P><BR>3.在%TOMCAT_HOME%/config/server.xml文件中加入如下一段配置信息(在&lt;/Host&gt;之前)<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"><SPAN style="COLOR: #008080">&nbsp;1</SPAN><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">数据库连接池配置</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;2</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">path:Your&nbsp;webApp&nbsp;directory</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;3</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">Context&nbsp;</SPAN><SPAN style="COLOR: #ff0000">path</SPAN><SPAN style="COLOR: #0000ff">="/WS4Motel"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;docBase</SPAN><SPAN style="COLOR: #0000ff">="WS4Motel"</SPAN><SPAN style="COLOR: #ff0000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;4</SPAN><SPAN style="COLOR: #ff0000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug</SPAN><SPAN style="COLOR: #0000ff">="5"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;reloadable</SPAN><SPAN style="COLOR: #0000ff">="true"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;crossContext</SPAN><SPAN style="COLOR: #0000ff">="true"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;5</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;6</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">&nbsp;maxActive:&nbsp;Maximum&nbsp;number&nbsp;of&nbsp;dB&nbsp;connections&nbsp;in&nbsp;pool.&nbsp;Make&nbsp;sure&nbsp;you<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;7</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;configure&nbsp;your&nbsp;mysqld&nbsp;max_connections&nbsp;large&nbsp;enough&nbsp;to&nbsp;handle<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;8</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;of&nbsp;your&nbsp;db&nbsp;connections.&nbsp;Set&nbsp;to&nbsp;0&nbsp;for&nbsp;no&nbsp;limit.<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;9</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">10</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">11</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">&nbsp;maxIdle:&nbsp;Maximum&nbsp;number&nbsp;of&nbsp;idle&nbsp;dB&nbsp;connections&nbsp;to&nbsp;retain&nbsp;in&nbsp;pool.<BR></SPAN><SPAN style="COLOR: #008080">12</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;to&nbsp;-1&nbsp;for&nbsp;no&nbsp;limit.&nbsp;&nbsp;See&nbsp;also&nbsp;the&nbsp;DBCP&nbsp;documentation&nbsp;on&nbsp;this<BR></SPAN><SPAN style="COLOR: #008080">13</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;the&nbsp;minEvictableIdleTimeMillis&nbsp;configuration&nbsp;parameter.<BR></SPAN><SPAN style="COLOR: #008080">14</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">15</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">16</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">&nbsp;maxWait:&nbsp;Maximum&nbsp;time&nbsp;to&nbsp;wait&nbsp;for&nbsp;a&nbsp;dB&nbsp;connection&nbsp;to&nbsp;become&nbsp;available<BR></SPAN><SPAN style="COLOR: #008080">17</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in&nbsp;ms,&nbsp;in&nbsp;this&nbsp;example&nbsp;10&nbsp;seconds.&nbsp;An&nbsp;Exception&nbsp;is&nbsp;thrown&nbsp;if<BR></SPAN><SPAN style="COLOR: #008080">18</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this&nbsp;timeout&nbsp;is&nbsp;exceeded.&nbsp;&nbsp;Set&nbsp;to&nbsp;-1&nbsp;to&nbsp;wait&nbsp;indefinitely.<BR></SPAN><SPAN style="COLOR: #008080">19</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">20</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">21</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">&nbsp;username&nbsp;and&nbsp;password:&nbsp;MySQL&nbsp;dB&nbsp;username&nbsp;and&nbsp;password&nbsp;for&nbsp;dB&nbsp;connections&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">22</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">23</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">&nbsp;driverClassName:&nbsp;Class&nbsp;name&nbsp;for&nbsp;the&nbsp;old&nbsp;mm.mysql&nbsp;JDBC&nbsp;driver&nbsp;is<BR></SPAN><SPAN style="COLOR: #008080">24</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.gjt.mm.mysql.Driver&nbsp;-&nbsp;we&nbsp;recommend&nbsp;using&nbsp;Connector/J&nbsp;though.<BR></SPAN><SPAN style="COLOR: #008080">25</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class&nbsp;name&nbsp;for&nbsp;the&nbsp;official&nbsp;MySQL&nbsp;Connector/J&nbsp;driver&nbsp;is&nbsp;com.mysql.jdbc.Driver.<BR></SPAN><SPAN style="COLOR: #008080">26</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">27</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">28</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">&nbsp;url:&nbsp;The&nbsp;JDBC&nbsp;connection&nbsp;url&nbsp;for&nbsp;connecting&nbsp;to&nbsp;your&nbsp;MySQL&nbsp;dB.<BR></SPAN><SPAN style="COLOR: #008080">29</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;autoReconnect=true&nbsp;argument&nbsp;to&nbsp;the&nbsp;url&nbsp;makes&nbsp;sure&nbsp;that&nbsp;the<BR></SPAN><SPAN style="COLOR: #008080">30</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mm.mysql&nbsp;JDBC&nbsp;Driver&nbsp;will&nbsp;automatically&nbsp;reconnect&nbsp;if&nbsp;mysqld&nbsp;closed&nbsp;the<BR></SPAN><SPAN style="COLOR: #008080">31</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection.&nbsp;&nbsp;mysqld&nbsp;by&nbsp;default&nbsp;closes&nbsp;idle&nbsp;connections&nbsp;after&nbsp;8&nbsp;hours.<BR></SPAN><SPAN style="COLOR: #008080">32</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">33</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">34</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">Resource&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="jdbc/WS4Motel"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;auth</SPAN><SPAN style="COLOR: #0000ff">="Container"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;type</SPAN><SPAN style="COLOR: #0000ff">="javax.sql.DataSource"</SPAN><SPAN style="COLOR: #ff0000"><BR></SPAN><SPAN style="COLOR: #008080">35</SPAN><SPAN style="COLOR: #ff0000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxActive</SPAN><SPAN style="COLOR: #0000ff">="100"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;maxIdle</SPAN><SPAN style="COLOR: #0000ff">="30"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;maxWait</SPAN><SPAN style="COLOR: #0000ff">="10000"</SPAN><SPAN style="COLOR: #ff0000"><BR></SPAN><SPAN style="COLOR: #008080">36</SPAN><SPAN style="COLOR: #ff0000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username</SPAN><SPAN style="COLOR: #0000ff">="root"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;password</SPAN><SPAN style="COLOR: #0000ff">="83072674"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;driverClassName</SPAN><SPAN style="COLOR: #0000ff">="com.mysql.jdbc.Driver"</SPAN><SPAN style="COLOR: #ff0000"><BR></SPAN><SPAN style="COLOR: #008080">37</SPAN><SPAN style="COLOR: #ff0000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url</SPAN><SPAN style="COLOR: #0000ff">="jdbc:mysql://localhost:3306/test?autoReconnect=true"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">38</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">39</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">Context</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">40</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">数据库连接池配置</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">41</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV>
<P>&nbsp;</P>
<P>&nbsp;4.写个简单程序测试下：<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"><SPAN style="COLOR: #008080">&nbsp;1</SPAN><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">&lt;%</SPAN><SPAN style="COLOR: #000000">@&nbsp;taglib&nbsp;uri</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">http://java.sun.com/jsp/jstl/sql</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;prefix</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">sql</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">%&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;2</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;%</SPAN><SPAN style="COLOR: #000000">@&nbsp;taglib&nbsp;uri</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">http://java.sun.com/jsp/jstl/core</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;prefix</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">c</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">%&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;3</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;4</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">sql:query&nbsp;var</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">rs</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;dataSource</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">jdbc/TestDB</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;5</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>select&nbsp;id,&nbsp;foo,&nbsp;bar&nbsp;from&nbsp;testdata<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;6</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">sql:query</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;7</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;8</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">html</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;9</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">head</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">10</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">title</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">DB&nbsp;Test</SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">title</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">11</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">head</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">12</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">body</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">13</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">14</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">h2</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">Results</SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">h2</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">15</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">16</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">c:forEach&nbsp;var</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">row</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;items</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">${rs.rows}</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">17</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_361_369_Open_Image onclick="this.style.display='none'; Codehighlighter1_361_369_Open_Text.style.display='none'; Codehighlighter1_361_369_Closed_Image.style.display='inline'; Codehighlighter1_361_369_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_361_369_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_361_369_Closed_Text.style.display='none'; Codehighlighter1_361_369_Open_Image.style.display='inline'; Codehighlighter1_361_369_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Foo&nbsp;$</SPAN><SPAN id=Codehighlighter1_361_369_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_361_369_Open_Text><SPAN style="COLOR: #000000">{row.foo}</SPAN></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">br</SPAN><SPAN style="COLOR: #000000">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">18</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_385_393_Open_Image onclick="this.style.display='none'; Codehighlighter1_385_393_Open_Text.style.display='none'; Codehighlighter1_385_393_Closed_Image.style.display='inline'; Codehighlighter1_385_393_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_385_393_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_385_393_Closed_Text.style.display='none'; Codehighlighter1_385_393_Open_Image.style.display='inline'; Codehighlighter1_385_393_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Bar&nbsp;$</SPAN><SPAN id=Codehighlighter1_385_393_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_385_393_Open_Text><SPAN style="COLOR: #000000">{row.bar}</SPAN></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">br</SPAN><SPAN style="COLOR: #000000">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">19</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">c:forEach</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">20</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">21</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">body</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">22</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">html</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">23</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV><img src ="http://www.blogjava.net/qiyadeng/aggbug/15214.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-10-11 10:13 <a href="http://www.blogjava.net/qiyadeng/articles/15214.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>获取本地主机的MAC地址 </title><link>http://www.blogjava.net/qiyadeng/articles/14625.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Sat, 01 Oct 2005 15:24:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/14625.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/14625.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/14625.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/14625.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/14625.html</trackback:ping><description><![CDATA[前些天，有篇文章，准确的说是代码放到csdn的博客上，本是学习的一个笔记，但是既然关心的人很多，于是再一次把它转贴过了，那个博客已经不再用了。<BR><BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #008080">&nbsp;1</SPAN><IMG id=Codehighlighter1_0_111_Open_Image onclick="this.style.display='none'; Codehighlighter1_0_111_Open_Text.style.display='none'; Codehighlighter1_0_111_Closed_Image.style.display='inline'; Codehighlighter1_0_111_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_0_111_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_111_Closed_Text.style.display='none'; Codehighlighter1_0_111_Open_Image.style.display='inline'; Codehighlighter1_0_111_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top><SPAN id=Codehighlighter1_0_111_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_111_Open_Text><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;2</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;FileName:MACHomework.java<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;3</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;Author:流浪小子<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;4</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;Date:2004-7-5<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;5</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;E-mail:qiyadeng@hotmail.com<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;6</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;Purpose:获取本地主机的MAC地址<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;7</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;</SPAN><SPAN style="COLOR: #008000">*/</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;8</SPAN><SPAN style="COLOR: #000000"><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.io.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;9</SPAN><SPAN style="COLOR: #000000"><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.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">10</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">11</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_170_865_Open_Image onclick="this.style.display='none'; Codehighlighter1_170_865_Open_Text.style.display='none'; Codehighlighter1_170_865_Closed_Image.style.display='inline'; Codehighlighter1_170_865_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_170_865_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_170_865_Closed_Text.style.display='none'; Codehighlighter1_170_865_Open_Image.style.display='inline'; Codehighlighter1_170_865_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;Main&nbsp;</SPAN><SPAN id=Codehighlighter1_170_865_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_170_865_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">12</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">static</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">final</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;MACLength&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">18</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">13</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">14</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_255_330_Open_Image onclick="this.style.display='none'; Codehighlighter1_255_330_Open_Text.style.display='none'; Codehighlighter1_255_330_Closed_Image.style.display='inline'; Codehighlighter1_255_330_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_255_330_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_255_330_Closed_Text.style.display='none'; Codehighlighter1_255_330_Open_Image.style.display='inline'; Codehighlighter1_255_330_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">void</SPAN><SPAN style="COLOR: #000000">&nbsp;main(String&nbsp;args[])&nbsp;</SPAN><SPAN id=Codehighlighter1_255_330_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_255_330_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">15</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">本机的物理地址是：</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">16</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(getMACAddress());<BR></SPAN><SPAN style="COLOR: #008080">17</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">18</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">19</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_371_553_Open_Image onclick="this.style.display='none'; Codehighlighter1_371_553_Open_Text.style.display='none'; Codehighlighter1_371_553_Closed_Image.style.display='inline'; Codehighlighter1_371_553_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_371_553_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_371_553_Closed_Text.style.display='none'; Codehighlighter1_371_553_Open_Image.style.display='inline'; Codehighlighter1_371_553_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">static</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;String&nbsp;getMACAddress()&nbsp;</SPAN><SPAN id=Codehighlighter1_371_553_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_371_553_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">20</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SysCommand&nbsp;syscmd&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;SysCommand();<BR></SPAN><SPAN style="COLOR: #008080">21</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">系统命令</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #008080">22</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;cmd&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">cmd.exe&nbsp;/c&nbsp;ipconfig/all</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">23</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vector&nbsp;result;<BR></SPAN><SPAN style="COLOR: #008080">24</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;syscmd.execute(cmd);<BR></SPAN><SPAN style="COLOR: #008080">25</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;getCmdStr(result.toString());<BR></SPAN><SPAN style="COLOR: #008080">26</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">27</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">28</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_603_863_Open_Image onclick="this.style.display='none'; Codehighlighter1_603_863_Open_Text.style.display='none'; Codehighlighter1_603_863_Closed_Image.style.display='inline'; Codehighlighter1_603_863_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_603_863_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_603_863_Closed_Text.style.display='none'; Codehighlighter1_603_863_Open_Image.style.display='inline'; Codehighlighter1_603_863_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">static</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;String&nbsp;getCmdStr(String&nbsp;outstr)&nbsp;</SPAN><SPAN id=Codehighlighter1_603_863_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_603_863_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">29</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;find&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Physical&nbsp;Address.&nbsp;.&nbsp;.&nbsp;.&nbsp;.&nbsp;.&nbsp;.&nbsp;.&nbsp;.&nbsp;:</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">30</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;findIndex&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;outstr.indexOf(find);<BR></SPAN><SPAN style="COLOR: #008080">31</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_723_746_Open_Image onclick="this.style.display='none'; Codehighlighter1_723_746_Open_Text.style.display='none'; Codehighlighter1_723_746_Closed_Image.style.display='inline'; Codehighlighter1_723_746_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_723_746_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_723_746_Closed_Text.style.display='none'; Codehighlighter1_723_746_Open_Image.style.display='inline'; Codehighlighter1_723_746_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(findIndex&nbsp;</SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN id=Codehighlighter1_723_746_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_723_746_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">32</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">未知错误！</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">33</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_753_860_Open_Image onclick="this.style.display='none'; Codehighlighter1_753_860_Open_Text.style.display='none'; Codehighlighter1_753_860_Closed_Image.style.display='inline'; Codehighlighter1_753_860_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_753_860_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_753_860_Closed_Text.style.display='none'; Codehighlighter1_753_860_Open_Image.style.display='inline'; Codehighlighter1_753_860_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_753_860_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_753_860_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">34</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;outstr.substring(findIndex&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;find.length()&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">,&nbsp;findIndex<BR></SPAN><SPAN style="COLOR: #008080">35</SPAN><SPAN style="COLOR: #000000"><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;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;find.length()&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;MACLength);<BR></SPAN><SPAN style="COLOR: #008080">36</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">37</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">38</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">39</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">40</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">SysCommand类</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #008080">41</SPAN><SPAN style="COLOR: #008000"><IMG id=Codehighlighter1_899_1661_Open_Image onclick="this.style.display='none'; Codehighlighter1_899_1661_Open_Text.style.display='none'; Codehighlighter1_899_1661_Closed_Image.style.display='inline'; Codehighlighter1_899_1661_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_899_1661_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_899_1661_Closed_Text.style.display='none'; Codehighlighter1_899_1661_Open_Image.style.display='inline'; Codehighlighter1_899_1661_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;SysCommand&nbsp;</SPAN><SPAN id=Codehighlighter1_899_1661_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_899_1661_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">42</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Process&nbsp;p;<BR></SPAN><SPAN style="COLOR: #008080">43</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">44</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_949_1405_Open_Image onclick="this.style.display='none'; Codehighlighter1_949_1405_Open_Text.style.display='none'; Codehighlighter1_949_1405_Closed_Image.style.display='inline'; Codehighlighter1_949_1405_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_949_1405_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_949_1405_Closed_Text.style.display='none'; Codehighlighter1_949_1405_Open_Image.style.display='inline'; Codehighlighter1_949_1405_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;Vector&nbsp;execute(String&nbsp;cmd)&nbsp;</SPAN><SPAN id=Codehighlighter1_949_1405_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_949_1405_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">45</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_957_1358_Open_Image onclick="this.style.display='none'; Codehighlighter1_957_1358_Open_Text.style.display='none'; Codehighlighter1_957_1358_Closed_Image.style.display='inline'; Codehighlighter1_957_1358_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_957_1358_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_957_1358_Closed_Text.style.display='none'; Codehighlighter1_957_1358_Open_Image.style.display='inline'; Codehighlighter1_957_1358_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_957_1358_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_957_1358_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">46</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start(cmd);<BR></SPAN><SPAN style="COLOR: #008080">47</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vector&nbsp;vResult&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;Vector();<BR></SPAN><SPAN style="COLOR: #008080">48</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataInputStream&nbsp;in&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;DataInputStream(p.getInputStream());<BR></SPAN><SPAN style="COLOR: #008080">49</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;myReader&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;BufferedReader(</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;InputStreamReader(<BR></SPAN><SPAN style="COLOR: #008080">50</SPAN><SPAN style="COLOR: #000000"><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;&nbsp;&nbsp;&nbsp;in));<BR></SPAN><SPAN style="COLOR: #008080">51</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;line;<BR></SPAN><SPAN style="COLOR: #008080">52</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1177_1300_Open_Image onclick="this.style.display='none'; Codehighlighter1_1177_1300_Open_Text.style.display='none'; Codehighlighter1_1177_1300_Closed_Image.style.display='inline'; Codehighlighter1_1177_1300_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1177_1300_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1177_1300_Closed_Text.style.display='none'; Codehighlighter1_1177_1300_Open_Image.style.display='inline'; Codehighlighter1_1177_1300_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;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">do</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_1177_1300_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_1177_1300_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">53</SPAN><SPAN style="COLOR: #000000"><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;line&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;myReader.readLine();<BR></SPAN><SPAN style="COLOR: #008080">54</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1233_1251_Open_Image onclick="this.style.display='none'; Codehighlighter1_1233_1251_Open_Text.style.display='none'; Codehighlighter1_1233_1251_Closed_Image.style.display='inline'; Codehighlighter1_1233_1251_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1233_1251_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1233_1251_Closed_Text.style.display='none'; Codehighlighter1_1233_1251_Open_Image.style.display='inline'; Codehighlighter1_1233_1251_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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(line&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_1233_1251_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_1233_1251_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">55</SPAN><SPAN style="COLOR: #000000"><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;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">break</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">56</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1258_1295_Open_Image onclick="this.style.display='none'; Codehighlighter1_1258_1295_Open_Text.style.display='none'; Codehighlighter1_1258_1295_Closed_Image.style.display='inline'; Codehighlighter1_1258_1295_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1258_1295_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1258_1295_Closed_Text.style.display='none'; Codehighlighter1_1258_1295_Open_Image.style.display='inline'; Codehighlighter1_1258_1295_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;&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_1258_1295_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_1258_1295_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">57</SPAN><SPAN style="COLOR: #000000"><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;&nbsp;&nbsp;&nbsp;vResult.addElement(line);<BR></SPAN><SPAN style="COLOR: #008080">58</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">59</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">while</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #0000ff">true</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">60</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myReader.close();<BR></SPAN><SPAN style="COLOR: #008080">61</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;vResult;<BR></SPAN><SPAN style="COLOR: #008080">62</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1380_1401_Open_Image onclick="this.style.display='none'; Codehighlighter1_1380_1401_Open_Text.style.display='none'; Codehighlighter1_1380_1401_Closed_Image.style.display='inline'; Codehighlighter1_1380_1401_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1380_1401_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1380_1401_Closed_Text.style.display='none'; Codehighlighter1_1380_1401_Open_Image.style.display='inline'; Codehighlighter1_1380_1401_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">&nbsp;(Exception&nbsp;e)&nbsp;</SPAN><SPAN id=Codehighlighter1_1380_1401_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_1380_1401_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">63</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">64</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">65</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">66</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">67</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">68</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">69</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1439_1580_Open_Image onclick="this.style.display='none'; Codehighlighter1_1439_1580_Open_Text.style.display='none'; Codehighlighter1_1439_1580_Closed_Image.style.display='inline'; Codehighlighter1_1439_1580_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1439_1580_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1439_1580_Closed_Text.style.display='none'; Codehighlighter1_1439_1580_Open_Image.style.display='inline'; Codehighlighter1_1439_1580_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">void</SPAN><SPAN style="COLOR: #000000">&nbsp;Start(String&nbsp;cmd)&nbsp;</SPAN><SPAN id=Codehighlighter1_1439_1580_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_1439_1580_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">70</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1447_1550_Open_Image onclick="this.style.display='none'; Codehighlighter1_1447_1550_Open_Text.style.display='none'; Codehighlighter1_1447_1550_Closed_Image.style.display='inline'; Codehighlighter1_1447_1550_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1447_1550_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1447_1550_Closed_Text.style.display='none'; Codehighlighter1_1447_1550_Open_Image.style.display='inline'; Codehighlighter1_1447_1550_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_1447_1550_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_1447_1550_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">71</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1467_1484_Open_Image onclick="this.style.display='none'; Codehighlighter1_1467_1484_Open_Text.style.display='none'; Codehighlighter1_1467_1484_Closed_Image.style.display='inline'; Codehighlighter1_1467_1484_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1467_1484_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1467_1484_Closed_Text.style.display='none'; Codehighlighter1_1467_1484_Open_Image.style.display='inline'; Codehighlighter1_1467_1484_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;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(p&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_1467_1484_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_1467_1484_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">72</SPAN><SPAN style="COLOR: #000000"><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;kill();<BR></SPAN><SPAN style="COLOR: #008080">73</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">74</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Runtime&nbsp;sys&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Runtime.getRuntime();<BR></SPAN><SPAN style="COLOR: #008080">75</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;sys.exec(cmd);<BR></SPAN><SPAN style="COLOR: #008080">76</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">77</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1572_1577_Open_Image onclick="this.style.display='none'; Codehighlighter1_1572_1577_Open_Text.style.display='none'; Codehighlighter1_1572_1577_Closed_Image.style.display='inline'; Codehighlighter1_1572_1577_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1572_1577_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1572_1577_Closed_Text.style.display='none'; Codehighlighter1_1572_1577_Open_Image.style.display='inline'; Codehighlighter1_1572_1577_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">&nbsp;(Exception&nbsp;e)&nbsp;</SPAN><SPAN id=Codehighlighter1_1572_1577_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_1572_1577_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">78</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">79</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">80</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">81</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">82</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1603_1658_Open_Image onclick="this.style.display='none'; Codehighlighter1_1603_1658_Open_Text.style.display='none'; Codehighlighter1_1603_1658_Closed_Image.style.display='inline'; Codehighlighter1_1603_1658_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1603_1658_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1603_1658_Closed_Text.style.display='none'; Codehighlighter1_1603_1658_Open_Image.style.display='inline'; Codehighlighter1_1603_1658_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">void</SPAN><SPAN style="COLOR: #000000">&nbsp;kill()&nbsp;</SPAN><SPAN id=Codehighlighter1_1603_1658_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_1603_1658_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">83</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1622_1655_Open_Image onclick="this.style.display='none'; Codehighlighter1_1622_1655_Open_Text.style.display='none'; Codehighlighter1_1622_1655_Closed_Image.style.display='inline'; Codehighlighter1_1622_1655_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1622_1655_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1622_1655_Closed_Text.style.display='none'; Codehighlighter1_1622_1655_Open_Image.style.display='inline'; Codehighlighter1_1622_1655_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(p&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_1622_1655_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_1622_1655_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">84</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.destroy();<BR></SPAN><SPAN style="COLOR: #008080">85</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">86</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">87</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">88</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">89</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">90</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV><img src ="http://www.blogjava.net/qiyadeng/aggbug/14625.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-10-01 23:24 <a href="http://www.blogjava.net/qiyadeng/articles/14625.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP中文问题</title><link>http://www.blogjava.net/qiyadeng/articles/14141.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Mon, 26 Sep 2005 12:55:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/14141.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/14141.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/14141.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/14141.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/14141.html</trackback:ping><description><![CDATA[<p>一、JSP页面显示乱码二、表单提交中文时出现乱码三、数据库连 <br/>大家在JSP的开发过程中，经常出现中文乱码的问题，可能一至困扰着您，我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。 </p><p>一、JSP页面显示乱码 <br/>下面的显示页面(display.jsp)就出现乱码： </p><pre class="code">&lt;html&gt; <br/>&lt;head&gt; <br/>&lt;title&gt;JSP的中文处理&lt;/title&gt; <br/>&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot;&gt; <br/>&lt;/head&gt; <p></p><p>&lt;body&gt; <br/>&lt;% <br/>out.print(&quot;JSP的中文处理&quot;); <br/>%&gt; <br/>&lt;/body&gt; <br/>&lt;/html&gt; </p></pre>对不同的WEB服务器和不同的JDK版本，处理结果就不一样。原因：服务器使用的编码方式不同和浏览器对不同的字符显示结果不同而导致的。解决办法：在JSP页面中指定编码方式(gb2312),即在页面的第一行加上：&lt;%@ page contentType=&quot;text/html; charset=gb2312&quot;%&gt;，就可以消除乱码了。完整页面如下： <pre class="code">&lt;%@ page contentType=&quot;text/html; charset=gb2312&quot;%&gt; <br/>&lt;html&gt; <br/>&lt;head&gt; <br/>&lt;title&gt;JSP的中文处理&lt;/title&gt; <br/>&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot;&gt;<br/>&lt;/head&gt; <p></p><p>&lt;body&gt; <br/>&lt;% <br/>out.print(&quot;JSP的中文处理&quot;); <br/>%&gt; <br/>&lt;/body&gt; <br/>&lt;/html&gt;</p></pre><p></p><p>二、表单提交中文时出现乱码 <br/>下面是一个提交页面(submit.jsp)，代码如下：</p><pre class="code">&lt;html&gt; <br/>&lt;head&gt; <br/>&lt;title&gt;JSP的中文处理&lt;/title&gt; <br/>&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot;&gt; <br/>&lt;/head&gt; <p></p><p>&lt;body&gt; <br/>&lt;form name=&quot;form1&quot; method=&quot;post&quot; action=&quot;process.jsp&quot;&gt; <br/>&lt;div align=&quot;center&quot;&gt; <br/>&lt;input type=&quot;text&quot; name=&quot;name&quot;&gt; <br/>&lt;input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Submit&quot;&gt; <br/>&lt;/div&gt; <br/>&lt;/form&gt; <br/>&lt;/body&gt; <br/>&lt;/html&gt; </p></pre>下面是处理页面(process.jsp)代码： <pre class="code">&lt;%@ page contentType=&quot;text/html; charset=gb2312&quot;%&gt; <br/>&lt;html&gt; <br/>&lt;head&gt; <br/>&lt;title&gt;JSP的中文处理&lt;/title&gt; <br/>&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot;&gt; <br/>&lt;/head&gt; <p></p><p>&lt;body&gt; <br/>&lt;%=request.getParameter(&quot;name&quot;)%&gt; <br/>&lt;/body&gt; <br/>&lt;/html&gt;</p></pre>如果submit.jsp提交英文字符能正确显示，如果提交中文时就会出现乱码。原因：浏览器默认使用UTF-8编码方式来发送请求，而UTF-8和GB2312编码方式表示字符时不一样，这样就出现了不能识别字符。解决办法:通过request.setCharacterEncoding(&quot;gb2312&quot;)对请求进行统一编码，就实现了中文的正常显示。修改后的process.jsp代码如下：<pre class="code">&lt;%@ page contentType=&quot;text/html; charset=gb2312&quot;%&gt; <br/>&lt;% <br/>request.seCharacterEncoding(&quot;gb2312&quot;); <br/>%&gt; <br/>&lt;html&gt; <br/>&lt;head&gt; <br/>&lt;title&gt;JSP的中文处理&lt;/title&gt; <br/>&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot;&gt; <br/>&lt;/head&gt; <p></p><p>&lt;body&gt; <br/>&lt;%=request.getParameter(&quot;name&quot;)%&gt; <br/>&lt;/body&gt; <br/>&lt;/html&gt;</p></pre><p></p><p>三、数据库连接出现乱码 <br/>只要涉及中文的地方全部是乱码，解决办法：在数据库的数据库URL中加上useUnicode=true&amp;characterEncoding=GBK就OK了。 </p><p>四、数据库的显示乱码 <br/>在mysql4.1.0中,varchar类型，text类型就会出现中文乱码，对于varchar类型把它设为binary属性就可以解决中文问题，对于text类型就要用一个编码转换类来处理，实现如下： </p><pre class="code">public class Convert { <br/>/** 把ISO-8859-1码转换成GB2312 <br/>*/ <br/>public static String ISOtoGB(String iso){ <br/>String gb; <br/>try{ <br/>if(iso.equals(&quot;&quot;) || iso == null){ <br/>return &quot;&quot;; <br/>} <br/>else{ <br/>iso = iso.trim(); <br/>gb = new String(iso.getBytes(&quot;ISO-8859-1&quot;),&quot;GB2312&quot;); <br/>return gb; <br/>} <br/>} <br/>catch(Exception e){ <br/>System.err.print(&quot;编码转换错误：&quot;+e.getMessage()); <br/>return &quot;&quot;; <br/>} <br/>} <br/>}</pre>把它编译成class，就可以调用Convert类的静态方法ISOtoGB()来转换编码。 <p></p><p></p><img src ="http://www.blogjava.net/qiyadeng/aggbug/14141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-09-26 20:55 <a href="http://www.blogjava.net/qiyadeng/articles/14141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>研究了下 Struts-Layout</title><link>http://www.blogjava.net/qiyadeng/articles/14131.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Mon, 26 Sep 2005 09:42:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/14131.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/14131.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/14131.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/14131.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/14131.html</trackback:ping><description><![CDATA[Struts Layout下载地址：<A href="http://struts.application-servers.com/index.html">http://struts.application-servers.com/index.html</A><BR>一.配置：<BR><A href="http://struts.application-servers.com/install.html">http://struts.application-servers.com/install.html</A>有详细的说明<BR>1.把下面的两端加入到struts-config.xml中：<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">action </SPAN><SPAN style="COLOR: #ff0000">path</SPAN><SPAN style="COLOR: #0000ff">="/sort"</SPAN><SPAN style="COLOR: #ff0000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top> type</SPAN><SPAN style="COLOR: #0000ff">="fr.improve.struts.taglib.layout.sort.SortAction"</SPAN><SPAN style="COLOR: #ff0000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top> scope</SPAN><SPAN style="COLOR: #0000ff">="request"</SPAN><SPAN style="COLOR: #ff0000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top> validate</SPAN><SPAN style="COLOR: #0000ff">="false"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></< SPAN><SPAN style="COLOR: #800000">action</SPAN><SPAN style="COLOR: #0000ff">></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"><</SPAN><SPAN style="COLOR: #800000">action </SPAN><SPAN style="COLOR: #ff0000">path</SPAN><SPAN style="COLOR: #0000ff">="/treeview"</SPAN><SPAN style="COLOR: #ff0000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top> type</SPAN><SPAN style="COLOR: #0000ff">="fr.improve.struts.taglib.layout.treeview.TreeviewAction"</SPAN><SPAN style="COLOR: #ff0000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top> scope</SPAN><SPAN style="COLOR: #0000ff">="request"</SPAN><SPAN style="COLOR: #ff0000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top> validate</SPAN><SPAN style="COLOR: #0000ff">="false"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></< SPAN><SPAN style="COLOR: #800000">action</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV><BR>2.复制struts-layout.jar到WEB-INF/lib目录下<BR>3.在web.xml文件中加入：<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">   </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">jsp-config</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">taglib</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>     </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">taglib-uri</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">http://struts.application-servers.com/layout</SPAN><SPAN style="COLOR: #0000ff"></< SPAN><SPAN style="COLOR: #800000">taglib-uri</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>     </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">taglib-location</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">/WEB-INF/struts-layout.tld</SPAN><SPAN style="COLOR: #0000ff"></< SPAN><SPAN style="COLOR: #800000">taglib-location</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff"></< SPAN><SPAN style="COLOR: #800000">taglib</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>   </SPAN><SPAN style="COLOR: #0000ff"></< SPAN><SPAN style="COLOR: #800000">jsp-config</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV><BR>4.把struts-layout.tld复制到WEB-INF目录下<BR>5.把resources文件下的config文件拷贝到webroot目录下，并把images目录下的所有文件拷贝到config目录下。<BR>二.实例运行：<BR>写个一般的jsp，当然对应的Action,ActionForm已经写好了。<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000"><%</SPAN><SPAN style="COLOR: #000000">@ taglib uri</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">http://struts.application-servers.com/layout</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> prefix</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">layout</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">%></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">layout:html</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top> </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">layout:form action</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">/layout</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> styleClass</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">FORM</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">layout:text key</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">search.name</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> property</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">name</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> styleClass</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">FIELD</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">/></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">layout:text key</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">search.town</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> property</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">town</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> styleClass</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">FIELD</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">/></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">layout:date key</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">serach.date</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> property</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">date</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> styleClass</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">LABEL</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">/></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">layout:submit</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>   </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">layout:message key</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">search.submit</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">/></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #000000"></< SPAN><SPAN style="COLOR: #000000">layout:submit</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top> </SPAN><SPAN style="COLOR: #000000"></< SPAN><SPAN style="COLOR: #000000">layout:form</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000"></< SPAN><SPAN style="COLOR: #000000">layout:html</SPAN><SPAN style="COLOR: #000000">></SPAN></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN><IMG height=198 alt=Snap1.bmp src="http://www.blogjava.net/images/blogjava_net/qiyadeng/j2ee/Snap1.bmp" width=717 border=0><IMG height=1 src="/FreeTextBox/Utility/spacer.gif" width=1><img src ="http://www.blogjava.net/qiyadeng/aggbug/14131.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-09-26 17:42 <a href="http://www.blogjava.net/qiyadeng/articles/14131.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iReport的简单配置</title><link>http://www.blogjava.net/qiyadeng/articles/13951.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Sat, 24 Sep 2005 13:26:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/13951.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/13951.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/13951.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/13951.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/13951.html</trackback:ping><description><![CDATA[<P>iReport是个好东西，现在已经出来了0.5.1的版本了，但是这个工具虽然好用，但是初使用还是会遇到不小的麻烦。<BR>下面说下iReport的基本配置：<BR>1.一般用iReport的同志都是使用Java的，所有配置JDK的环境就不说了^_^。</P>
<P>2.当然需要去下载iReport-0.5.1了，记得还的捎上个iTextAsian.jar，这是我们中国人需要的东西。<BR>解压iReport-0.5.1，把\lib目录下的tinylaf.jar,mysql-connector-java-3.0.8-stable-bin.jar这两个文件删除，然后把iTextAsian.jar拷贝到\lib目录下（tinylaf.jar文件和iTextAsian.jar有冲突，tinylaf.jar文件删了不会影响使用，只是会影响一点美观，应该不关系不大^_^），其他的配置都不需要了，双击该目录下的iReport.bat运行iReport。</P>
<P>3.新建一个文档看看，并往其中添加一个Static Text，写上中文，并选择如下：Font name:宋体，PDF font name：STSong-Light,PDF Encoding:UniGB-UCS2-H(Chinese Simplified)这三项必修修改，要不中文会有问题。<BR><IMG height=380 alt=iReport1.jpg src="http://www.blogjava.net/images/blogjava_net/qiyadeng/j2ee/iReport/iReport1.jpg" width=370 border=0></P>
<P>4.设置&nbsp;DataSource--Connections/DataSource并新建，mysql设置如下,并要把你的驱动拷贝到\lib目录下，记得上面删了个mysql-connector-java-3.0.8-stable-bin.jar东西吗？这个东西不知道为什么也不能用，还是用mysql-connector-java-3.1.10-bin.jar。<BR><IMG height=415 alt=iReport2.jpg src="http://www.blogjava.net/images/blogjava_net/qiyadeng/j2ee/iReport/iReport2.jpg" width=403 border=0></P>
<P>5.重新启动iReport，再打开Connections/DataSource测试下，应该会提示你成功的。然后选择菜单builder-set active connection.这样就可以使用了SQL语句了。选择菜单View-Report query,写上句简单的SQL语句，下面就会显示出字段。<BR><IMG height=500 alt=iReport3.jpg src="http://www.blogjava.net/images/blogjava_net/qiyadeng/j2ee/iReport/iReport3.jpg" width=520 border=0></P>
<P>6.选择view-Report-field，然后再添加个Field到报表中按提示操作，提醒下，注意下字段的类型，不正确的话会出错。如果含有中问的话，处理同上3。</P>
<P>运行下看下效果(builder-Execute Report(using active conn))：</P>
<P><IMG style="WIDTH: 685px; HEIGHT: 556px" height=733 alt=iReport4.jpg src="http://www.blogjava.net/images/blogjava_net/qiyadeng/j2ee/iReport/iReport4.jpg" width=1000 border=0></P><img src ="http://www.blogjava.net/qiyadeng/aggbug/13951.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-09-24 21:26 <a href="http://www.blogjava.net/qiyadeng/articles/13951.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在web project中使用log4j</title><link>http://www.blogjava.net/qiyadeng/articles/13834.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Fri, 23 Sep 2005 06:16:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/13834.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/13834.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/13834.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/13834.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/13834.html</trackback:ping><description><![CDATA[<P>在web project中使用log4j</P>
<P>下面我们以在tomcat中示范怎么配置和使用log4j</P>
<P>环境设置：用过tomcat的都知道，应该把log4j.jar文件拷贝到%TOMCAT_HOME%\common\lib中。<BR>编辑servlet:<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"><SPAN style="COLOR: #008080">&nbsp;1</SPAN><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">package</SPAN><SPAN style="COLOR: #000000">&nbsp;my.scwcd;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;2</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;3</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;4</SPAN><SPAN style="COLOR: #000000"><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.ServletException;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;5</SPAN><SPAN style="COLOR: #000000"><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.HttpServlet;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;6</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;7</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;org.apache.log4j.PropertyConfigurator;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;8</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;9</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_189_537_Open_Image onclick="this.style.display='none'; Codehighlighter1_189_537_Open_Text.style.display='none'; Codehighlighter1_189_537_Closed_Image.style.display='inline'; Codehighlighter1_189_537_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_189_537_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_189_537_Closed_Text.style.display='none'; Codehighlighter1_189_537_Open_Image.style.display='inline'; Codehighlighter1_189_537_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;Log4jInit&nbsp;</SPAN><SPAN style="COLOR: #0000ff">extends</SPAN><SPAN style="COLOR: #000000">&nbsp;HttpServlet&nbsp;</SPAN><SPAN id=Codehighlighter1_189_537_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_189_537_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">10</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">11</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_212_226_Open_Image onclick="this.style.display='none'; Codehighlighter1_212_226_Open_Text.style.display='none'; Codehighlighter1_212_226_Closed_Image.style.display='inline'; Codehighlighter1_212_226_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_212_226_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_212_226_Closed_Text.style.display='none'; Codehighlighter1_212_226_Open_Image.style.display='inline'; Codehighlighter1_212_226_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;Log4jInit()&nbsp;</SPAN><SPAN id=Codehighlighter1_212_226_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_212_226_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">12</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">super</SPAN><SPAN style="COLOR: #000000">();<BR></SPAN><SPAN style="COLOR: #008080">13</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">14</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">15</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_252_311_Open_Image onclick="this.style.display='none'; Codehighlighter1_252_311_Open_Text.style.display='none'; Codehighlighter1_252_311_Closed_Image.style.display='inline'; Codehighlighter1_252_311_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_252_311_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_252_311_Closed_Text.style.display='none'; Codehighlighter1_252_311_Open_Image.style.display='inline'; Codehighlighter1_252_311_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;destroy()&nbsp;</SPAN><SPAN id=Codehighlighter1_252_311_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_252_311_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">16</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">super</SPAN><SPAN style="COLOR: #000000">.destroy();&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;Just&nbsp;puts&nbsp;"destroy"&nbsp;string&nbsp;in&nbsp;log</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #008080">17</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">18</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">19</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_358_534_Open_Image onclick="this.style.display='none'; Codehighlighter1_358_534_Open_Text.style.display='none'; Codehighlighter1_358_534_Closed_Image.style.display='inline'; Codehighlighter1_358_534_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_358_534_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_358_534_Closed_Text.style.display='none'; Codehighlighter1_358_534_Open_Image.style.display='inline'; Codehighlighter1_358_534_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;init()&nbsp;</SPAN><SPAN style="COLOR: #0000ff">throws</SPAN><SPAN style="COLOR: #000000">&nbsp;ServletException&nbsp;</SPAN><SPAN id=Codehighlighter1_358_534_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_358_534_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">20</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;String&nbsp;path&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;getServletContext().getRealPath(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">21</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">22</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;String&nbsp;file&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;getInitParameter(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">log4j</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">23</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_478_528_Open_Image onclick="this.style.display='none'; Codehighlighter1_478_528_Open_Text.style.display='none'; Codehighlighter1_478_528_Closed_Image.style.display='inline'; Codehighlighter1_478_528_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_478_528_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_478_528_Closed_Text.style.display='none'; Codehighlighter1_478_528_Open_Image.style.display='inline'; Codehighlighter1_478_528_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(file&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_478_528_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_478_528_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">24</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;PropertyConfigurator.configure(path</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">file);<BR></SPAN><SPAN style="COLOR: #008080">25</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">26</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">27</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">28</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">29</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">30</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">31</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV>
<P><BR>并在web.xml中加入如下配置：<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"><SPAN style="COLOR: #008080">&nbsp;1</SPAN><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">&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></SPAN><SPAN style="COLOR: #008080">&nbsp;2</SPAN><SPAN style="COLOR: #000000"><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-name</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">Log4jInit</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></SPAN><SPAN style="COLOR: #008080">&nbsp;3</SPAN><SPAN style="COLOR: #000000"><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-class</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">my.scwcd.Log4jInit</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></SPAN><SPAN style="COLOR: #008080">&nbsp;4</SPAN><SPAN style="COLOR: #000000"><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">init-param</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;5</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&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">log4j</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></SPAN><SPAN style="COLOR: #008080">&nbsp;6</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&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">WEB-INF\log4j.properties</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></SPAN><SPAN style="COLOR: #008080">&nbsp;7</SPAN><SPAN style="COLOR: #000000"><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">init-param</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;8</SPAN><SPAN style="COLOR: #000000"><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">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></SPAN><SPAN style="COLOR: #008080">&nbsp;9</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&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></SPAN><SPAN style="COLOR: #008080">10</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV>
<P><BR>注意上面&lt;param-value&gt;中的"\"在linux要写成"/"。<BR>还有加上log4j.properties文件在WEB-INF目录下<BR><pre class="code">log4j.rootLogger=INFO, A1 , R<BR>log4j.appender.A1=org.apache.log4j.ConsoleAppender<BR>log4j.appender.A1.layout=org.apache.log4j.PatternLayout<BR>log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n</P>
<P>log4j.appender.R=org.apache.log4j.RollingFileAppender<BR>log4j.appender.R.File=log4j.log<BR>log4j.appender.R.MaxFileSize=100KB<BR>log4j.appender.R.MaxBackupIndex=1<BR>log4j.appender.R.layout=org.apache.log4j.PatternLayout<BR>log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n</pre></P>
<P>&nbsp;</P>
<P>下面写了两个测试的程序：<BR>servlet Test.java中：<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"><SPAN style="COLOR: #008080">&nbsp;1</SPAN><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;doGet(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;2</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_117_362_Open_Image onclick="this.style.display='none'; Codehighlighter1_117_362_Open_Text.style.display='none'; Codehighlighter1_117_362_Closed_Image.style.display='inline'; Codehighlighter1_117_362_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_117_362_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_117_362_Closed_Text.style.display='none'; Codehighlighter1_117_362_Open_Image.style.display='inline'; Codehighlighter1_117_362_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">throws</SPAN><SPAN style="COLOR: #000000">&nbsp;ServletException,&nbsp;IOException&nbsp;</SPAN><SPAN id=Codehighlighter1_117_362_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_117_362_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;3</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;4</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;response.setContentType(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">text/html</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;5</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;PrintWriter&nbsp;out&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;response.getWriter();<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;6</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;Logger&nbsp;logger&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Logger.getLogger(Test.</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;7</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;logger.info(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Test&nbsp;use&nbsp;Logging&nbsp;for&nbsp;Servlet</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;8</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;h1&gt;Success&lt;h1&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;9</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;out.flush();<BR></SPAN><SPAN style="COLOR: #008080">10</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;out.close();<BR></SPAN><SPAN style="COLOR: #008080">11</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">12</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">13</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV>
<P><BR>JSP temp.jsp中：<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"><SPAN style="COLOR: #008080">1</SPAN><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;%</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">2</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;response.setContentType(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">text/html</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">3</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;Logger&nbsp;logger&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Logger.getLogger(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">temp.jsp</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">4</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;logger.info(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Test&nbsp;use&nbsp;Logging&nbsp;for&nbsp;JSP</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">5</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;h1&gt;Success&lt;h1&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">6</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">%&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">7</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV>
<P><BR>这样在%TOMCAT_HOME%\bin目录下会产生log4j.log的文件，这就是日志文件。</P><img src ="http://www.blogjava.net/qiyadeng/aggbug/13834.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-09-23 14:16 <a href="http://www.blogjava.net/qiyadeng/articles/13834.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在应用程序中使用log4j</title><link>http://www.blogjava.net/qiyadeng/articles/13819.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Fri, 23 Sep 2005 03:15:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/13819.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/13819.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/13819.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/13819.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/13819.html</trackback:ping><description><![CDATA[<P>1、在应用程序中使用log4j<BR>2、把log4j-*.*jar放入CLASSPATH变量中<BR>编辑如下简单java文件：<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"><SPAN style="COLOR: #008080">&nbsp;1</SPAN><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">package</SPAN><SPAN style="COLOR: #000000">&nbsp;logging;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;2</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;org.apache.log4j.Logger;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;3</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;org.apache.log4j.PropertyConfigurator;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;4</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;5</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_119_403_Open_Image onclick="this.style.display='none'; Codehighlighter1_119_403_Open_Text.style.display='none'; Codehighlighter1_119_403_Closed_Image.style.display='inline'; Codehighlighter1_119_403_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_119_403_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_119_403_Closed_Text.style.display='none'; Codehighlighter1_119_403_Open_Image.style.display='inline'; Codehighlighter1_119_403_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;TestLog4j&nbsp;</SPAN><SPAN id=Codehighlighter1_119_403_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_119_403_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;6</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;7</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</SPAN><SPAN style="COLOR: #0000ff">static</SPAN><SPAN style="COLOR: #000000">&nbsp;Logger&nbsp;logger&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Logger.getLogger(TestLog4j.</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;8</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;9</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_222_401_Open_Image onclick="this.style.display='none'; Codehighlighter1_222_401_Open_Text.style.display='none'; Codehighlighter1_222_401_Closed_Image.style.display='inline'; Codehighlighter1_222_401_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_222_401_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_222_401_Closed_Text.style.display='none'; Codehighlighter1_222_401_Open_Image.style.display='inline'; Codehighlighter1_222_401_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&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">void</SPAN><SPAN style="COLOR: #000000">&nbsp;main(String&nbsp;args[])</SPAN><SPAN id=Codehighlighter1_222_401_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_222_401_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">10</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;PropertyConfigurator.configure(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">log4j.properties</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">11</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;logger.info(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Hello&nbsp;World</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">12</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;logger.error(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Hello&nbsp;World</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">13</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;logger.warn(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Hello&nbsp;World</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">14</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;logger.debug(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Hello&nbsp;World</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">15</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">16</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">17</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">18</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV>
<P><BR>新建一个配置文件log4j.properties：<PRE class=code><BR>log4j.rootLogger=WARN, stdout, R<BR>log4j.appender.stdout=org.apache.log4j.ConsoleAppender<BR>log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<BR># Pattern to output the caller's file name and line number.<BR>#log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n<BR># Print the date in ISO 8601 format<BR>log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n<BR>log4j.appender.R=org.apache.log4j.RollingFileAppender<BR>log4j.appender.R.File=example.log<BR>log4j.appender.R.MaxFileSize=100KB<BR># Keep one backup file<BR>log4j.appender.R.MaxBackupIndex=1<BR>log4j.appender.R.layout=org.apache.log4j.PatternLayout<BR>log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n<BR># Print only messages of level WARN or above in the package com.foo.<BR>log4j.logger.com.foo=WARN<P></P></PRE>
<P>编译并运行TestLog4j会在目录下生成一个example.log的文件，屏幕也会输出信息，这证明已经你已经成功了第一步。<BR>下面解释下这些配置文件<BR><BR>log4j.rootLogger = [ level ], appendName1, appendName2, …appendNameN。同一个记录器可有多个输出端。<BR>PS：level的级别（此级别可以自定义，系统默认提供了以下级别）<BR>debug//调试信息<BR>info//一般信息<BR>warn//警告信息<BR>error//错误信息<BR>fatal//致命错误信息<BR>上面列出的就是所谓log4j的输出级别，log4j建议只使用4个级别，它们从上到下分别为ERROR、WARN、INFO、DEBUG，假设你定义的级别是info，那么error和warn的日志可以显示而比他低的debug信息就不显示了。 <BR>log4j.appender.appenderName = fully.qualified.name.of.appender.class。log4j提供了以下几种常用的输出目的地：<BR>org.apache.log4j.ConsoleAppender，将日志信息输出到控制台<BR>org.apache.log4j.FileAppender，将日志信息输出到一个文件<BR>org.apache.log4j.DailyRollingFileAppender，将日志信息输出到一个，并且每天输出到一个新的日志文件<BR>org.apache.log4j.RollingFileAppender，将日志信息输出到一个文件，通过指定文件的的尺寸，当文件大小到达指定尺寸的时候会自动把文件改名，如名为example.log的文件会改名为 example.log.1，同时产生一个新的example.log文件。如果新的文件再次达到指定尺寸，又会自动把文件改名为 example.log.2，同时产生一个example.log文件。依此类推，直到example.log. MaxBackupIndex， MaxBackupIndex的值可在配置文件中定义。<BR>org.apache.log4j.WriterAppender，将日志信息以流格式发送到任意指定的地方。<BR>org.apache.log4j.jdbc.JDBCAppender，通过JDBC把日志信息输出到数据库中。<BR><BR>Log4j提供了一下几种布局：<BR>org.apache.log4j.HTMLLayout，以HTML表格形式布局<BR>org.apache.log4j.PatternLayout，可以灵活地指定布局模式<BR>org.apache.log4j.SimpleLayout，包含日志信息的级别和信息字符串<BR><BR>定义一个PatternLayout布局的语句为：<BR>log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<BR>log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1} - %m%n<BR>PS：ConversionPattern参数的格式含义<BR>格式名 含义<BR>%c 输出日志信息所属的类的全名<BR>%d 输出日志时间点的日期或时间，默认格式为ISO8601，也可以在其后指定格式，比如：%d{yyy-MM-dd HH:mm:ss }，输出类似：2002-10-18- 22：10：28<BR>%f 输出日志信息所属的类的类名<BR>%l 输出日志事件的发生位置，即输出日志信息的语句处于它所在的类的第几行<BR>%m 输出代码中指定的信息，如log(message)中的message<BR>%n 输出一个回车换行符，Windows平台为“\r\n”，Unix平台为“\n”<BR>%p 输出优先级，即DEBUG，INFO，WARN，ERROR，FATAL。如果是调用debug()输出的，则为DEBUG，依此类推<BR>%r 输出自应用启动到输出该日志信息所耗费的毫秒数<BR>%t 输出产生该日志事件的线程名<BR><BR>另外很好的学习笔记：<BR><A href="http://www.sentom.net/list.asp?id=59">http://www.sentom.net/list.asp?id=59</A><BR><A href="http://www.sentom.net/list.asp?id=60">http://www.sentom.net/list.asp?id=60</A><BR><A href="http://www.sentom.net/list.asp?id=61">http://www.sentom.net/list.asp?id=61</A></P><img src ="http://www.blogjava.net/qiyadeng/aggbug/13819.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-09-23 11:15 <a href="http://www.blogjava.net/qiyadeng/articles/13819.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用java写个MD5加密的类</title><link>http://www.blogjava.net/qiyadeng/articles/13578.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Tue, 20 Sep 2005 13:24:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/13578.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/13578.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/13578.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/13578.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/13578.html</trackback:ping><description><![CDATA[<p></p><p>由于一个应用，我需要一个MD5算法加密数据，我查看了网上一些资料，发现其他的语言都是要自己实现的，但是Java就很简单，因为java中的类已经处理好了，而且还可以选其他的加密算法，如SHA，下面就给一个例子</p><pre class="code"><p></p><p>/*<br/>&nbsp;* Created on 2005-5-21<br/>&nbsp;*<br/>&nbsp;* TODO To change the template for this generated file go to<br/>&nbsp;* Window - Preferences - Java - Code Style - Code Templates<br/>&nbsp;*/<br/>package com.merrylin.util;</p><p>import java.security.MessageDigest;<br/>import java.security.NoSuchAlgorithmException;</p><p>/**<br/>&nbsp;* @author Administrator<br/>&nbsp;*<br/>&nbsp;* TODO To change the template for this generated type comment go to<br/>&nbsp;* Window - Preferences - Java - Code Style - Code Templates<br/>&nbsp;*/<br/>public class MD5Class {</p><p>&nbsp;public static String MD5Encrypt(String inStr) {<br/>&nbsp;&nbsp;MessageDigest md = null;<br/>&nbsp;&nbsp;String outStr = null;</p><p>&nbsp;&nbsp;try {<br/>&nbsp;&nbsp;&nbsp;md = MessageDigest.getInstance(&quot;MD5&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //可以选中其他的算法如SHA<br/>&nbsp;&nbsp;&nbsp;byte[] digest = md.digest(inStr.getBytes());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //返回的是byet[]，要转化为String存储比较方便<br/>&nbsp;&nbsp;&nbsp;outStr = bytetoString(digest);<br/>&nbsp;&nbsp;} catch (NoSuchAlgorithmException nsae) {<br/>&nbsp;&nbsp;&nbsp;nsae.printStackTrace();<br/>&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;return outStr;<br/>&nbsp;}</p><p>&nbsp;public static String bytetoString(byte[] digest) {<br/>&nbsp;&nbsp;String str = &quot;&quot;;<br/>&nbsp;&nbsp;String tempStr = &quot;&quot;;</p><p>&nbsp;&nbsp;for (int i = 1; i &lt; digest.length; i++) {<br/>&nbsp;&nbsp;&nbsp;tempStr = (Integer.toHexString(digest[i] &amp; 0xff));<br/>&nbsp;&nbsp;&nbsp;if (tempStr.length() == 1) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;str = str + &quot;0&quot; + tempStr;<br/>&nbsp;&nbsp;&nbsp;} else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;str = str + tempStr;<br/>&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;return str.toLowerCase();<br/>&nbsp;}</p></pre><p></p><p>}</p><p>简单吧，如果你只是要应用，就可以不知道MD5的算法了，但是要想知道更多，可以参看网上的源码或是<a href="http://www.donews.net/qiyadeng/archive/2005/05/26/399340.aspx"><font color="#000000">http://www.donews.net/qiyadeng/archive/2005/05/26/399340.aspx</font></a><font color="#000000">。但是注意MD5加密算法，破解还是很困难，虽然报道称山东大学的王小云教授好像是已经寻找到了破解的方法。</font></p><img src ="http://www.blogjava.net/qiyadeng/aggbug/13578.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-09-20 21:24 <a href="http://www.blogjava.net/qiyadeng/articles/13578.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBoss配置Mysql连接池</title><link>http://www.blogjava.net/qiyadeng/articles/13577.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Tue, 20 Sep 2005 13:23:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/13577.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/13577.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/13577.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/13577.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/13577.html</trackback:ping><description><![CDATA[<div>对于jsp的web程序来说，配置连接池是必不可少的。JBoss配置MySql的连接池，可以查看官方文档，地址为：<a href="http://docs.jboss.org/jbossas/getting_started/v4/html/db.html">http://docs.jboss.org/jbossas/getting_started/v4/html/db.html</a>。</div><div>我这里的配置分为以下几步：</div><div>第一步：从jboss-4.0.2\docs\examples\jca目录下的mysql-ds.xml复制文件到D:\jboss-4.0.2\server\default\deploy目录下并编辑如下：</div><pre class="code"><div>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</div><div>&lt;!-- $Id: mysql-ds.xml,v 1.3.2.1 2004/12/01 11:46:00 schrouf Exp $ --&gt;<br/>&lt;!--&nbsp; Datasource config for MySQL using 3.0.9 available from:<br/><a href="http://www.mysql.com/downloads/api-jdbc-stable.html">http://www.mysql.com/downloads/api-jdbc-stable.html</a><br/>--&gt;</div><div>&lt;datasources&gt;<br/>&nbsp; &lt;local-tx-datasource&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;jndi-name&gt;MySqlDS&lt;/jndi-name&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;connection-url&gt;jdbc:mysql://localhost:3306/test&lt;/connection-url&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;driver-class&gt;com.mysql.jdbc.Driver&lt;/driver-class&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;user-name&gt;root&lt;/user-name&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;password&gt;root&lt;/password&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;exception-sorter-class-name&gt;org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter&lt;/exception-sorter-class-name&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;!-- sql to call when connection is created<br/>&nbsp;&nbsp;&nbsp; &lt;new-connection-sql&gt;some arbitrary sql&lt;/new-connection-sql&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;!-- sql to call on an existing pooled connection when it is obtained from pool <br/>&nbsp;&nbsp;&nbsp; &lt;check-valid-connection-sql&gt;some arbitrary sql&lt;/check-valid-connection-sql&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;</div><div>&nbsp;&nbsp;&nbsp; &lt;!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) --&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;metadata&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;type-mapping&gt;mySQL&lt;/type-mapping&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/metadata&gt;<br/>&nbsp; &lt;/local-tx-datasource&gt;<br/>&lt;/datasources&gt;</div></pre><div>第二步：编辑jboss-4.0.2\server\default\conf下的三个文件：standardjbosscmp-jdbc.xml，standardjaws.xml，login-config.xml</div><div>standardjbosscmp-jdbc.xml修改部分：</div><pre class="code"><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;datasource&gt;java:/MySqltDS&lt;/datasource&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;datasource-mapping&gt;mySQL&lt;/datasource-mapping&gt;</div></pre><div>standardjaws.xml修改部分：</div><pre class="code"><div>&nbsp;&nbsp; &lt;datasource&gt;java:/MySqltDS&lt;/datasource&gt;<br/>&nbsp;&nbsp; &lt;type-mapping&gt;mySQL&lt;/type-mapping&gt;</div></pre><div>login-config.xml修改部分：（可以添加这一段，复制一段进行修改）</div><pre class="code"><div>&nbsp;&nbsp;&nbsp; &lt;application-policy name = &quot;MySqlDbRealm&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;authentication&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;login-module code = &quot;org.jboss.resource.security.ConfiguredIdentityLoginModule&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; flag = &quot;required&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;module-option name = &quot;principal&quot;&gt;test&lt;/module-option&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;module-option name = &quot;userName&quot;&gt;root&lt;/module-option&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;module-option name = &quot;password&quot;&gt;root&lt;/module-option&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;module-option name = &quot;managedConnectionFactoryName&quot;&gt;jboss.jca:service=LocalTxCM,name=MySqlDS&lt;/module-option&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/login-module&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/authentication&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/application-policy&gt;</div></pre><div></div><div>第三步：重启jboss没有出现异常，就会有如下显示，证明配置正确：</div><div><IMG height=20 alt=pool.jpg src="http://www.blogjava.net/images/blogjava_net/qiyadeng/j2ee/pool.jpg" width=777 border=0></div><div>第四步：如果你还步放心，现在写个servlet试试吧：</div><pre class="code"><div>&nbsp;&nbsp;response.setContentType(&quot;text/html;charset=gb2312&quot;);<br/>&nbsp;&nbsp;PrintWriter out = response.getWriter();<br/>&nbsp;&nbsp;try {<br/>&nbsp;&nbsp;&nbsp;// Put your code here<br/>&nbsp;&nbsp;&nbsp;Context cx&nbsp; = new InitialContext();<br/>&nbsp;&nbsp;&nbsp;Object obj = cx.lookup(&quot;java:/MySqlDS&quot;);<br/>&nbsp;&nbsp;&nbsp;DataSource ds = (DataSource)obj;<br/>&nbsp;&nbsp;&nbsp;Connection connect = ds.getConnection();<br/>&nbsp;&nbsp;&nbsp;Statement stmt = connect.createStatement();<br/>&nbsp;&nbsp;&nbsp;ResultSet rs = stmt.executeQuery(&quot;select * from customers&quot;);<br/>&nbsp;&nbsp;&nbsp;while(rs.next()){<br/>&nbsp;&nbsp;&nbsp;&nbsp;out.println(rs.getString(&quot;name&quot;));<br/>&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;} catch (NamingException e) {<br/>&nbsp;&nbsp;&nbsp;e.printStackTrace();<br/>&nbsp;&nbsp;} catch(SQLException e1){<br/>&nbsp;&nbsp;&nbsp;e1.printStackTrace();<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;out.flush();<br/>&nbsp;&nbsp;out.close();</div></pre><img src ="http://www.blogjava.net/qiyadeng/aggbug/13577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-09-20 21:23 <a href="http://www.blogjava.net/qiyadeng/articles/13577.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>native2ascii--java国际化工具</title><link>http://www.blogjava.net/qiyadeng/articles/13576.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Tue, 20 Sep 2005 13:21:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/13576.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/13576.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/13576.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/13576.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/13576.html</trackback:ping><description><![CDATA[<BR>native2ascii虽然是个很小的工具,但是用处不小.在我们这些非英语国家特别有用,如一些Strut和JSF的配置文件,如果要使用中文就必须要用到该工具.<BR>如下面这样,使用起来很方便.<BR><PRE class=code>[root@localhost root]# native2ascii<BR>你好世界!<BR>\u4f60\u597d\u4e16\u754c!<BR></PRE><BR>但是我好像发现点问题,我用eclipse(MyEclipse)编辑完的文件,用中文写的,就没有办法来转换,不知道什么原因.<BR>当然native2ascii还不至这些用处,就是在反编译别人的程序中,也可以把那些Unicode转化成中文.<BR><img src ="http://www.blogjava.net/qiyadeng/aggbug/13576.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-09-20 21:21 <a href="http://www.blogjava.net/qiyadeng/articles/13576.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Servlet和JSP中访问web.xml设置的初始参数</title><link>http://www.blogjava.net/qiyadeng/articles/13575.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Tue, 20 Sep 2005 13:20:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/13575.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/13575.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/13575.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/13575.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/13575.html</trackback:ping><description><![CDATA[<p>在JSP和Servlet中有时候需要读取web.xml的初始化参数，比如可以用于设置JNDI的数据源的名字。下面简单介绍下在JSP和Servlet中怎么读取web.xml的初始化参数。</p><p>一、在Servlet中读取：</p><p>在Servlet中一般可以用ServletConfig对象的getInitParameter方法去读取指定的参数的值。举个例子：</p><p>新建一个Servlet：ReadInitParameter.java</p><p>并在web.xml中增加如下配置：</p><p></p><pre class="code">&nbsp; &lt;servlet&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;ReadInitParameter&lt;/servlet-name&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;com.test.ReadInitParameter&lt;/servlet-class&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;email&lt;/param-name&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;qiyadeng@haha.com&lt;/param-value&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;name&lt;/param-name&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;qiyadeng&lt;/param-value&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<br/>&nbsp; &lt;/servlet&gt;</pre><br/>&nbsp;&nbsp;&nbsp;&lt;servletclass&gt;com.test.ReadInitParameter&lt;/servlet-class&gt;是servlet的完整路径，包括包名。<p></p><p>配置好了web.xml，现在可以在程序中读取初始化的参数了。在init(ServletConfig config)方法中传递了一个ServletConfig参数，可以这样获取初始化参数：</p><p></p><pre class="code">&nbsp; public void init(ServletConfig config) throws ServletException<br/>&nbsp; {<br/>&nbsp;&nbsp;&nbsp; super.init(config);<br/>&nbsp;&nbsp;&nbsp; String email = config.getInitParameter(&quot;email&quot;);<br/>&nbsp;&nbsp;&nbsp; String name = config.getInitParameter(&quot;name&quot;);<br/>&nbsp; }</pre><br/>在其他的方法中象doGet(),doPost(),service()方法中可以用getServeltConfig()方法得到一个ServetConfig对象，在利用该对象的getInitParameter()方法取到对应的初始化参数。<p></p><p></p><pre class="code"><strong>&nbsp; </strong>String&nbsp;email&nbsp;&nbsp; = getServletConfig().getInitParameter<strong>(&quot;</strong>email<b>&quot;);<br/>&nbsp; </b>String name= getServletConfig().getInitParameter<strong>(&quot;</strong>name<strong>&quot;);</strong></pre><p></p><p>二、在JSP中读取：</p><p>在JSP中读取的方式和Servlet中的doGet(),doPost(),Service()的方法一样，都是由ServletConfig对象来读取的。</p><p></p><pre class="code">&nbsp; &lt;%<br/>&nbsp;&nbsp;&nbsp; String zhutou = getServletConfig().getInitParameter(&quot;zhutou&quot;);<br/>&nbsp;&nbsp;&nbsp; String zhutouname = getServletConfig().getInitParameter(&quot;zhutouname&quot;);</pre><br/>&nbsp; %&gt;<p></p><p>但是，在web.xml的配置需要注意一下,新增如下：</p><p></p><pre class="code">&nbsp; &lt;servlet&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;ReadInitParam&lt;/servlet-name&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;jsp-file&gt;ReadInitParam.jsp&lt;/jsp-file&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;zhutou&lt;/param-name&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;zhutou@hotmail.com&lt;/param-value&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;zhutouname&lt;/param-name&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;zhutou&lt;/param-value&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<br/>&nbsp; &lt;/servlet&gt;</pre><p></p><p>在servlet-mapping中也要配置好：</p><p></p><pre class="code">&nbsp; &lt;servlet-mapping&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;ReadInitParam&lt;/servlet-name&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;ReadInitParam.jsp&lt;/url-pattern&gt;<br/>&nbsp; &lt;/servlet-mapping&gt;</pre><p></p><p>上面的ReadInitParam.jsp出现的标签需要jsp文件的全部路径。</p><img src ="http://www.blogjava.net/qiyadeng/aggbug/13575.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-09-20 21:20 <a href="http://www.blogjava.net/qiyadeng/articles/13575.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>web-app_2_2.xml(仅供学习方便) </title><link>http://www.blogjava.net/qiyadeng/articles/13570.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Tue, 20 Sep 2005 12:59:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/13570.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/13570.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/13570.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/13570.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/13570.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &lt;?xml&nbsp;version="1.0"&nbsp;encoding="ISO-8859-1"?&gt;&lt;!--Copyright&nbsp;1999&nbsp;Sun&nbsp;Microsystems,&nbsp;Inc.&nbsp;901&nbsp;San&nbsp;Antonio&nbsp;Road,Palo&nbsp;Alto,&nbsp;CA&nbsp;&nbsp;...&nbsp;&nbsp;<a href='http://www.blogjava.net/qiyadeng/articles/13570.html'>阅读全文</a><img src ="http://www.blogjava.net/qiyadeng/aggbug/13570.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-09-20 20:59 <a href="http://www.blogjava.net/qiyadeng/articles/13570.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts国际化步骤</title><link>http://www.blogjava.net/qiyadeng/articles/13569.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Tue, 20 Sep 2005 12:56:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/13569.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/13569.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/13569.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/13569.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/13569.html</trackback:ping><description><![CDATA[<p>对Struts实行国际化<br/>(1)设置字符编码<br/>为了保证在同一JSP页面能支持多种语言，可以将所有JSP页面的字符编码统一设置为&quot;UTF-8&quot;<br/></p><pre class="code">&lt;%@ page contentType=&quot;text/html;charset=UTF-8&quot; language=&quot;java&quot;%&gt;</pre><br/>(2)对文本，按钮，图片国际化<br/>(3)创建英文，中文资源文件<br/>(4)对中文资源文件进行编码转换<br/>用JDK中的native2ascii工具对中文资源进行转换<br/><pre class="code">native2ascii -encoding gb2312 applicaion_CN.properties application_CN.properties</pre><br/>(5)采用Servlet过滤器设置请求数据的字符编码<br/>添加如下类SetCharacterEncodingFilter:<br/><pre class="code">package com.yourcompany.struts;<p></p><p>import java.io.IOException;</p><p>import javax.servlet.Filter;<br/>import javax.servlet.FilterChain;<br/>import javax.servlet.FilterConfig;<br/>import javax.servlet.ServletException;<br/>import javax.servlet.ServletRequest;<br/>import javax.servlet.ServletResponse;</p><p>public class SetCharacterEncodingFilter implements Filter {</p><p>&nbsp;public void init(FilterConfig arg0) throws ServletException {<br/>&nbsp;}</p><p>&nbsp;public void doFilter(ServletRequest request, ServletResponse response,<br/>&nbsp;&nbsp;&nbsp;FilterChain chain) throws IOException, ServletException {<br/>&nbsp;&nbsp;request.setCharacterEncoding(&quot;UTF-8&quot;);<br/>&nbsp;&nbsp;chain.doFilter(request,response);</p><p>&nbsp;}</p><p>&nbsp;public void destroy() {<br/>&nbsp;}</p><p>}</p></pre><br/>并在web.xml中添加如下设置：<br/>&nbsp;&nbsp;<pre class="code"> &lt;filter&gt;<br/>&nbsp;&nbsp; &nbsp;&lt;filter-name&gt;Character Encoding&lt;/filter-name&gt;<br/>&nbsp;&nbsp; &nbsp;&lt;filter-class&gt;com.yourcompany.struts.SetCharacterEncodingFilter&lt;/filter-class&gt;<br/>&nbsp;&nbsp; &lt;/filter&gt;<br/>&nbsp;&nbsp; &lt;filter-mapping&gt;<br/>&nbsp;&nbsp; &nbsp;&lt;filter-name&gt;Character Encoding&lt;/filter-name&gt;<br/>&nbsp;&nbsp; &nbsp;&lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br/>&nbsp;&nbsp; &lt;/filter-mapping&gt;</pre><p></p><p><br/></p><img src ="http://www.blogjava.net/qiyadeng/aggbug/13569.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-09-20 20:56 <a href="http://www.blogjava.net/qiyadeng/articles/13569.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>