??xml version="1.0" encoding="utf-8" standalone="yes"?>中文字幕中文字幕中文字幕亚洲无线 ,国产91在线看,精品少妇一区二区三区视频免付费 http://www.aygfsteel.com/lingling/zh-cnSun, 06 Jul 2025 19:49:20 GMTSun, 06 Jul 2025 19:49:20 GMT60Junit试http://www.aygfsteel.com/lingling/archive/2011/01/23/343392.html向日?/dc:creator>向日?/author>Sun, 23 Jan 2011 02:20:00 GMThttp://www.aygfsteel.com/lingling/archive/2011/01/23/343392.htmlhttp://www.aygfsteel.com/lingling/comments/343392.htmlhttp://www.aygfsteel.com/lingling/archive/2011/01/23/343392.html#Feedback0http://www.aygfsteel.com/lingling/comments/commentRss/343392.htmlhttp://www.aygfsteel.com/lingling/services/trackbacks/343392.html 

 

Junit是由 Erich Gamma ?span lang="EN-US"> Kent Beck ~写的一个回归测试框Ӟregression testing frameworkQ?span lang="EN-US">Junit是一套框Ӟl承TestCasec,可以用Junitq行自动试了?/p>

 

1 junitҎ?span lang="EN-US">

  

  

junit

