﻿<?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-No.3学习园地</title><link>http://www.blogjava.net/xXx324423/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 07:54:06 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 07:54:06 GMT</pubDate><ttl>60</ttl><item><title>验证邮箱格式的正则表达式(Struts)</title><link>http://www.blogjava.net/xXx324423/archive/2006/12/28/90457.html</link><dc:creator>鹭</dc:creator><author>鹭</author><pubDate>Thu, 28 Dec 2006 03:58:00 GMT</pubDate><guid>http://www.blogjava.net/xXx324423/archive/2006/12/28/90457.html</guid><wfw:comment>http://www.blogjava.net/xXx324423/comments/90457.html</wfw:comment><comments>http://www.blogjava.net/xXx324423/archive/2006/12/28/90457.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xXx324423/comments/commentRss/90457.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xXx324423/services/trackbacks/90457.html</trackback:ping><description><![CDATA[ public ActionErrors validate(ActionMapping actionMapping,<br />                                 HttpServletRequest httpServletRequest) {<br />        String style =<br />                "^[a-zA-Z][a-zA-Z0-9._-]*@([a-zA-Z0-9-_]+\\.)+(com|gov|net|com\\.cn|edu\\.cn)$";<br />        Pattern ptt = Pattern.compile(style);<br />        Matcher mch=ptt.matcher(email);<br />        ActionErrors errors = new ActionErrors();<br />        if ((name == null || name.equals(""))) {<br />            ActionError error = new ActionError("error.name");<br />            errors.add("name", error);<br />        } else <br />        if (!mch.matches()) {<br />            ActionError error = new ActionError("error.email");<br />            errors.add("email", error);<br />        }<br />        return errors;<br />    }<img src ="http://www.blogjava.net/xXx324423/aggbug/90457.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xXx324423/" target="_blank">鹭</a> 2006-12-28 11:58 <a href="http://www.blogjava.net/xXx324423/archive/2006/12/28/90457.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简介 RequestProcessor</title><link>http://www.blogjava.net/xXx324423/archive/2006/12/28/90440.html</link><dc:creator>鹭</dc:creator><author>鹭</author><pubDate>Thu, 28 Dec 2006 02:24:00 GMT</pubDate><guid>http://www.blogjava.net/xXx324423/archive/2006/12/28/90440.html</guid><wfw:comment>http://www.blogjava.net/xXx324423/comments/90440.html</wfw:comment><comments>http://www.blogjava.net/xXx324423/archive/2006/12/28/90440.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xXx324423/comments/commentRss/90440.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xXx324423/services/trackbacks/90440.html</trackback:ping><description><![CDATA[在Struts中，担任 MVC / Model 2 中Controller角色的是ActionServlet，所有的请求都必须先通过它，然而在Struts 1.1後，有关於请求的处理大部份已交由RequestProcessor，当ActionServlet收到GET或POST的请求，其doGet() 或doPost()会呼叫process()方法来处理请求：<br /><div style="MARGIN-LEFT: 40px"><span style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace">protected void process(HttpServletRequest request, </span><br style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace" /><span style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace">                        HttpServletResponse response) </span><br style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace" /><span style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace">                   throws IOException, ServletException { </span><br style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace" /><span style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace">    RequestUtils.selectApplication(request, </span><br style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace" /><span style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace">                                   getServletContext());</span><br style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace" /><span style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace">    getApplicationConfig(</span><br style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace" /><span style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace">         request).getProcessor().process(request, response); </span><br style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace" /><span style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace">}</span><br /></div> <br />RequestUtils是个工具类，ActionServlet呼叫其selectApplication()方法，藉由 request.getServletPath()来取得请求路径以选择应用程式模块来处理请求，之後从ApplicationConfig物件取得 RequestProcessor物件，将使用者的请求委托它来进行处理。<br /><br />通常是将ActionServlet当作黑盒子，您只要使用它，然而您也可以继承ActionServlet来定义自己的控制器，但由於在Struts 1.1中大部份的请求已经委托RequestProcessor来处理，继承ActionServlet来定义自己的控制器请求处理意义已经不大，通常的 目的是重新定义ActionServlet的init()方法，增加自己的初始化动作：<br /><div style="MARGIN-LEFT: 40px"><span style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace">public class CustomActionServlet extends ActionServlet { </span><br style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace" /><span style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace">    public void init() throws ServletException { </span><br style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace" /><span style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace">        super.init(); </span><br style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace" /><br style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace" /><span style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace">        // 增加自己的初始化动作 </span><br style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace" /><span style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace">        .... </span><br style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace" /><span style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace">    } </span><br style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace" /><span style="FONT-WEIGHT: bold; FONT-FAMILY: Courier New,Courier,monospace">}</span><br /></div> <br />预设的RequestProcessor物件是org.apache.struts.action.RequestProcessor，您可以藉由观看 process()方法的原始码来了解它作了哪些事情：<br /><div style="MARGIN-LEFT: 40px; FONT-FAMILY: Courier New,Courier,monospace"><span style="FONT-WEIGHT: bold">public void process(HttpServletRequest request, </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">                     HttpServletResponse response) </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">                  throws IOException, ServletException {</span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // 处理 contentType 为 multipart/form-data 的 POST 请求 </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    request = processMultipart(request); </span><br style="FONT-WEIGHT: bold" /><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // 取得 URI 路径 </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    String path = processPath(request, response); </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    if(path == null) </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">        return; </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    ..... </span><br style="FONT-WEIGHT: bold" /><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // </span><span style="FONT-WEIGHT: 700">确定客户端的位置</span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // 是否要将一个Locale物件储存在 session 中 </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // 配合 &lt;controller&gt; 的 locale 属性使用 </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    processLocale(request, response); </span><br style="FONT-WEIGHT: bold" /><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // 确定contentType，预设是 text/html </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    processContent(request, response); </span><br style="FONT-WEIGHT: bold" /><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // 判断&lt;controller&gt;属性nocache是否被确定 </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // 若是，在 response 中加入防止快取的header </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    processNoCache(request, response); </span><br style="FONT-WEIGHT: bold" /><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // 前置处理，预设返回 true</span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    //子类可以重新定义它以决定要不要继续处理 </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    if(!processPreProcess(request, response)) { </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">        return; </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    } </span><br style="FONT-WEIGHT: bold" /><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // 从URI路径确定ActionMapping </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    ActionMapping mapping = </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">                   processMapping(request, response, path); </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    if(mapping == null) { </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">        return; </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    } </span><br style="FONT-WEIGHT: bold" /><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    .... </span><br style="FONT-WEIGHT: bold" /><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // 处理ActionForm</span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // 如果没有就新增一个，之後一直使用它 </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    ActionForm form = </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">            processActionForm(request, response, mapping); </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // 将表单的栏位值填入ActionForm </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    processPopulate(request, response, form, mapping); </span><br style="FONT-WEIGHT: bold" /><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // 判断是否执行ActionForm的validate()方法 </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    if(!processValidate(request, response, form, mapping)) { </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">        return; </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    } </span><br style="FONT-WEIGHT: bold" /><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // 判断 标签的 forward 或 include 标签<br />// 是不是被设定，这两个标签在设定一个路径<br />// 其与 type 属性是互斥的，当设定其中一个属性时<br />// 调用 RequestDispatcher 的 forward() 或 include()<br />// 其作用与设定ForwardAction或IncludeAction相同 <br />// 直接绕送而不再使用Action物件进行接下来的处理 </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    if(!processForward(request, response, mapping)) { </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">        return; </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    } </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    if(processInclude(request, response, mapping)) { </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">        return; </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    } </span><br style="FONT-WEIGHT: bold" /><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    // 处理Action，如果没有就生成一个，之後一直使用它 </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    Action action = </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">            processActionCreate(request, response, mapping); </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    if(action == null) { </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">        return; </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    } </span><br style="FONT-WEIGHT: bold" /><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    </span><span style="FONT-WEIGHT: 700">// 呼叫Action的execute()或perform()方法<br />// 并返回ActionForward </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    ActionForward forward = </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">                    processActionPerform(request, </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">                                         response,</span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">                                         action, </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">                                         for, mapping); </span><br style="FONT-WEIGHT: bold" /><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    </span><span style="FONT-WEIGHT: 700">// 处理ActionForward </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">    processActionForward(request, response, forward); </span><br style="FONT-WEIGHT: bold" /><span style="FONT-WEIGHT: bold">}</span><br /></div><span style="FONT-FAMILY: Courier New,Courier,monospace"> </span><br /><br />您可以继承RequestProcessor，并改写其中的processXXXXX()方法来自定义请求的处理方式，如果您要使用自己的 RequestProcessor，要在struts-config.xml中使用&lt;controller&gt;标签来定义，例如：<br /><ul><li>struts-config.xml </li></ul><pre>...<br /> &lt;controller <br />    contentType="text/html;charset=Big5" <br />    locale="true" <br />    nocache="true"<br />    processorClass="caterpillar.CustomRequestProcessor"/&gt; <br />...</pre><span class="postbody"></span><br />在Struts 1.1後，新增了&lt;controller&gt;标签，它可以用於指定ActionServlet的一些参数，在Struts 1.1之前，这些参数是在&lt;init-params&gt;中加以指定，使用&lt;controller&gt;标签，应用程式中不同的模组也可 以指定各自的参数给ActionServlet。 <br /><img src ="http://www.blogjava.net/xXx324423/aggbug/90440.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xXx324423/" target="_blank">鹭</a> 2006-12-28 10:24 <a href="http://www.blogjava.net/xXx324423/archive/2006/12/28/90440.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>之参数传递</title><link>http://www.blogjava.net/xXx324423/archive/2006/12/27/90297.html</link><dc:creator>鹭</dc:creator><author>鹭</author><pubDate>Wed, 27 Dec 2006 06:35:00 GMT</pubDate><guid>http://www.blogjava.net/xXx324423/archive/2006/12/27/90297.html</guid><wfw:comment>http://www.blogjava.net/xXx324423/comments/90297.html</wfw:comment><comments>http://www.blogjava.net/xXx324423/archive/2006/12/27/90297.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xXx324423/comments/commentRss/90297.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xXx324423/services/trackbacks/90297.html</trackback:ping><description><![CDATA[
		<p>html:link有很多参数选项，如关键有：<br />action --指定点击链接后，进入的*.do动作action的值不需要跟后缀，struts自动补上.do<br />page  -- 跟action一样的功能，不过这个不会自动补.do，也就是说可以链接其他类型的动作，如html,jsp,php等</p>
		<p>paramId--指定参数的key名称，如要输出<a href="http://abc.com/ss?kk=abc">http://abc.com/ss?kk=abc</a>,则paramId="kk"<br />paramName -- 能识别作用域(任意)内的Object的名称。<br />paramProperty--paramName的输出属性，paramId,paramName ,paramProperty可以组成单一参数传递的link，如&lt;html:link  action="/PRC301E1"  paramId="prc_no" paramName="element" paramProperty="fjPrcNo"&gt;，当element.getfjPrcNo()的值为prc1时，则输出为 <a href="http://xxoo.com/PRC301E1.do?prc_no=prc1">http://xxoo.com/PRC301E1.do?prc_no=prc1</a></p>
		<p>name--为HashMap属性的对象，用此属性，可以进行多参数输出。例：</p>
		<p>CODE:<br />[Copy to clipboard]<br />     &lt;%<br />        HashMap map=new HashMap();<br />       map.put("check","22");<br />       map.put("name","abc");<br />       pageContext.setAttribute("map",map); //因为所有tag的取值只会搜索作用域(page/request/session/application)，而不会识别当前的实例，所以只有存入。<br />      %&gt;<br />      &lt;html:link action="/PRC301E1"  name="map"&gt;<br />        多参数输出<br />      &lt;/html:link&gt;</p>
		<p>-----------------------------------------------------------------------------------------</p>
		<p>在struts标签&lt;html:link&gt;的page属性指定的URI后面传递参数可以有几种方式： </p>
		<p>1.若明确参数名和参数值则直接在URI后输出，<br />如：&lt;html:link page="/test.do?action=add"&gt;add&lt;/html:link&gt;</p>
		<p>2.对于参数值不确定的，paramName和paramProperty来输出，用paramId属性指定参数名。<br />对于paramName指定的对象应该存在于page、request、session、application其中之一。一般来说，是从Action类传过来的，作为request的属性之一（requst.setAttribute("name",object)）。<br />如果paramName指定的对象是action的ActionForm，则无需使用request.setAttribute方法。<br />例：&lt;html:link page="/test.do" paramId="userid" paramName="uid"&gt;uname&lt;/html:link&gt;<br />若参数值是一个bean对象的属性值（比如ActionForm,或者集合中存放的对象）则：<br />&lt;html:link page="/test.do" paramId="userid" paramName="user" paramProperty="uid"&gt;uname&lt;/html:link&gt;</p>
		<p>3.若两个参数，一个确定一个不确定，则是以上两种方法的结合，即：<br />&lt;html:link page="/test.do?action=modify" paramId="userid" paramName="uid"&gt;modify&lt;/html:link&gt;</p>
		<p>4.对于多个参数的问题，可以使用一个HashMap集合对象来存放所有的参数名及对应的参数值的方式，paramName属性值指定为该HashMap集合对象即可。<br />举例：<br />&lt;%<br />//代码理想的位置应该是在action中<br />//可以在jsp页面测试<br />  java.util.HashMap pms = new java.util.HashMap();<br />  pms.put("code", "001002");<br />  pms.put("name", "tester");<br />  pms.put("alias", new String[]{"matin","jack"});<br />  request.setAttribute("params", pms);<br />%&gt;<br />&lt;html:link action="/test.do" name="params" &gt;test&lt;/html:link&gt;<br />编译后的结果：&lt;a href="/test.do?code=001002&amp;name=tester&amp;alias=matin&amp;alias=jack"&gt;test&lt;/a&gt;<br />这种方式虽然可以解决传多参数的问题，但是实现起来也比较麻烦，特别是对记录集中的数据逐条列出的时候</p>
		<p>5.针对有的网友在&lt;html:link&gt;标签中嵌入使用jsp脚本(scriptlet)的问题，<br />例如:<br />&lt;html:link page="/test.do?code=&lt;%=varible%&gt;"&gt;add&lt;/html:link&gt;，这种写法是错误的，是无法编译的。<br />有的网友认为在struts标签内是不允许使用jsp脚本的，这种说法也不准确。如果前面的写法改成:<br />&lt;html:link page="&lt;%="/test.do?code="+varible%&gt;"&gt;add&lt;/html:link&gt;，就可以被执行，但是要注意URL相对路径的问题。</p>
		<p>虽然在struts标签中嵌入jsp脚本不是真正意义上的struts应用，但是有时在委曲求全的情况下也只能如此了，除非使用自定义标签。比如在form表单中可能需要根据具体数据让某个字段是只读的，就可以用嵌入jsp脚本来实现：<br />&lt;%<br />boolean rdonly=false;<br />if(2==2) rdonly=true;<br />%&gt;<br />&lt;html:text property="userid" readonly="&lt;%=rdonly%&gt;" /&gt; <br /></p>
		<p>6.另外一种比较变态的方法，既不是真正意义上的struts，也不符合xml规范。那就是在&lt;a&gt;标签中用&lt;bean:write&gt;标签输出参数值。<br />如：&lt;a href="test.do?uid=&lt;bean:write name="user" property="userid"/&gt;&amp;name=&lt;bean:write name="user" property="username"/&gt;"&gt;test&lt;/a&gt;</p>
