<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>xiaoZ5919</title>
    <description></description>
    <link>http://xiaoz5919.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
          <item>
        <title>java反射应用-模拟dispatchaction</title>
        <author>xiaoZ5919</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xiaoz5919.javaeye.com">xiaoZ5919</a>&nbsp;
                    链接：<a href="http://xiaoz5919.javaeye.com/blog/243124" style="color:red;">http://xiaoz5919.javaeye.com/blog/243124</a>&nbsp;
          发表时间: 2008年09月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp; 前段时间加入朋友的一个java讨论群。朋友的讨论主题是反射和rtti的区别和联系，这个话题很令人迷茫。终究是一个虚的话题。有一次我们在群中讨论时，大家都意识到了反射的重要性，尤其是在spring，struts等通用性框架中的大量使用。但是也存在一些误解的。有的网友把Object和Class混为一个概念。这是很危险的想法。那么Class又是一个怎么样的类呢！Class是一个描述类本身有那些属性、构造方法和一般方法的类，说起来好像有点绕口！</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;如何获取Class对象呢，它不能用构造方法初始化，如果获取没有具体类的Class对象 String.class 还有可以通过 Class.foName("java.lang.String");&nbsp; Class.forName("java.lang.String").newInstance()创建类的一个实例。</p>
<p>&nbsp;&nbsp; 实现反射的类在java.lang.reflect包中。例如Filed 和 Method。实现类似DispatchAction的这样方法分发，Method就很容易实现。我们以servlet为基础实现servlet的按方法名进行分发。思路很简单。首先制定一个父类实现方法分发，我们以后要写的servlet继承这个父类就可以了，这样我们重写父类的doPost()和doGet()方法。在重写的方法通过Method获取类本身的Method[],和传入的方法名参数比较如果存在则调用</p>
<pre name="code" class="java">	Class clazz = this.getClass();
		String methodName = request.getParameter("method");
		Method[] methods;
		try {
			Object obj = clazz.newInstance();
			methods = clazz.getDeclaredMethods();
			for (Method method:methods){
				if(method.getName().equals(methodName)){
					method.invoke(obj, new Object[]{request,response});
				}
			}
			</pre>
<p>&nbsp;</p>
<p>子类继承该servlet就可以了</p>
<pre name="code" class="java">package com.zhh.action;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zhh.multiaction.MultiServlet;

public class HelloAction extends MultiServlet {
	
	public void  hello(HttpServletRequest request,HttpServletResponse response) throws IOException{
		
		PrintWriter out = response.getWriter();
		out.print("hello");
	}
	
	public void world(HttpServletRequest request,HttpServletResponse response) throws Exception {
		PrintWriter out = response.getWriter();
		out.print("world");
	}

}</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; </p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://xiaoz5919.javaeye.com/blog/243124#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 17 Sep 2008 15:08:51 +0800</pubDate>
        <link>http://xiaoz5919.javaeye.com/blog/243124</link>
        <guid>http://xiaoz5919.javaeye.com/blog/243124</guid>
      </item>
          <item>
        <title>嗨！努力吧</title>
        <author>xiaoZ5919</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xiaoz5919.javaeye.com">xiaoZ5919</a>&nbsp;
                    链接：<a href="http://xiaoz5919.javaeye.com/blog/150129" style="color:red;">http://xiaoz5919.javaeye.com/blog/150129</a>&nbsp;
          发表时间: 2007年12月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          嗨 努力吧 自己这点实力差远了！
          <br/><br/>
          <span style="color:red;">
            <a href="http://xiaoz5919.javaeye.com/blog/150129#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 22 Dec 2007 13:54:03 +0800</pubDate>
        <link>http://xiaoz5919.javaeye.com/blog/150129</link>
        <guid>http://xiaoz5919.javaeye.com/blog/150129</guid>
      </item>
          <item>
        <title>一道sql面试题</title>
        <author>xiaoZ5919</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xiaoz5919.javaeye.com">xiaoZ5919</a>&nbsp;
                    链接：<a href="http://xiaoz5919.javaeye.com/blog/148590" style="color:red;">http://xiaoz5919.javaeye.com/blog/148590</a>&nbsp;
          发表时间: 2007年12月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          (表)t<br /><br />a b(列)<br /><br />1 2<br /><br />1 3 <br /><br />1 4<br /><br />2 1<br /><br />2 2<br /><br />3 1<br /><br />4 1<br /><br />5 3<br /><br />5 2<br /><br />查询结果：<br /><br />查询结果要求<br /><br />a b<br /><br />1 2<br /><br />2 1<br /><br />3 1 <br /><br />4 1<br /><br />5 2<br /><br />咋一看很难，其实很简单，不涉及复杂查询，一条sql语句搞定<br /><br />select a,min(b) from rock group by b;<br /><br /><br />以前总是用mysql，今天看了面试题，我才意识到oracle的重要性，面试题80%的是oracle
          <br/><br/>
          <span style="color:red;">
            <a href="http://xiaoz5919.javaeye.com/blog/148590#comments" style="color:red;">已有 <strong>10</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 15 Dec 2007 17:11:20 +0800</pubDate>
        <link>http://xiaoz5919.javaeye.com/blog/148590</link>
        <guid>http://xiaoz5919.javaeye.com/blog/148590</guid>
      </item>
          <item>
        <title>不用循环的图形打印（递归）</title>
        <author>xiaoZ5919</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xiaoz5919.javaeye.com">xiaoZ5919</a>&nbsp;
                    链接：<a href="http://xiaoz5919.javaeye.com/blog/148589" style="color:red;">http://xiaoz5919.javaeye.com/blog/148589</a>&nbsp;
          发表时间: 2007年12月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          一道有趣的打印图形的题，输入n，打印出的图形先是n个星号然后打印n个感叹号<br /><br />以下是递归实现<br /><br />public static void star(int n){<br />&nbsp; <br />&nbsp;&nbsp; System.out.println("*");<br />&nbsp;&nbsp; if( n > 1){<br />&nbsp;&nbsp;&nbsp; star( n - 1);<br />&nbsp;&nbsp; }<br />&nbsp;&nbsp; System.out.println("!");<br />}
          <br/><br/>
          <span style="color:red;">
            <a href="http://xiaoz5919.javaeye.com/blog/148589#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 15 Dec 2007 17:09:39 +0800</pubDate>
        <link>http://xiaoz5919.javaeye.com/blog/148589</link>
        <guid>http://xiaoz5919.javaeye.com/blog/148589</guid>
      </item>
          <item>
        <title>初步递归续</title>
        <author>xiaoZ5919</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xiaoz5919.javaeye.com">xiaoZ5919</a>&nbsp;
                    链接：<a href="http://xiaoz5919.javaeye.com/blog/148588" style="color:red;">http://xiaoz5919.javaeye.com/blog/148588</a>&nbsp;
          发表时间: 2007年12月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我们来分析ff(3)的实现过程<br /><br />同样首先执行ff(3)<br /><br />根据判断条件执行调用ff(n-1)也就是ff（2）然后ff(2)调用ff(1);<br /><br />ff(1)执行 打印1 执行完毕 ，这个时候问题出现了，接下来会做什么呢？<br /><br />我们会想到执行ff（2）但是从哪执行呢 是再次重新执行吗？（这样肯定不会的否则会陷入无限循环中）；<br /><br />实际上在执行方法调用时，会把调用的信息存放在一个执行栈中，这些信息就包括调用点 也就是从哪行开始调用，当他出栈时会继续从此条语句一下执行。<br /><br />方法执行栈 入栈的顺序是 ff(3),ff(2),ff(1),然后出栈<br /><br />所以打印的结果为123
          <br/><br/>
          <span style="color:red;">
            <a href="http://xiaoz5919.javaeye.com/blog/148588#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 15 Dec 2007 17:08:09 +0800</pubDate>
        <link>http://xiaoz5919.javaeye.com/blog/148588</link>
        <guid>http://xiaoz5919.javaeye.com/blog/148588</guid>
      </item>
          <item>
        <title>初步递归</title>
        <author>xiaoZ5919</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xiaoz5919.javaeye.com">xiaoZ5919</a>&nbsp;
                    链接：<a href="http://xiaoz5919.javaeye.com/blog/148587" style="color:red;">http://xiaoz5919.javaeye.com/blog/148587</a>&nbsp;
          发表时间: 2007年12月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在学习java之前，看过别的语言描述的递归。对递归也有大致的认识，遇到一些简单的显而易见的递归问题也能解决，但对递归的实现过程还是不了解。昨天痛下决心要把数据结构再深刻的学习一下，还是从递归学起。说白了递归就是自己调用，当然得有一个停止的条件，否则会无限制的调用下去。<br /><br />拿两个例子对递归做初步认识吧<br /><br /><br />public static void f(int n){<br />&nbsp; <br />&nbsp;&nbsp; System.out.println(n);<br />&nbsp;&nbsp; if( n > 1){<br />&nbsp;&nbsp;&nbsp; f( n - 1);<br />&nbsp;&nbsp; }<br />}<br /><br />public static void ff(int n){<br />&nbsp; <br />&nbsp;&nbsp; if( n > 1){<br />&nbsp;&nbsp;&nbsp; ff( n - 1);<br />&nbsp;&nbsp; }<br />&nbsp;&nbsp; System.out.println(n);<br />}<br /><br />f(3),ff(3)它们会打印出什么结果呢<br /><br />分析这个过程 首先是f(3)执行打印3<br /><br />然后 f(3)调用f(2)<br /><br />打印2<br /><br />这时n= 2仍然大于1调用f(1)<br /><br />打印1<br /><br />同时调用完毕 结束 得到以上的结果<br /><br />这是一个显而易见比较好分析的递归过程<br /><br />待续分析ff（3）的递归过程
          <br/><br/>
          <span style="color:red;">
            <a href="http://xiaoz5919.javaeye.com/blog/148587#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 15 Dec 2007 17:06:13 +0800</pubDate>
        <link>http://xiaoz5919.javaeye.com/blog/148587</link>
        <guid>http://xiaoz5919.javaeye.com/blog/148587</guid>
      </item>
      </channel>
</rss>