Junit是一个开放源代码?span lang="EN-US">Java试框架Q用于编写和q行可重复的试。他是用于单元测试框架体p?span lang="EN-US">xUnit的一个实例(用于java语言Q。它包括以下Ҏ:

  ?用于试期望l果的断aQ?span lang="EN-US">AssertionQ?span lang="EN-US">

  ?用于׃n共同试数据的测试工?span lang="EN-US">

  ?用于方便的组l和q行试的测试套?span lang="EN-US">

?囑Ş和文本的试q行?span lang="EN-US">

 
2 Eclipse中配|?span lang="EN-US">Junit

叛_要用的junit的项目,点击properties—java bulid path-librariesQ点?span lang="EN-US">Add External JARs,加上JUNIT包?span lang="EN-US">

 

 3 用法

- 创徏Q从junit.framework.TestCaseznuit test需要的test case.

- 书写试Ҏ

- ~译 书写?span lang="EN-US">test case后,~译所写的test casec?span lang="EN-US">

- q行Q启?span lang="EN-US">junit test runnner 来运行这?span lang="EN-US">test case?span lang="EN-US">

 

 

实例代码Q?span lang="EN-US">

package com.dr.test;

 

import java.util.List;

 

import junit.framework.TestCase;

import com.dr.dao.StudentDao;

import com.dr.dao.impl.StudentDaoImpl;

import com.dr.vo.Student;

 

public class StudentDaoImplTest extends TestCase{

   

    StudentDao dao;

   

    protected void setUp() throws Exception{

       dao=new StudentDaoImpl();

      

    }

    protected void tearDown() throws Exception{

      

    }

    public void testAdd(){

       Student stu=new Student();

       stu.setName("ling");

       stu.setAge(1);

       stu.setEmail("ling@126.com");

       dao.addStudent(stu);

    }

    public void testListStudent(){

       List<Student> list=dao.getStudentList();

       System.out.println(list.size());

    }

   

}

 

Junit中的两个函数Q?span lang="EN-US">setUp?span lang="EN-US">tearDown,?span lang="EN-US">junit framework中提供初始化金额反初始化每个试Ҏ的?span lang="EN-US">setUp在每个测试方法调用前被调用,负责初始化测试方法所需要的试环境Q?span lang="EN-US">teardown在每个测试方法被调用之后被调用,负责撤销试环境?span lang="EN-US">

 

试l果Q?br />

 

?/span>JUnit的窗口中昄了一个绿条,l条证明试成功?/span>

 



]]>
listener监听?/title><link>http://www.aygfsteel.com/lingling/archive/2011/01/18/343172.html</link><dc:creator>向日?/dc:creator><author>向日?/author><pubDate>Tue, 18 Jan 2011 13:39:00 GMT</pubDate><guid>http://www.aygfsteel.com/lingling/archive/2011/01/18/343172.html</guid><wfw:comment>http://www.aygfsteel.com/lingling/comments/343172.html</wfw:comment><comments>http://www.aygfsteel.com/lingling/archive/2011/01/18/343172.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lingling/comments/commentRss/343172.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lingling/services/trackbacks/343172.html</trackback:ping><description><![CDATA[  <p><span style="font-family: Arial; color: black">Listener</span><span style="font-family: 宋体; color: black">?/span><span style="font-family: Arial; color: black">Servlet</span><span style="font-family: 宋体; color: black">的监听器Q它可以监听客户端的h、服务端的操作等。通过监听器,可以自动Ȁ发一些操作,比如监听在线的用L数量。当增加一?/span><span style="font-family: Arial; color: black">HttpSession</span><span style="font-family: 宋体; color: black">Ӟ激?/span><span style="font-family: Arial; color: black">sessionCreated(HttpSessionEvent se)</span><span style="font-family: 宋体; color: black">ҎQ这样就可以l在Uh数加</span><span style="font-family: Arial; color: black">1</span><span style="font-family: 宋体; color: black">。常用的监听接口有以下几个:</span></p> <p style="text-align: left; margin-bottom: 12pt; background: white" class="MsoNormal" align="left"><span style="font-family: Arial; color: black">ServletContextListener</span><span style="font-family: 宋体; color: black">监听</span><span style="font-family: Arial; color: black">ServletContext</span><span style="font-family: 宋体; color: black">。当创徏</span><span style="font-family: Arial; color: black">ServletContext</span><span style="font-family: 宋体; color: black">ӞȀ?/span><span style="font-family: Arial; color: black"> contextInitialized(ServletContextEvent sce)</span><span style="font-family: 宋体; color: black">ҎQ当销?/span><span style="font-family: Arial; color: black">ServletContext</span><span style="font-family: 宋体; color: black">ӞȀ?/span><span style="font-family: Arial; color: black">contextDestroyed(ServletContextEvent sce)</span><span style="font-family: 宋体; color: black">Ҏ?/span></p> <p style="text-align: left; margin-bottom: 12pt; background: white" class="MsoNormal" align="left"><span style="font-family: Arial; color: black">ServletContextAttributeListener</span><span style="font-family: 宋体; color: black">监听?/span><span style="font-family: Arial; color: black">ServletContext</span><span style="font-family: 宋体; color: black">属性的操作Q比如增加、删除、修改属性?/span></p> <p style="text-align: left; background: white" class="MsoNormal" align="left"><span style="font-family: Arial; color: black">HttpSessionListener</span><span style="font-family: 宋体; color: black">监听</span><span style="font-family: Arial; color: black">HttpSession</span><span style="font-family: 宋体; color: black">的操作。当创徏一?/span><span style="font-family: Arial; color: black">Session</span><span style="font-family: 宋体; color: black">ӞȀ?/span><span style="font-family: Arial; color: black">session Created(HttpSessionEvent se)</span><span style="font-family: 宋体; color: black">ҎQ当销毁一?/span><span style="font-family: Arial; color: black">Session</span><span style="font-family: 宋体; color: black">ӞȀ?/span><span style="font-family: Arial; color: black">sessionDestroyed (HttpSessionEvent se)</span><span style="font-family: 宋体; color: black">Ҏ?/span></p> <p style="text-align: left; margin-bottom: 12pt; background: white" class="MsoNormal" align="left"><span style="font-family: Arial; color: black">HttpSessionAttributeListener</span><span style="font-family: 宋体; color: black">监听</span><span style="font-family: Arial; color: black">HttpSession</span><span style="font-family: 宋体; color: black">中的属性的操作。当?/span><span style="font-family: Arial; color: black">Session</span><span style="font-family: 宋体; color: black">增加一个属性时Q激?/span><span style="font-family: Arial; color: black"> attributeAdded(HttpSessionBindingEvent se) </span><span style="font-family: 宋体; color: black">ҎQ当?/span><span style="font-family: Arial; color: black">Session</span><span style="font-family: 宋体; color: black">删除一个属性时Q激?/span><span style="font-family: Arial; color: black">attributeRemoved(HttpSessionBindingEvent se)</span><span style="font-family: 宋体; color: black">ҎQ当?/span><span style="font-family: Arial; color: black">Session</span><span style="font-family: 宋体; color: black">属性被重新讄ӞȀ?/span><span style="font-family: Arial; color: black">attributeReplaced(HttpSessionBindingEvent se) </span><span style="font-family: 宋体; color: black">Ҏ?/span></p> <p style="text-align: left; background: white" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black">下面我们开发一个具体的例子Q这个监听器能够l计在线的h数?br /> <br /> </span></p> <p style="text-align: left; background: white" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black">E序源代码:</span></p> <p style="text-align: left" class="MsoNormal" align="left"><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">package</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> com.dr.web.listener;</span></p> <p style="text-align: left" class="MsoNormal" align="left"><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">import</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> javax.servlet.ServletContext;</span></p> <p style="text-align: left" class="MsoNormal" align="left"><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">import</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> javax.servlet.ServletContextEvent;</span></p> <p style="text-align: left" class="MsoNormal" align="left"><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">import</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> javax.servlet.ServletContextListener;</span></p> <p style="text-align: left" class="MsoNormal" align="left"><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">import</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> javax.servlet.http.HttpSessionEvent;</span></p> <p style="text-align: left" class="MsoNormal" align="left"><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">import</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> javax.servlet.http.HttpSessionListener;</span></p> <p style="text-align: left" class="MsoNormal" align="left"><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">public</span></strong><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">class</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> UserCountListener </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">implements</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> ServletContextListener,</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       HttpSessionListener {</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: #3f7f5f; font-size: 10pt">//</span><span style="font-family: 宋体; color: #3f7f5f; font-size: 10pt">每个</span><span style="font-family: 'Courier New'; color: #3f7f5f; font-size: 10pt">web</span><span style="font-family: 宋体; color: #3f7f5f; font-size: 10pt">应用都有且仅有一?/span><span style="font-family: 'Courier New'; color: #3f7f5f; font-size: 10pt">ServletContext</span><span style="font-family: 宋体; color: #3f7f5f; font-size: 10pt">对象Q这个对象在所有的</span><u><span style="font-family: 'Courier New'; color: #3f7f5f; font-size: 10pt">Servlet</span></u><span style="font-family: 宋体; color: #3f7f5f; font-size: 10pt">都可以用?/span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">/**</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">     * </span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">因ؓ一?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">web</span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">应用׃?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">ServletContext </span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">对象Q因此可以?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">ServletContext </span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">来做一些全局性的属性设|等?/span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">     * </span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">比如|站讉K计数器等{?/span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">     * </span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">     * </span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">     * ServletContext </span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">是一个应用程序与</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">Web</span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">容器</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">(<u>tomcat</u></span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">之类</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">)</span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">交互的接?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">,</span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">同时它也是管理应用程序资源的对象Q?/span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">                                                   </span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">通过它可以读?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">web.xml</span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">中一些配|,?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"><context-<u>param</u>></span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">中的信息Q读取应用中的资源等?/span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">       Session </span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">是一个会话对象,也就是说当客L讉K服务器页面时Q它才生,</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">                                        </span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">原理是服务器Ҏ个客L产生一?/span><u><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">sessionid</span></u><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">,</span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">q把它也保存在客LQ?/span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">                                        </span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">每次h旉证这?/span><u><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">sessionid</span></u><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">是否是创Z</span><u><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">sessionid</span></u><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">的客LQ在服务器端对应q个</span><u><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">sessionid</span></u><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">会创Z个缓存区Q?/span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">                                        </span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">存储一些相关信?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">,</span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">E序员可以操作,如被用于购物车,存储用户信息{,q个区域只有对特定用h讉K权限Q对其他客户是拒l访问的Q这是一个会话?/span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">       Request </span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">是一个请求对象,也就是说它的生命很短暂,只在一个请求中存在Q如一个页面到另一个页面,</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">                                     </span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">一个页面到</span><u><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">servlet</span></u><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">action,</span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">一?/span><u><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">servlet</span></u><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">action</span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">?/span><u><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">jsp</span></u><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">面{?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">,</span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">你可以用它的</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">setAttribute</span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">Ҏ传递需要的信息</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">(</span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">对象</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">),</span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">验证h方的信息</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">,</span><span style="font-family: 宋体; color: #3f5fbf; font-size: 10pt">获得h方发q来的文件内容等?/span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">     */</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">private</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> ServletContext </span><span style="font-family: 'Courier New'; color: #0000c0; font-size: 10pt">sc</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">;</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">public</span></strong><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">void</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> contextDestroyed(ServletContextEvent arg0) {</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    }</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">public</span></strong><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">void</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> contextInitialized(ServletContextEvent event) {</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       </span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       ServletContext sc = event.getServletContext();</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       sc.setAttribute(</span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">"Users"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">, </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">new</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> Integer(0));</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">this</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt">.</span><span style="font-family: 'Courier New'; color: #0000c0; font-size: 10pt">sc</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> = sc;</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    }</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">public</span></strong><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">void</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> sessionCreated(HttpSessionEvent event) {</span><span style="font-family: 'Courier New'; color: #3f7f5f; font-size: 10pt">//</span><span style="font-family: 宋体; color: #3f7f5f; font-size: 10pt">在线</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       System.</span><em><span style="font-family: 'Courier New'; color: #0000c0; font-size: 10pt">out</span></em><span style="font-family: 'Courier New'; color: black; font-size: 10pt">.println(</span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">"new user login our web site"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">);</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       Integer users = (Integer)</span><span style="font-family: 'Courier New'; color: #0000c0; font-size: 10pt">sc</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">.getAttribute(</span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">"Users"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">);</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       </span><span style="font-family: 'Courier New'; color: #0000c0; font-size: 10pt">sc</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">.setAttribute(</span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">"Users"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">, ++users);</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    }</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">public</span></strong><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">void</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> sessionDestroyed(HttpSessionEvent event) {</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       Integer users = (Integer)</span><span style="font-family: 'Courier New'; color: #0000c0; font-size: 10pt">sc</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">.getAttribute(</span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">"Users"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">);</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       </span><span style="font-family: 'Courier New'; color: #0000c0; font-size: 10pt">sc</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">.setAttribute(</span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">"Users"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">, --users);</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    }</span></p> <p style="text-align: left; background: white" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">}</span></p> <p style="text-align: left; background: white" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">Web.xml</span><span style="font-family: 宋体; color: black; font-size: 10pt">中配|如下:</span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">    <</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">listener</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">listener-class</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">com.dr.web.listener.UserCountListener</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">listener-class</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left; background: white" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">listener</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left; margin-bottom: 12pt; background: white" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black">?/span><span style="font-family: Arial; color: black">UserCountListener</span><span style="font-family: 宋体; color: black">里,?/span><span style="font-family: Arial; color: black">users</span><span style="font-family: 宋体; color: black">代表当前在线的h敎ͼ</span><span style="font-family: Arial; color: black">UserCountListener</span><span style="font-family: 宋体; color: black">在</span><span style="font-family: Arial; color: black">Web</span><span style="font-family: 宋体; color: black">服务器启动时自动执行。当</span><span style="font-family: Arial; color: black">UserCountListener</span><span style="font-family: 宋体; color: black">构造好后,?/span><span style="font-family: Arial; color: black">users</span><span style="font-family: 宋体; color: black">讄?/span><span style="font-family: Arial; color: black"> 0</span><span style="font-family: 宋体; color: black">。每增加一?/span><span style="font-family: Arial; color: black">Session</span><span style="font-family: 宋体; color: black">Q?/span><span style="font-family: Arial; color: black">UserCountListener</span><span style="font-family: 宋体; color: black">会自动调?/span><span style="font-family: Arial; color: black">sessionCreated(HttpSessionEvent event)</span><span style="font-family: 宋体; color: black">ҎQ每销毁一?/span><span style="font-family: Arial; color: black">Session</span><span style="font-family: 宋体; color: black">Q?/span><span style="font-family: Arial; color: black">UserCountListener</span><span style="font-family: 宋体; color: black">会自动调?/span><span style="font-family: Arial; color: black"> sessionDestroyed(HttpSessionEvent se)</span><span style="font-family: 宋体; color: black">Ҏ。当调用</span><span style="font-family: Arial; color: black">sessionCreated(HttpSessionEvent event)</span><span style="font-family: 宋体; color: black">ҎӞ说明又有一个客户在hQ此时在线的h敎ͼ</span><span style="font-family: Arial; color: black">users</span><span style="font-family: 宋体; color: black">Q加</span><span style="font-family: Arial; color: black">1</span><span style="font-family: 宋体; color: black">Qƈ且把</span><span style="font-family: Arial; color: black">user</span><span style="font-family: 宋体; color: black">写到</span><span style="font-family: Arial; color: black">ServletContext</span><span style="font-family: 宋体; color: black">中?/span><span style="font-family: Arial; color: black"> ServletContext</span><span style="font-family: 宋体; color: black">的信息是所有客L׃n的,q样Q每个客L都可以读取到当前在线的h数?/span></p> <p><span style="font-family: 宋体">q行l果Q?br /> <img border="0" alt="" src="http://www.aygfsteel.com/images/blogjava_net/lingling/44444.jpg" width="718" height="265" /><br /> <br /> <img border="0" alt="" src="http://www.aygfsteel.com/images/blogjava_net/lingling/66666666.jpg" width="710" height="257" /></span></p> <img src ="http://www.aygfsteel.com/lingling/aggbug/343172.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lingling/" target="_blank">向日?/a> 2011-01-18 21:39 <a href="http://www.aygfsteel.com/lingling/archive/2011/01/18/343172.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MVC程?/title><link>http://www.aygfsteel.com/lingling/archive/2010/12/14/340606.html</link><dc:creator>向日?/dc:creator><author>向日?/author><pubDate>Tue, 14 Dec 2010 02:35:00 GMT</pubDate><guid>http://www.aygfsteel.com/lingling/archive/2010/12/14/340606.html</guid><wfw:comment>http://www.aygfsteel.com/lingling/comments/340606.html</wfw:comment><comments>http://www.aygfsteel.com/lingling/archive/2010/12/14/340606.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lingling/comments/commentRss/340606.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lingling/services/trackbacks/340606.html</trackback:ping><description><![CDATA[     摘要:   MVC是三个单词的~写,分别为: 模型(Model),视图(View)和控制Control)?MVC模式的目的就是实现Webpȝ的职能分工?Model层实现系l中的业务逻辑Q通常可以用JavaBean或EJB来实现?View层用于与用户的交互,通常用JSP来实现?Control层是Model与View之间沟通的桥梁Q它可以分派用户的请求ƈ选择恰当的视图以用于昄Q同时它也可...  <a href='http://www.aygfsteel.com/lingling/archive/2010/12/14/340606.html'>阅读全文</a><img src ="http://www.aygfsteel.com/lingling/aggbug/340606.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lingling/" target="_blank">向日?/a> 2010-12-14 10:35 <a href="http://www.aygfsteel.com/lingling/archive/2010/12/14/340606.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>qo器—防止未d直接讉K|站内部http://www.aygfsteel.com/lingling/archive/2010/12/14/340601.html向日?/dc:creator>向日?/author>Tue, 14 Dec 2010 02:26:00 GMThttp://www.aygfsteel.com/lingling/archive/2010/12/14/340601.htmlhttp://www.aygfsteel.com/lingling/comments/340601.htmlhttp://www.aygfsteel.com/lingling/archive/2010/12/14/340601.html#Feedback4http://www.aygfsteel.com/lingling/comments/commentRss/340601.htmlhttp://www.aygfsteel.com/lingling/services/trackbacks/340601.html有些|站需要登录以后才能访问网站内部资源,q就需要我们做一个过滤器Q当用户讉K|站内部资源Ӟ要先l过qo器,qo器判断是否有q个用户Q有则蟩转进入网站内部页面,没有则返回登录页面?/span>

 

