ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>91精品国产九九九久久久亚洲,亚洲国产日韩综合一区,国产精品另类一区http://www.aygfsteel.com/lingling/zh-cnFri, 13 Jun 2025 21:41:34 GMTFri, 13 Jun 2025 21:41:34 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 frameworkåQ‰ã€?span lang="EN-US">Junit是一套框æžÓž¼Œ¾l§æ‰¿TestCase¾c»ï¼Œž®±å¯ä»¥ç”¨Junit˜q›è¡Œè‡ªåЍ‹¹‹è¯•了ã€?/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“果的断­a€åQ?span lang="EN-US">AssertionåQ?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-librariesåQŒç‚¹å‡?span lang="EN-US">Add External JARs,加上JUNIT包ã€?span lang="EN-US">

 

 3 用法

- 创徏åQŒä»Žjunit.framework.TestCase‹z„¡”Ÿnuit test需要的test case.

- 书写‹¹‹è¯•æ–ÒŽ³•

- ¾~–译 书写çŽ?span lang="EN-US">test case后,¾~–译所写的test case¾c?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™åœ¨¾U¿äh数加</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¶æŠŠå®ƒä¹Ÿä¿å­˜åœ¨å®¢æˆïL«¯å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">每次è¯ä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">的客æˆïL«¯åQŒåœ¨æœåŠ¡å™¨ç«¯å¯¹åº”˜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">æ–ÒŽ³•æ—Óž¼Œè¯´æ˜Žåˆæœ‰ä¸€ä¸ªå®¢æˆ·åœ¨è¯äh±‚åQŒæ­¤æ—¶ä‹É在线的ä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模式的目的就是实现Web¾pȝ»Ÿçš„职能分工ã€?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>˜q‡æ×o器—防止未ç™Õ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è¿‡˜q‡æ×o器,˜q‡æ×o器判断是否有˜q™ä¸ªç”¨æˆ·åQŒæœ‰åˆ™èŸ©è½¬è¿›å…¥ç½‘站内部页面,没有则返回登录页面ã€?/span>

 

˜q‡æ×o器代码:

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 {

             

       }

 

}

 

LoginServlet¾c»ï¼Œ˜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攑ֈ°sessionåQŒç„¶åŽåœ¨æ‹¦æˆªå™¨ä¸­åˆ¤æ–­

            //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½•的界面:



]]>
邮箱自动ç™Õd½•http://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€‰ä¸Šä¸¤å‘¨å†…自动登录,两周内不用输入用户名和密码邮½Ž×ƒ¼šè‡ªåЍç™Õd½•åQŒè¿™æ˜¯å› ä¸ºç¬¬ä¸€‹Æ¡ç™»å½•时服务器将用户名和密码写入cookie中,òq¶è¿”回给客户端ã€?/span>

下次ç™Õd½•æ—?/span>Http协议会带着用户çš?/span>cookieåŽÀLœåŠ¡å™¨éªŒè¯å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>TomcatåQŒæ‰“å¼€‹¹è§ˆå™¨è¾“入网址:http://127.0.0.1:8080/AutoLogin/login.do˜q›è¡Œ‹¹‹è¯•ã€?/span>



]]>
Httpä¹Þq ˜q‡æ×oå™?/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Œæ¯‹Æ¡å¯¹¾|‘页的请求都会进入到˜q‡æ×o器,ò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ªç‘ž/òqÏx—¶/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ªç‘ž/òqÏx—¶/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 æ–‡äšgåQ?/span>

*       获得数据库连æŽ?/span>

*       创徏语句 (SQL)

*       执行查询

*       遍历¾l“æžœé›?/span>

*       关闭数据库连æŽ?/span>

½CÞZ¾‹ž®ç¨‹åºï¼š

package com.dr.jdbc;

/**

 * DriverManager 驱动½E‹åº½Ž¡ç†å™?/span> åœ¨æ•°æ®åº“和相应驱动程序之间徏立连æŽ?/span>

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

 * Statement 提供在基层连接上˜qè¡ŒSQL语句åQŒåƈ且访问结æž?/span>

 * ResultSet åœ?/span>Statement执行SQL语句æ—Óž¼Œæœ‰æ—¶ä¼šè¿”å›?/span>ResultSet¾l“果集,包含的是查询的结果集

 */

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Œæ‰€æœ‰ç”¨æˆïLš„è¯äh±‚都是通过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的颜色联¾pÕdˆ°äº†ä¸€èµ—÷€?/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'">¾cÀL¥å®žçްã€?/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'">½CÞZ¾‹ä»£ç å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»ï¼Œåˆ™æ­¤¾cÕd°±æ˜¯å¤š¾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'">½CÞZ¾‹ä»£ç å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>