<img src ="http://www.blogjava.net/xXx324423/aggbug/90297.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xXx324423/" target="_blank">鹭</a> 2006-12-27 14:35 <a href="http://www.blogjava.net/xXx324423/archive/2006/12/27/90297.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高人指点后的myeclipse+eclipse+tomcat配置,我做了个备忘</title><link>http://www.blogjava.net/xXx324423/archive/2006/12/26/90006.html</link><dc:creator>鹭</dc:creator><author>鹭</author><pubDate>Mon, 25 Dec 2006 23:36:00 GMT</pubDate><guid>http://www.blogjava.net/xXx324423/archive/2006/12/26/90006.html</guid><wfw:comment>http://www.blogjava.net/xXx324423/comments/90006.html</wfw:comment><comments>http://www.blogjava.net/xXx324423/archive/2006/12/26/90006.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/xXx324423/comments/commentRss/90006.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xXx324423/services/trackbacks/90006.html</trackback:ping><description><![CDATA[  myeclipse+eclipse+tomcat配置
<div>一、安装j2sdk1.4，设定环境变量。 <br />   我的安装目录是 D:\work\j2sdk 。 所以设定环境变量如下：  <br />   操作： 我的电脑(右键) ----&gt; 系统特性----&gt; 高级----&gt; 环境变量:  </div><div>(此处原文有图片,不懂如何设置的朋友可以产看原文)<br />设定环境变量为：<br />   1. (新建)JAVA_HOME: D:\work\j2sdk<br />   2. (新建)CLASSPATH: .;D:\work\j2sdk\lib\tools.jar (注意：点号不能省略，表示当前目录)<br />   3. 编辑PATH的变量值，在后面加上 ;%JAVA_HOME%\bin （注意：要有分号隔开） <br /><br />   到这里，j2sdk安装完毕，用命令简单测试一下: java -version  <br /></div><div>二、安装Tomcat5.0 </div><div>我安装的是jakarta-tomcat-5.0.28，是安装版，同样安装在d:\work目录下，便于管理。<br /></div><div> </div><div>三、安装Eclipse3.1 <br />1、下载地址：<a href="http://www.eclipse.org/downloads/index.php"><font color="#0000ff"><u>http://www.eclipse.org/downloads/index.php</u></font></a> 找到下面的页面<br />直接解压缩到d:\work目录就可以用了   到这里， Eclipse3.1 安装完毕。</div>2、汉化，下在汉化包[Eclipse3.1.1和中文语言包，MyEclipse4.0.3].NLpack1-eclipse-SDK-3.1.1a-win32，解压后把features和plugins这2个目录拷贝到 Eclipse的相应目录下。
<div>一定要先汉化，如果先破解再汉化会出现意想不到的错误。</div><div><div>四、安装 MyEclipse4.1.1 (MyEclipse不是免费的，所以我们先下载一个试用版，再去网上下载一个注册机)  <br />下载版本： MyEclipse Enterprise Workbench 4.1.1 GA for Windows 98/2000/XP (8/29/2005) </div><div> </div><div>下载完成后，开始安装： <br />1. 选择你的eclipse所在目录(根目录 如：D:\work\eclipse)，其它都点下一步，默认安装。</div><div> </div><div>2.安装完毕之后，找到myeclipse的安装目录</div><div> </div><div>3. 将features和plugins这2个目录复制出来。</div><div> </div><div>4. 将第3步复制的features和plugins这2个目录下的文件, 拷贝到 Eclipse的相应目录下。</div><div> </div><div>解释一下上面做的原因： 因为myeclipse是eclipse的插件，所以只要把features和plugins这2个目录的内容拷贝到eclipse的相应目录，eclipse会自动认出这些插件。 <br />到这一步，myeclipse算是安装完毕 </div><div> </div><div>五、破解myeclipse4.1.1 <br />1.去google搜索下载一个注册机。MyEclipse 4.0 以上版本（<a href="/Files/oksonic/MyEclipseKeyGen4.X.rar"><u><font color="#0000ff">http://www.blogjava.net/Files/oksonic/MyEclipseKeyGen4.X.rar</font></u></a>）</div><div>MyEclipse 3.8.x 以上版本（<a href="/Files/oksonic/MyEclipse_key3.x.rar"><u><font color="#0000ff">http://www.blogjava.net/Files/oksonic/MyEclipse_key3.x.rar</font></u></a>）</div><div><br />2.解开注册机,可以看到有三个文件.运行KeyGen.exe. 选择合适的MyEclipse版本随便输入一个名字,然后生成注册码. 把Name和Key都记录下来留着一会使用.</div><div><br />3.运行eclipse.exe, 设定同目录下的workspace</div><div> </div><div>4.这个时候myeclipse插件应该已经被识别出来如果不能识别请在仔细检查上述步骤.并通过goole解决.</div><div> </div><div>5. 点击 Window ----&gt; Preferences ----&gt; Subscription ----&gt; Enter Subscription, 输入注册码，破解myeclipse</div><div> </div><div>到这里，myeclipse破解完毕。 </div></div><img src ="http://www.blogjava.net/xXx324423/aggbug/90006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xXx324423/" target="_blank">鹭</a> 2006-12-26 07:36 <a href="http://www.blogjava.net/xXx324423/archive/2006/12/26/90006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的星座</title><link>http://www.blogjava.net/xXx324423/archive/2006/12/26/90005.html</link><dc:creator>鹭</dc:creator><author>鹭</author><pubDate>Mon, 25 Dec 2006 23:33:00 GMT</pubDate><guid>http://www.blogjava.net/xXx324423/archive/2006/12/26/90005.html</guid><wfw:comment>http://www.blogjava.net/xXx324423/comments/90005.html</wfw:comment><comments>http://www.blogjava.net/xXx324423/archive/2006/12/26/90005.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xXx324423/comments/commentRss/90005.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xXx324423/services/trackbacks/90005.html</trackback:ping><description><![CDATA[
		<h4 class="TextColor1" id="subjcns!F97A3655F5C5217B!122" style="MARGIN-BOTTOM: 0px">我的星座</h4>
		<div id="msgcns!F97A3655F5C5217B!122">
				<div>白羊座的人令人觉得他开朗而热情。即使他内心是有那么点害羞，表面上仍可以很自在、大方。当一头白羊愁眉苦脸时，只会出现在他家里镜子中。他再伤心，就是不会在别人面前摆出苦脸。好强？可以这么说。谁不好强呢？其实白羊座的人仍会向朋友吐苦水，但真正的眼泪，你是看不到的。<p></p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　一群朋友，开开心心的，在阳光下嬉耍，是白羊座最怀念的美好时光。悲郁的人生绝不是白羊座的人所向往的，不幸陷入时，他也会极力设法让自己不要太相信会就这么过一生，他全心希望有一个新生活。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　爱恨分明不吃回头草</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　白羊座的人爱恨分明，爱就是爱，恨就是恨。不过Ａ型白羊，对“恨”这个字眼没多大兴趣，他是不爱就是不爱而已。在爱情上，白羊是相当干脆的，不喜欢拖泥带水，属于行动派，要求立见真章。他们最不能忍受一厢情愿。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　凡是白羊决定不要的东西，绝不会再捡回来，否则他无颜面对自己。不吃回头草，也是白羊座人好强的证据。由于白羊座对爱情具有童话格，要求纯洁、唯一与童稚心的恋情，与旧情人复燃爱曲当然是白羊座不屑的。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　谈恋爱时，白羊座的人是不会骗你的，大可放心。但是他的爱意来得快，去得快。除非你有超强的吸引力，一旦一头白羊陷入不可自拔的情网时，你要抽身，也就很难了。那将会是悲剧的下场。你也得不到好处。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　乐观乃天性不是不悲观</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　白羊座天性乐观，但长大后遭遇到的事了，他们也会悲观到了极点。只不过悲观归悲观，既然不想死，活下去就得乐观点，日子才会有趣些。因此白羊座的人只不过是不把悲观当一回事，并不是不悲观。而他们乐观的天性极具感染力，你得稳着点，以免误陷入一塌糊涂的乐观绝地之中。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　白羊行使侠义的性格，使他能结交许多剖心相见的朋友。但是他对朋友的要求也很高，不少人受不了白羊座对朋友的殷殷期许。自然啦，白羊对情人、对丈夫（或妻子）、对同事，也都有些标准在心中测量。与标准不符时，他便会觉沮丧、食欲不振。现实的人永难成为白羊座人的朋友。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　爆发型的浪漫</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　白羊座的人当然是浪漫的，但是是属于爆发型的浪漫。公羊、母羊皆如此。一点一滴积出来的浪漫，对白羊座来说，强度不够，只觉累赘、厚重，这种浪漫容易分叉、断裂。白羊座喜欢在庆典的夜晚，与情人并肩仰望烟火在夜空中爆放出光芒万丈，而那也正象征着爱情发生的瞬间，浪漫不过了。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　当白羊座处于浪漫的瞬间，几乎没有什么事可以挪动他们的感性。浪漫过后他显然全已清醒，接下来端看那瞬间爆发的浪漫，到底能在他的记忆中存留多久，才能知他到底有多在乎曾经发生过的感动。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　因此，你也可以推论出，工作、事业、婚姻、友情都不在白羊浪漫的范畴中，他对这些反是以细水长流的方式经营。“徒步越过爱琴岛是可能的，你只要逐岛跳过去就行了。”</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　嗨！我在这里</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　不必等到风吹草低见牛羊的那一刻，你便会远远看到有只羊在拚命蹬踢他强健的小蹄子，在半空中跳跃，向你打招呼：“嗨！我在这。”</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　是的，白羊座的人就是这么令人觉得他开朗而热情。即使他内心是有那么一点害羞，表面上仍可以很自在、大方。当一头白羊愁眉苦脸时，只会出现在他家镜子中。他再伤心，就是不会在别人面摆出苦旦脸。好强？可以这么说。谁不好强呢？其实白羊座的人仍会向朋友吐苦水，但真正的眼泪，你是看不到的。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　一群朋友，开开心心的，在阳光下嬉耍，是白羊座最怀念的美好时光。悲郁的人生绝不是一头白羊所向往的，不幸陷入时，他也会极力设法让自己不要太相信就这么过一生，他会全心希望有一个新生活。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　正经八百的，会要他的命</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　白羊座出现在高贵、华丽的场合中，不会显得格格不入，但是他自己却难受得要命，因为他不能自在地跷二郎腿，不能在高兴时放浪形骸。正经八百的，会要他的命。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　一般社会上流行的娱乐，白羊座都能欣然加作，但是他本来就有的独特娱乐品味也不会放弃。也就是说很爱听歌剧，但也喜欢到卡拉ＯＫ高歌一曲。基本上，白羊座的是很雅、俗共赏的。他们的适应很强，但又随遇而安。在白羊的心中总是有一个更好的天堂在等着他。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　白羊座的人对于生命力旺盛的人，特别注意。他喜欢被专家领导，不会随便怀疑，一旦怀疑便打入十八层地狱。而他成为专家时，也不要随便怀疑他，如果你不能拿出令他心服口服的证据，你将永不能再从他那得到教诲。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　若不能举足轻重，宁可自动消失</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　白羊座的人常因过度自信而冲动行事，又因冲动行事失败而自毁信心。对白羊座的人来说，三思而后行是比较好的。在一个团体中，白羊座若不能举足轻重，他宁可自动消失，并且不会以任何借口。消失就消失了，这不是我的王国，他把自己在团体中的角色看得很重，相对地也愿意承担更多的责任，他不会认为自己可以不劳而获。一旦劳了还是没有获得的时候就绝不恋栈。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　他的自尊心强，你的一句“老实说”会伤他的心许久。如果你问他会不会表演空中飞人，他心中盘算自己应可胜任，便会点头，答应你一个月后的表演，这一个月中他就会勤加苦练。而对于自己没有把握的事，白羊座的人是不至于去强出头的。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　爱情是一生中最大的课题</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　白羊是很容易不耐烦的。在恋爱中，你得把那些小把戏收藏起来，他可受不了什么“考验”之类的事。既然爱他就应该信任他。不管公羊、母羊，他们对爱情都是十分认真的。对他们来说，爱情有两种，一种是真的，一种是假的。假情爱情，极易发生在冲动而善感的白羊座身上，但很快会结束，并且会像是从未发生过。真正的爱情，是白羊座一生中最大的课题，他总觉得这个课题怎么写也写不完整。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　友情与情是白羊座不可或缺的两大支柱。当爱情没着落时，他们可靠着这两大支柱中的任一项，发展他的事业。即使他十七岁时就有了结婚的对象，但到了七十岁若未结婚，他也仍在心中保有一个结婚对象，这是他的乐天知命所使然。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　相信小精灵的孩子</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　仅管白羊座的人长得人高马大，他仍是个孩子，他一直保有天真的一面，即使长大了，他还是相信世界上有小精灵的存在。有时白羊座的人相当幼稚，可是他绝不是不聪明，他的反应可快得很呢！</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　他有带头当第一的强烈欲望，做第二免谈。所以他做起事来动作很快，甚少优柔寡断。他非常自信，深信自己处理事务的能力无人可及。他也从不向命运低头，仅管挫折一次又一次的出现。他信任所有的人，很少会去怀疑别人是否会对他不利，而他的勇敢也使他能不断地站在最前面。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　与白羊座的人相处时，你必须注意一些重要的关键，他是个喜欢争先的人，这是所有白羊座的天性，所以有时你必须要有心理准备。他说话或做事都相当直接，很少会跟你拐弯抹角，他也相当诚实，只要一说谎就很容易被人察觉。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">　　他是个不擅处理细节的人，所以，如果你想请他处理些较细微的工作的话，倒不如自己做还来的恰当些。</p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt"> </p><p style="FONT-SIZE: 9pt; LINE-HEIGHT: 15pt">      偶然机会看到这样一个帖子，对着我自己来一条条比较，发现竟然那么的相似，那么的准确！其实我一直都不是很相信命运的，我妈曾经给我算过命，说我这几年运道不是很好，我都没有相信，但是最近发生在我身上的一些事，好像不得不使我有那么一点相信它的存在了。最后祝愿所有白羊座的人们都开心！愉快！</p></div>
		</div>
<img src ="http://www.blogjava.net/xXx324423/aggbug/90005.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xXx324423/" target="_blank">鹭</a> 2006-12-26 07:33 <a href="http://www.blogjava.net/xXx324423/archive/2006/12/26/90005.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>