qo器代码:

package com.dr.course;

 

import java.io.IOException;

 

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSession;

 

import com.dr.common.Global;

import com.dr.vo.User;

 

public class IsLoginFilter implements Filter {

 

       public void destroy() {

             

       }

 

       public void doFilter(ServletRequest request, ServletResponse response,

                     FilterChain filterChain) throws IOException, ServletException {

             

              System.out.println("every request pass here");

              HttpServletRequest hrequest=(HttpServletRequest)request;

              HttpSession session=hrequest.getSession();

              User user =     (User)session.getAttribute(Global.USER);

              if(user == null){

                     //跌{到登陆页?/span>

            hrequest.getRequestDispatcher("/index.jsp").forward(request,response);                 

              }

              filterChain.doFilter(request, response);

       }

 

       public void init(FilterConfig filterConfig) throws ServletException {

             

       }

 

}

 

LoginServletc,q行d之后的处理:

package com.dr.course;

 

import java.io.IOException;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

 

import com.dr.common.Global;

import com.dr.vo.User;

 

public class LoginServlet extends HttpServlet{

      

       public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{

             

              String userName=request.getParameter("username");

              String passWord=request.getParameter("password");

             

          

            System.out.println("userName | " + userName);

            System.out.println("passWord | " + passWord);

            User user = new User();

            user.setUserName(userName);

            user.setPassWord(passWord);

            HttpSession session = request.getSession();

            //d成功Q把User攑ֈsessionQ然后在拦截器中判断

            //key--value

            session.setAttribute(Global.USER, user);

            request.getRequestDispatcher("/admin/main.jsp").forward(request, response);

             

             

             

       }

 

}

 

web.xml中配|如下:

- <filter>

  <filter-name>isLogin</filter-name>

  <filter-class>com.dr.course.IsLoginFilter</filter-class>

  </filter>

- <filter-mapping>

  <filter-name>isLogin</filter-name>

  <url-pattern>/admin/*</url-pattern>

  </filter-mapping>

- <servlet>

  <servlet-name>login</servlet-name>

  <servlet-class>com.dr.course.LoginServlet</servlet-class>

  </servlet>

- <servlet-mapping>

  <servlet-name>login</servlet-name>

  <url-pattern>/login</url-pattern>

  </servlet-mapping>


 未登录界面:

成功d的界面:



]]>
邮箱自动dhttp://www.aygfsteel.com/lingling/archive/2010/12/13/340539.html向日?/dc:creator>向日?/author>Mon, 13 Dec 2010 10:54:00 GMThttp://www.aygfsteel.com/lingling/archive/2010/12/13/340539.htmlhttp://www.aygfsteel.com/lingling/comments/340539.htmlhttp://www.aygfsteel.com/lingling/archive/2010/12/13/340539.html#Feedback0http://www.aygfsteel.com/lingling/comments/commentRss/340539.htmlhttp://www.aygfsteel.com/lingling/services/trackbacks/340539.htmlcookie为用L陆服务器后,服务器写在客L的文件?/span>

我们在登?/span>126邮箱Ӟ如果N上两周内自动登录,两周内不用输入用户名和密码邮׃自动dQ这是因为第一ơ登录时服务器将用户名和密码写入cookie中,q返回给客户端?/span>

下次d?/span>Http协议会带着用户?/span>cookieL务器验证Q因为服务器已经存储用户的信息,所以会自动d?/span>

d代码Q?/span>

package com.dr.course;

import java.io.IOException;  

import javax.servlet.ServletException;  

import javax.servlet.http.Cookie;  

import javax.servlet.http.HttpServlet;  

import javax.servlet.http.HttpServletRequest;  

import javax.servlet.http.HttpServletResponse;  

public class LoginServlet extends HttpServlet {  

    public void doGet(HttpServletRequest request, HttpServletResponse response)  

            throws ServletException, IOException {  

        this.doPost(request, response);  

    }  

    public void doPost(HttpServletRequest request, HttpServletResponse response)  

            throws ServletException, IOException {  

           String username=request.getParameter("username");  

           String password=request.getParameter("password");  

           String savetime=request.getParameter("saveTime");  

           if(CheckLogin.login(username, password)){  

               if(null!=savetime){  

                   int saveTime=Integer.parseInt(savetime);//q里接受的表单gؓ天来计算?/span>  

                   int seconds=saveTime*24*60*60;  

                   Cookie cookie = new Cookie("user", username+"=="+password);  

                   cookie.setMaxAge(seconds);                     

                   response.addCookie(cookie);  

               }  

               request.setAttribute("username",username);  

               request.getRequestDispatcher("/main126.jsp").forward(request,response);  

           }else{  

               request.getRequestDispatcher("/failure.jsp").forward(request,response);  

           }  

    }  

}  

验证代码Q?/span>

package com.dr.course;

import java.io.IOException;  

import javax.servlet.Filter;  

import javax.servlet.FilterChain;  

import javax.servlet.FilterConfig;  

import javax.servlet.ServletException;  

import javax.servlet.ServletRequest;  

import javax.servlet.ServletResponse;  

import javax.servlet.http.Cookie;  

import javax.servlet.http.HttpServletRequest;  

import javax.servlet.http.HttpServletResponse;  

public class IndexFilter implements Filter {  

    public void destroy() {  

        // TODO Auto-generated method stub  

    }  

    public void doFilter(ServletRequest arg0, ServletResponse arg1,  

            FilterChain arg2) throws IOException, ServletException {

          

           System.out.println("every request pass here haha");

        HttpServletRequest request = (HttpServletRequest) arg0;  

        HttpServletResponse response = (HttpServletResponse) arg1;  

        Cookie[] cookies = request.getCookies();  

        String[] cooks = null;  

        String username = null;  

        String password = null;  

        if (cookies != null) {  

            for (Cookie coo : cookies) {  

                String aa = coo.getValue();  

                cooks = aa.split("==");  

                if (cooks.length == 2) {  

                    username = cooks[0];  

                    password = cooks[1];  

                }  

            }  

        }

        System.out.println("cookie username | " + username);

        System.out.println("cookie password | " + password);

        if (CheckLogin.login(username, password)) {

               System.err.println("check successfully cookie data ");

            request.getSession().setAttribute("username",username);  

            request.getRequestDispatcher("/main126.jsp").forward(request, response);

        }else{  

            arg2.doFilter(request,response );  

        }  

    }  

    public void init(FilterConfig arg0) throws ServletException {  

        // TODO Auto-generated method stub  

    }  

}

package com.dr.course;

public class CheckLogin {

        public static boolean login(String username, String password) {  

               if ("admin".equals(username) && "123456".equals(password)) {  

                   return true;  

               } else {  

                   return false;  

               }  

           }  

}

web.xml中配|如下:

- <filter>

 <filter-name>loginFilter</filter-name>

 <filter-class>com.dr.course.IndexFilter</filter-class>

 </filter>

- <filter-mapping>

 <filter-name>loginFilter</filter-name>

 <url-pattern>/main126.jsp</url-pattern>

 </filter-mapping>

- <servlet>

 <servlet-name>LoginServlet</servlet-name>

 <servlet-class>com.dr.course.LoginServlet</servlet-class>

 </servlet>

- <servlet-mapping>

 <servlet-name>LoginServlet</servlet-name>

 <url-pattern>/login.do</url-pattern>

 </servlet-mapping>

目录加入到Tomcat中,开?/span>TomcatQ打开览器输入网址:http://127.0.0.1:8080/AutoLogin/login.doq行试?/span>



]]>
Httpqqo?/title><link>http://www.aygfsteel.com/lingling/archive/2010/12/13/340538.html</link><dc:creator>向日?/dc:creator><author>向日?/author><pubDate>Mon, 13 Dec 2010 10:44:00 GMT</pubDate><guid>http://www.aygfsteel.com/lingling/archive/2010/12/13/340538.html</guid><wfw:comment>http://www.aygfsteel.com/lingling/comments/340538.html</wfw:comment><comments>http://www.aygfsteel.com/lingling/archive/2010/12/13/340538.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lingling/comments/commentRss/340538.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lingling/services/trackbacks/340538.html</trackback:ping><description><![CDATA[  <p>Http<span style="font-family: 宋体">协议中默认的~码字符集和q_字符集都不是中文的,所?/span>Web<span style="font-family: 宋体">目中经怼遇到中文q问题?/span></p> <p><span style="font-family: 宋体">为防止中文ؕ码出玎ͼ首先我们要把目中每个网늚~码形式Ҏ中文的,</span>HTML<span style="font-family: 宋体">|页中的</span>charset<span style="font-family: 宋体">Ҏ</span>UTF-8<span style="font-family: 宋体">Q?/span>JSP<span style="font-family: 宋体">|页中的</span>pageEncoding<span style="font-family: 宋体">Ҏ</span>UTF-8<span style="font-family: 宋体">?/span></p> <p><span style="font-family: 宋体">然后我们做一个过滤器Q每ơ对|页的请求都会进入到qo器,q且?/span>request<span style="font-family: 宋体">?/span>response<span style="font-family: 宋体">都改?/span>UTF-8<span style="font-family: 宋体">~码形式Q这样防止了中文q的出现?/span></p> <p><span style="font-family: 宋体">源代码如下:</span></p> <p>package com.dr.servletform;</p> <p>import java.io.IOException;</p> <p>import javax.servlet.Filter;</p> <p>import javax.servlet.FilterChain;</p> <p>import javax.servlet.FilterConfig;</p> <p>import javax.servlet.ServletException;</p> <p>import javax.servlet.ServletRequest;</p> <p>import javax.servlet.ServletResponse;</p> <p>import javax.servlet.jsp.jstl.core.Config;</p> <p>public class MyFilter implements Filter{</p> <p>       String encoding="";</p> <p>       public void destroy() {</p> <p>       }</p> <p>       public void doFilter(ServletRequest request, ServletResponse response,</p> <p>                     FilterChain chain) throws IOException, ServletException {</p> <p>              System.out.println("pass here-------");</p> <p>              request.setCharacterEncoding(encoding);</p> <p>              response.setCharacterEncoding(encoding);</p> <p>              chain.doFilter(request, response);</p> <p>       }</p> <p>       public void init(FilterConfig config) throws ServletException {</p> <p>              String encoding=config.getInitParameter("encoding");</p> <p>              this.encoding=encoding;</p> <p>              System.out.println(encoding);</p> <p>       }</p> <p>}</p> <p>web.xml<span style="font-family: 宋体">中配|如下:</span></p> <p style="text-indent: -24pt; text-align: left" align="left"><span style="font-size: 10pt; color: blue; font-family: Verdana"><</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">filter</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span></p> <p style="text-indent: -24pt; text-align: left" align="left"><strong> </strong><span style="font-size: 10pt; color: blue; font-family: Verdana"><</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">filter-name</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span><strong><span style="font-size: 10pt; font-family: Verdana">MyFilter</span></strong><span style="font-size: 10pt; color: blue; font-family: Verdana"></</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">filter-name</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span></p> <p style="text-indent: -24pt; text-align: left" align="left"><strong> </strong><span style="font-size: 10pt; color: blue; font-family: Verdana"><</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">filter-class</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span><strong><span style="font-size: 10pt; font-family: Verdana">com.dr.servletform.MyFilter</span></strong><span style="font-size: 10pt; color: blue; font-family: Verdana"></</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">filter-class</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span></p> <p style="text-indent: -24pt; text-align: left" align="left"><span style="font-size: 10pt; font-family: Verdana"><a href="file:///E:/q瑞/qx/12.6/Servlet_Form1_Project/WebRoot/WEB-INF/web.xml##"><strong><span style="color: red; font-family: 'Courier New'">-</span></strong></a> </span><span style="font-size: 10pt; color: blue; font-family: Verdana"><</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">init-param</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span></p> <p style="text-indent: -24pt; text-align: left" align="left"><strong> </strong><span style="font-size: 10pt; color: blue; font-family: Verdana"><</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">param-name</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span><strong><span style="font-size: 10pt; font-family: Verdana">encoding</span></strong><span style="font-size: 10pt; color: blue; font-family: Verdana"></</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">param-name</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span></p> <p style="text-indent: -24pt; text-align: left" align="left"><strong> </strong><span style="font-size: 10pt; color: blue; font-family: Verdana"><</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">param-value</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span><strong><span style="font-size: 10pt; font-family: Verdana">UTF-8</span></strong><span style="font-size: 10pt; color: blue; font-family: Verdana"></</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">param-value</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span></p> <p style="text-indent: -12pt; text-align: left" align="left"><strong> </strong><span style="font-size: 10pt; color: blue; font-family: Verdana"></</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">init-param</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span></p> <p style="text-indent: -12pt; text-align: left" align="left"><strong> </strong><span style="font-size: 10pt; color: blue; font-family: Verdana"></</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">filter</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span></p> <p style="text-indent: -24pt; text-align: left" align="left"><span style="font-size: 10pt; font-family: Verdana"><a href="file:///E:/q瑞/qx/12.6/Servlet_Form1_Project/WebRoot/WEB-INF/web.xml##"><strong><span style="color: red; font-family: 'Courier New'">-</span></strong></a> </span><span style="font-size: 10pt; color: blue; font-family: Verdana"><</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">filter-mapping</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span></p> <p style="text-indent: -24pt; text-align: left" align="left"><strong> </strong><span style="font-size: 10pt; color: blue; font-family: Verdana"><</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">filter-name</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span><strong><span style="font-size: 10pt; font-family: Verdana">MyFilter</span></strong><span style="font-size: 10pt; color: blue; font-family: Verdana"></</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">filter-name</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span></p> <p style="text-indent: -24pt; text-align: left" align="left"><strong> </strong><span style="font-size: 10pt; color: blue; font-family: Verdana"><</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">url-pattern</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span><strong><span style="font-size: 10pt; font-family: Verdana">/*</span></strong><span style="font-size: 10pt; color: blue; font-family: Verdana"></</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">url-pattern</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span></p> <p style="text-indent: -12pt; text-align: left" align="left"><strong> </strong><span style="font-size: 10pt; color: blue; font-family: Verdana"></</span><span style="font-size: 10pt; color: #990000; font-family: Verdana">filter-mapping</span><span style="font-size: 10pt; color: blue; font-family: Verdana">></span></p> <img src ="http://www.aygfsteel.com/lingling/aggbug/340538.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lingling/" target="_blank">向日?/a> 2010-12-13 18:44 <a href="http://www.aygfsteel.com/lingling/archive/2010/12/13/340538.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDBChttp://www.aygfsteel.com/lingling/archive/2010/12/08/340090.html向日?/dc:creator>向日?/author>Wed, 08 Dec 2010 11:54:00 GMThttp://www.aygfsteel.com/lingling/archive/2010/12/08/340090.htmlhttp://www.aygfsteel.com/lingling/comments/340090.htmlhttp://www.aygfsteel.com/lingling/archive/2010/12/08/340090.html#Feedback0http://www.aygfsteel.com/lingling/comments/commentRss/340090.htmlhttp://www.aygfsteel.com/lingling/services/trackbacks/340090.htmlJDBC?/span>Java语言提供讉K和操作数据库的一U途径Q通过使用JDBC可以操作L?/span>SQL语句Q来讉K和操作数据库

JDBC~程步骤Q?/span>

*       加蝲数据库驱动(jar 文gQ?/span>

*       获得数据库连?/span>

*       创徏语句 (SQL)

*       执行查询

*       遍历l果?/span>

*       关闭数据库连?/span>

CZ程序:

package com.dr.jdbc;

/**

 * DriverManager 驱动E序理?/span> 在数据库和相应驱动程序之间徏立连?/span>

 * Connection 对象代表与数据库的连接,也就是在已经加蝲?/span>Driver和数据库之间建立q接

 * Statement 提供在基层连接上q行SQL语句Qƈ且访问结?/span>

 * ResultSet ?/span>Statement执行SQL语句Ӟ有时会返?/span>ResultSetl果集,包含的是查询的结果集

 */

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class Test {

    public static void main(String[] args) {   

            query();

    }   

    public static void query(){   

            Connection conn = null;   

            try {

                       //1.加蝲数据库驱?/span>

                    Class.forName("com.mysql.jdbc.Driver");   

                    //2.获得数据库连?/span>

                    //DriverManager 驱动E序理?/span> 在数据库和相应驱动程序之间徏立连

                    conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbc_db", "root", "1234"); 

                     //3.创徏语句

                    String sql = "select * from UserTbl";   

                    //q回一个执?/span>SQL的句?/span>

                    Statement stmt = conn.createStatement(); 

                    //q回查询?/span>

                    //4.执行语句

                    ResultSet rs = stmt.executeQuery(sql);

                    //5.遍历l果?/span>

                    while(rs.next()){   

                            int id = rs.getInt(1);   

                            String username = rs.getString(2);   

                            String password = rs.getString(3);   

                            int age = rs.getInt(4);   

                            System.out.println(id+":"+username+":"+password+":"+age);   

                    }   

            } catch (Exception e) {   

                    e.printStackTrace();   

            }finally{   

                    if(conn!=null){   

                            try {    //关闭数据库连?/span>

                                    conn.close();   

                            } catch (SQLException e) {   

                                    conn = null;   

                                    e.printStackTrace();   

                            }   

                    }   

            }   

    }

}



]]>
socket应用程?/title><link>http://www.aygfsteel.com/lingling/archive/2010/11/12/337931.html</link><dc:creator>向日?/dc:creator><author>向日?/author><pubDate>Fri, 12 Nov 2010 10:14:00 GMT</pubDate><guid>http://www.aygfsteel.com/lingling/archive/2010/11/12/337931.html</guid><wfw:comment>http://www.aygfsteel.com/lingling/comments/337931.html</wfw:comment><comments>http://www.aygfsteel.com/lingling/archive/2010/11/12/337931.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lingling/comments/commentRss/337931.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lingling/services/trackbacks/337931.html</trackback:ping><description><![CDATA[1.包含客户端和服务器两部分E序Qƈ且两个程序能分开独立q行?br /> 2.客户端可以输入服务器地址和端口,q接服务器?br /> 3..服务器能接受客户端连接,q向客户端输出发送的字符丌Ӏ?br /> <br /> 代码如下Q?br /> 服务器端Q?br /> <p>package com.dr.Demo01;</p> <p>import java.io.PrintStream;<br /> import java.net.ServerSocket;<br /> import java.net.Socket;</p> <p>public class ServerSocket01 {</p> <p> public static void main(String[] args) {<br />   ServerSocket server=null;<br />   try{<br />    //服务器在9999端口开辟了服务<br />    server=new ServerSocket(9999);<br />   }catch(Exception e){}<br />   //对于服务器而言Q所有用Lh都是通过SeverSocket实现<br />   Socket client=null;<br />   try{<br />    //服务器在此等待用L链接<br />    System.out.println("{待客户端链接、、?);<br />    client=server.accept();//服务端接收到一个client<br />   }catch(Exception e){}<br />   //要向客户端打C?br />   PrintStream out=null;<br />   //得到向客L输出信息的能?br />   try{<br />    out=new PrintStream(client.getOutputStream());<br />   }catch(Exception e){}<br />   out.println("Hi,how do you do?");<br />   try{<br />    client.close();<br />    server.close();<br />   }catch(Exception e){}<br />   System.out.println("客户端回应完毕、、?);<br />  }</p> <p>}</p> <br /> 客户端:<br /> <br /> <p>package com.dr.Demo01;</p> <p>import java.io.BufferedReader;<br /> import java.io.InputStreamReader;<br /> import java.net.Socket;</p> <p>public class ClientSocket01 {</p> <p> public static void main(String[] args) {<br />  <br />   Socket client=null;<br />   try{<br />    //实际上表C链接到服务器上去?br />    client=new Socket("192.168.1.23",9999);<br />   }catch(Exception e){}<br />   //{待服务器端的回?br />   String str=null;<br />   //如果直接使用InputStream接受会比较麻?br />   //最好的Ҏ是可以把内容攑օ发哦~冲之中进行读?br />   BufferedReader buf=null;<br />   <br />   try{<br />    buf=new BufferedReader(new InputStreamReader(client.getInputStream()));<br />       str=buf.readLine();<br />   }catch(Exception e){}<br />   System.out.println(str);<br />  }</p> <p>}</p> <br /> <br /> <br /> <img src ="http://www.aygfsteel.com/lingling/aggbug/337931.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lingling/" target="_blank">向日?/a> 2010-11-12 18:14 <a href="http://www.aygfsteel.com/lingling/archive/2010/11/12/337931.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>U程间通信应?/title><link>http://www.aygfsteel.com/lingling/archive/2010/11/10/337744.html</link><dc:creator>向日?/dc:creator><author>向日?/author><pubDate>Wed, 10 Nov 2010 10:48:00 GMT</pubDate><guid>http://www.aygfsteel.com/lingling/archive/2010/11/10/337744.html</guid><wfw:comment>http://www.aygfsteel.com/lingling/comments/337744.html</wfw:comment><comments>http://www.aygfsteel.com/lingling/archive/2010/11/10/337744.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lingling/comments/commentRss/337744.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lingling/services/trackbacks/337744.html</trackback:ping><description><![CDATA[  <p class="MsoNormal"><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">U程间通信Q一个线E向数据存储I间d数据Q?/span><span lang="EN-US">Benz</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">Q,另一个线E从数据存储I间取出数据Q?/span><span lang="EN-US">BMW</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">Q?/span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">E序有两U以外需要考虑Q?/span></p> <p class="MsoNormal" style="margin-left: 18pt; text-indent: 21pt; tab-stops: list 18.0pt; mso-list: l1 level1 lfo1; mso-char-indent-count: 2.0"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">1?span style="font: 7pt 'Times New Roman'">      </span></span></span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">假设</span><span lang="EN-US">Benz</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">U程刚向数据存储I间d了一辆R的名字。还没有加入q辆车的颜色Q?/span><span lang="EN-US">CPU</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">切换到?/span><span lang="EN-US">BMW</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">U程Q?/span><span lang="EN-US">Benz</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">U程把q辆车的名字和上辆R的颜色联pd了一赗?/span></p> <p class="MsoNormal" style="margin-left: 18pt; text-indent: 21pt; tab-stops: list 18.0pt; mso-list: l1 level1 lfo1; mso-char-indent-count: 2.0"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">2?span style="font: 7pt 'Times New Roman'">      </span></span></span><span lang="EN-US">Benz</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">放了若干ơ的数据?/span><span lang="EN-US">BMW</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">才开始取数据Q或者是Q?/span><span lang="EN-US">BMW</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">取完了一个数据后Q还没等?/span><span lang="EN-US">Benz</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">攑օ新的数据Q又重复取出已取q的数据?/span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">可能出现的问题:</span></p> <p class="MsoNormal" style="margin-left: 18pt; text-indent: 21pt; tab-stops: list 18.0pt; mso-list: l0 level1 lfo2; mso-char-indent-count: 2.0"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">1?span style="font: 7pt 'Times New Roman'">      </span></span></span><span lang="EN-US">Benz</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">?/span><span lang="EN-US">BMW</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">快时Q?/span><span lang="EN-US">BMW</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">会漏掉一些数据没有取到?/span></p> <p class="MsoNormal" style="margin-left: 18pt; text-indent: 21pt; tab-stops: list 18.0pt; mso-list: l0 level1 lfo2; mso-char-indent-count: 2.0"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">2?span style="font: 7pt 'Times New Roman'">      </span></span></span><span lang="EN-US">BMW</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">?/span><span lang="EN-US">Benz</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">快时Q?/span><span lang="EN-US">BMW</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">取相同的数据?/span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">多个U程׃n同一资源的时候,必须q行同步Q采用同步方法,解决W一个问题?/span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">U程的等待和唤醒机制Q?/span></p> <p class="MsoNormal" style="text-indent: 21pt; mso-char-indent-count: 2.0"><span lang="EN-US">wait()</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">Q告诉当前线E放弃监视器q进入睡眠状态,直到其他U程q入同一监视器ƈ调用</span><span lang="EN-US">notify</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">为止?/span></p> <p class="MsoNormal" style="text-indent: 21pt; mso-char-indent-count: 2.0"><span lang="EN-US">notify()</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">Q唤醒同一对象监视器中调用</span><span lang="EN-US">wait</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">的第一个线E?/span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">E序中采用线E的{待和唤醒机Ӟ当发?/span><span lang="EN-US">BMW</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">没有取走内容Ӟ</span><span lang="EN-US">Benz</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">应该{待Q当</span><span lang="EN-US">BMW</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">把内容取C后,</span><span lang="EN-US">Benz</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">才可以放。这栯决了W二个问题?/span></p> <p class="MsoNormal" style="text-indent: 21pt; mso-char-indent-count: 2.0"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">代码如下Q?/span></p> <p class="MsoNormal"><span lang="EN-US">package com.dr.test;</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">class Car{</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>private String name="</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">奔驰</span><span lang="EN-US">";</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>private String color="</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">银色</span><span lang="EN-US">";</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>private boolean flag=false;</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>public synchronized void set(String name,String color){</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>//</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">如果</span><span lang="EN-US">flag</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">的g?/span><span lang="EN-US">true</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">则要{待</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>if(!flag){</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 3">                     </span>//</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">{待</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 3">                     </span>try{</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 4">                            </span>wait();</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 3">                     </span>}catch(Exception e){}</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>}</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>//</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">如果向下l箋执行了,则表C可以设|,</span><span lang="EN-US">flag=true</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>this.name=name;</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>this.color=color;</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>flag=false;</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>notify();</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>}</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>public synchronized void get(){</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>//</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">如果</span><span lang="EN-US">flag</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">的gؓ</span><span lang="EN-US">true</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">的时候,表示要等?/span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>if(flag){</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 3">                     </span>try{</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 4">                            </span>wait();</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 3">                     </span>}catch(Exception e){}</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>}</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>//</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">如果向下执行了,则表C允许取?/span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>System.out.println(this.name+"-->"+this.color);</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>//</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">改变标志Q表C可以生产了</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>flag=true;</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>notify();</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>}</span></p> <p class="MsoNormal"><span lang="EN-US">}</span></p> <p class="MsoNormal"><span lang="EN-US">class Benz implements Runnable{</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>Car car=null;</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>public Benz(Car c){</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>this.car=c;</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>}</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>public void run(){</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>int i=0;</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>while(true){</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 3">                     </span>if(i==0){</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 4">                            </span>car.set("</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">宝马</span><span lang="EN-US">", "</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">U色</span><span lang="EN-US">");</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 4">                            </span>i=1;</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 3">                     </span>}</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 3">                     </span>else{</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span><span style="mso-tab-count: 3">                     </span>car.set("</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">奔驰</span><span lang="EN-US">", "</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">银色</span><span lang="EN-US">");</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 4">                            </span>i=0;</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 3">                     </span>}</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>}</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>}</span></p> <p class="MsoNormal"><span lang="EN-US">}</span></p> <p class="MsoNormal"><span lang="EN-US">class BMW implements Runnable{</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>Car car=null;</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>public BMW(Car c){</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>this.car=c;</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>}</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>public void run(){</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>while(true){</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 3">                     </span>car.get();</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>}</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>}</span></p> <p class="MsoNormal"><span lang="EN-US">}</span></p> <p class="MsoNormal"><span lang="EN-US">public class Demo01 {</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span></span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>public static void main(String[] args) {</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span><span style="mso-tab-count: 1">       </span>Car c=new Car();</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>Benz benz=new Benz(c);</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>BMW bmw=new BMW(c);</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>new Thread(benz).start();</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>new Thread(bmw).start();</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>}</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">}</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">q行l果Q?br /> </span></p> <p class="MsoNormal"><span lang="EN-US"><o:p><img height="527" alt="" src="http://www.aygfsteel.com/images/blogjava_net/lingling/999999.jpg" width="256" border="0" /> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <img src ="http://www.aygfsteel.com/lingling/aggbug/337744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lingling/" target="_blank">向日?/a> 2010-11-10 18:48 <a href="http://www.aygfsteel.com/lingling/archive/2010/11/10/337744.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>U程实现的两U方?/title><link>http://www.aygfsteel.com/lingling/archive/2010/11/08/337557.html</link><dc:creator>向日?/dc:creator><author>向日?/author><pubDate>Mon, 08 Nov 2010 09:49:00 GMT</pubDate><guid>http://www.aygfsteel.com/lingling/archive/2010/11/08/337557.html</guid><wfw:comment>http://www.aygfsteel.com/lingling/comments/337557.html</wfw:comment><comments>http://www.aygfsteel.com/lingling/archive/2010/11/08/337557.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lingling/comments/commentRss/337557.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lingling/services/trackbacks/337557.html</trackback:ping><description><![CDATA[  <p class="MsoNormal"><span lang="EN-US">Java</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">U程的实现有两种方式Q?/span></p> <p class="MsoNormal"><span lang="EN-US">1 </span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">通过l承</span><span lang="EN-US">Thread</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">cL实现?/span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">每个U程都是通过某个特定</span><span lang="EN-US">Thread</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">对象所对应的方?/span><span lang="EN-US">run()l</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">来完成其操作的,Ҏ</span><span lang="EN-US">run()</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">成ؓU程体?/span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">如果惌启动多线E,则肯定调?/span><span lang="EN-US">start()</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">ҎQ?/span><span lang="EN-US">start</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">Ҏ可以调用被子c覆写过?/span><span lang="EN-US">run</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">Ҏ</span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">不过q种q种实现方式会受到单l承的局?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">CZ代码Q?/span></p> <p class="MsoNormal"><span lang="EN-US">package com.dr.demo01;</span></p> <p class="MsoNormal"><span lang="EN-US">//</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">一个类只要l承?/span><span lang="EN-US">Thread</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">c,则此cd是多U程c?/span></p> <p class="MsoNormal"><span lang="EN-US">class MyThread extends Thread{</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>private String name;</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>public MyThread(String name){</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>this.name=name;</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>}</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>//</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">如果要用多U程Q则必须有一个方法的M</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>public void run(){</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>//</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">打印输出</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>for(int i=0;i<15;i++){</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 3">                     </span>System.out.println(this.name+"---></span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">在运行、、?/span><span lang="EN-US">");</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>}</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>}</span></p> <p class="MsoNormal"><span lang="EN-US">}</span></p> <p class="MsoNormal"><span lang="EN-US">public class ThreadDemo01{</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>public static void main(String args[]){</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>MyThread mt1=new MyThread("</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">U程</span><span lang="EN-US">A");</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>MyThread mt2=new MyThread("</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">U程</span><span lang="EN-US">B");</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>MyThread mt3=new MyThread("</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">U程</span><span lang="EN-US">C");</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>mt1.run();</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>mt2.run();</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">              </span>mt3.run();</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">       </span>}</span></p> <p class="MsoNormal"><span lang="EN-US">}</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">2 </span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">通过实现</span><span lang="EN-US">Runnable</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">接口来实现?/span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">该实现方式有以下好处Q?/span></p> <p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; tab-stops: list 18.0pt; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">?span style="font: 7pt 'Times New Roman'">     </span></span></span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">适合多个相干同程序代码的U程d理同一资源的情c?/span></p> <p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; tab-stops: list 18.0pt; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">?span style="font: 7pt 'Times New Roman'">     </span></span></span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">可以避免׃</span><span lang="EN-US">Java</span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">单承特性带来的局限?/span></p> <p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; tab-stops: list 18.0pt; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">?span style="font: 7pt 'Times New Roman'">     </span></span></span><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">有利于程序的健壮性,代码能够被多个线E共享?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">CZ代码Q?/span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">package</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> com.dr.Demo05;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">class</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> MyThread </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">implements</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> Runnable{</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 1">    </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">void</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> run(){</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 2">       </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">for</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">(</span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> i=0;i<100;i++){</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 3">           </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">try</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">{</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 4">              </span>Thread.<em>sleep</em>(1000);</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 3">           </span>}</span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">catch</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">(Exception e){}</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 3">           </span>System.</span><em><span lang="EN-US" style="font-size: 10pt; color: #0000c0; font-family: 'Courier New'; mso-font-kerning: 0pt">out</span></em><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">.println(Thread.<em>currentThread</em>().getName()+</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'; mso-font-kerning: 0pt">"--</span><span style="font-size: 10pt; color: #2a00ff; font-family: 宋体; mso-hansi-font-family: 'Courier New'; mso-ascii-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">q行?/span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'; mso-font-kerning: 0pt">--"</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">);</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 2">       </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 1">    </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">}</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">class</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> Demo05 {</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 1">    </span></span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 1">    </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">static</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">void</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> main(String[] args) {</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 2">       </span>MyThread mt=</span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">new</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> MyThread();</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 2">       </span>Thread t1=</span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">new</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> Thread(mt,</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'; mso-font-kerning: 0pt">"</span><span style="font-size: 10pt; color: #2a00ff; font-family: 宋体; mso-hansi-font-family: 'Courier New'; mso-ascii-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">U程</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'; mso-font-kerning: 0pt">A"</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">);</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 2">       </span>Thread t2=</span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">new</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> Thread(mt,</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'; mso-font-kerning: 0pt">"</span><span style="font-size: 10pt; color: #2a00ff; font-family: 宋体; mso-hansi-font-family: 'Courier New'; mso-ascii-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">U程</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'; mso-font-kerning: 0pt">B"</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">);</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 2">       </span>Thread t3=</span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">new</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> Thread(mt,</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'; mso-font-kerning: 0pt">"</span><span style="font-size: 10pt; color: #2a00ff; font-family: 宋体; mso-hansi-font-family: 'Courier New'; mso-ascii-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">U程</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'; mso-font-kerning: 0pt">C"</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">);</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 2">       </span>t1.start();</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 2">       </span>t2.start();</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 2">       </span>t3.start();</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 1">    </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">}</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <img src ="http://www.aygfsteel.com/lingling/aggbug/337557.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lingling/" target="_blank">向日?/a> 2010-11-08 17:49 <a href="http://www.aygfsteel.com/lingling/archive/2010/11/08/337557.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">կ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank">౱</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ױ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ƽ</a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank">ϳ</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">˶</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ڳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ӣ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>