??xml version="1.0" encoding="utf-8" standalone="yes"?>国产91精品一区二区,亚洲永久字幕,97精品国产97久久久久久 http://www.aygfsteel.com/terryxue/archive/2012/11/07/390930.htmlterryxueterryxueWed, 07 Nov 2012 08:32:00 GMThttp://www.aygfsteel.com/terryxue/archive/2012/11/07/390930.htmlhttp://www.aygfsteel.com/terryxue/comments/390930.htmlhttp://www.aygfsteel.com/terryxue/archive/2012/11/07/390930.html#Feedback0http://www.aygfsteel.com/terryxue/comments/commentRss/390930.htmlhttp://www.aygfsteel.com/terryxue/services/trackbacks/390930.html数据库连接泄漏是件可怕的事情Q可能直接导致系l停止响应,另外因事务管理错误而导致数据出C一致也是g可怕的事情Q在后台pȝ中,q两个问题经怼l伴出现Q本文将通过案例详解使用Spring+Hibernate时可能导致问题的几种情况Q希望对大家有所帮助?br />
文章比较长,如果你是遇到了问题正急求解决Ҏ的话Q可以先只读q一条:查你的dao是否有直接用sessionQ修改ؓ使用hibernateTemplate?/em>
如果你希望更多的了解session, hibernateTemplate, transactionQ请l箋?br />
以下案例ZStruts2.3.1+Spring3.1.1+hibernate3.5.4完成Q案例场景ؓ对系l参数进行管理,涉及如下四个c:
Action PropertyAction
Service PropertyService/PropertyServiceImpl
DAO PropertyDAOQ承HibernateDaoSupportQ?/td>
Entity SysProperty

1. Action中直接调用daoQ未使用getHibernateTemplate
在一个复杂的多层架构pȝ中,事务控制在service中完成是更合理的Q不应交由view层来控制Q本文假定你是这么做的。一般我们代码的处理序为action->service->daoQ然而M有h会打破这U逻辑Q打破可以,但要注意如下问题?br /> 假定Action中有如下代码Q?br />
1 @Autowired
2 private PropertyDAO propertyDAO;
3 @Override
4 public String execute() throws Exception {
5      model = propertyDAO.get(1L);
6      return null;
7 }

 q里action直接讉K了dao中的getҎQ因事务配置在service层,因此q里是没有事务控制的?br /> 接下来我们看dao中的getҎQ假定你的定义如下:
1 public SysProperty get(Long id) {
2     return (SysProperty) getSession().get(SysProperty.class, id);
3 }

代码很简单,getSession是父cHibernateDaoSupport中提供的ҎQ这里直接通过实体Id get得到l果?br /> 接下来发布一下系l,讉K面Q好像一切OKQ但是,再刷新几下看看,可能你的q接池配|的比较大,要刷新多ơ,最后你发会C的系l停止了响应。更直接点,调用你采用的q接池中的相关API下当前q接占用情况Q你会发现刷Cơ,被占用连接增加一个,可怕的事情发生了?br /> 结Q在无事务管理器控制的情况下Q通过getSession()打开的session不会被关闭,q个session所占用的数据库q接也不会被释放?/strong>

接下来,来点更可怕的Q假设你的action中是q样的:
1 private List<Long> ids;
2 @Override
3 public String execute() throws Exception {
4   for(Long id: ids) {
5     results.add(propertyDAO.get(id));
6   }
7   return null;
8 }
9 
q时试一ơ传入多个idq行hQ请求结束后查下q接敎ͼ你发C入多IDQ就有多连接被占用Q也是说每一ơ对dao的get调用都会占用一个不可释攄q接?br /> 结Q如果没有配|事务管理器且直接用getSession得到sessionQ每ơgetSession都会创徏一个新的sessionQ每个session占用一个新的数据库q接Qsession无线E别的׃n?/strong>

2. Action中直接调用daoQ用getHibernateTemplate
当然Q你可能没遇到过前面的情况,因ؓ你会在DAO中这样写代码Q?br />
1 public SysProperty get(Long id) {
2     return getHibernateTemplate().get(getEntityClass(), id);
3 }
那么是否׃切OK呢?如果只是惌册接泄漏这个问题的话,{案是YesQ尝试多ơ请求,查下你的q接池状况,没有q接泄漏的情况出现。所以简单而可靠的办法是不再直接使用getSessionQ而是使用getHibernateTemplateq行相应操作Q当需要用sessionӞ可以用下面的ҎQ?br />
getHibernateTemplate().execute(new HibernateCallback<T>() {
  
public T doInHibernate(Session session) throws HibernateException {
    Query queryObject 
= session.createQuery(hql);
    //....
  }
});
But...如果你的pȝ真的出现了连接泄漏,可能你需要关注更多?br /> q是前面Action中根据ID循环查询的操作,在这个案例中Q每一ơDao的getҎ都将重复q样的逻辑Q创建sessionQ分配session一个连接,关闭sessionQ释放session占用的连接,也就是说session不会在线E别共享。让我们l箋Q进入第三种情况来进一步说明?br />
3. Service未合理配|事务管理器
l大部分情况下我们会lservice配置事务理器,可能是通过xml或是@Transactional注解Q但q配置了就OK了。看下面的例子:
@Transactional
public
 class PropertyServiceImpl implements PropertyService {
    @Autowired
    
private PropertyDAO propertyDAO;
    
    @PostConstruct
    
public void init(){
        propertyDAO.get(
1L);
    }
    
//
}
当然Q假定你的DAOq是写成了这P
public SysProperty get(Long id) {
    
return (SysProperty) getSession().get(SysProperty.class, id);
}
你期望在service初始化好后做一些数据库操作Q你也给service配置了事务管理器Q接下来你启动应用,然后查连接池中的q接敎ͼ你会发现有连接未被释放!可能你会果断的修改dao中的ҎQ?br />
public SysProperty get(Long id) {
    
return getHibernateTemplate().get(getEntityClass(), id);
}
然后你会理所当然的认为,即配置了事务管理器Q依然不能用getSession()Q事实可能ƈ非如此?br />我们调整一下代码,不在init中调用dao中的getҎQ改为如下:
public SysProperty getProperty(Long id) {
    
return propertyDAO.get(id);
}
然后DAOl箋使用(SysProperty) getSession().get(SysProperty.class, id)Q而action中的调用修改为:
@Autowired
private PropertyService propertyService;
@Override
public String execute() throws Exception {
    model 
= propertyService.getProperty(1L);
    
return null;
}
重新发布Q调用,查连接数Q发现无被占用连接存在?br />结Q如果正配|了事务理器,getSession是安全的?/strong>

q时要清楚spring是通过AOP来实C务控制的Q?span style="color: #000000; ">@PostConstructҎ不会受AOP控制Q因此上面的initҎ{于无事务管理器?br />那么再回头来_是否只要dao中用getHibernateTemplate׃会有问题呢?
假定service中的@PostConstructҎ如下Q?br />
@PostConstruct
public void init(){
    SysProperty p 
= new SysProperty();
    p.setName(
"test_property_1");
    propertyDAO.save(p);
}
一下,前面已经提到q个Ҏ不受spring的事务管理器控制?br />假定DAO中的saveҎ如下Q?br />
public void save(SysProperty o){
    getSession().save(o);
}
启动一下应用,查一下连接数Q再查一下数据是否有存储到数据库中。因为我们直接用了getSessionQ因此连接不会释放,q点前面已经提到Q但同时我们q将发现数据没有被存储,当然q个也好理解Q因Z面已l提到这个方法未配置事务理器?br />结Q通过getSession().save()保存数据Ӟ事务不会自动提交?/strong>

现在再修改下DAO中的saveҎQ?br />
public void save(SysProperty o){
    getHibernateTemplate().save(o);
}
启动一下应用,查一下连接数Q再查一下数据是否有存储到数据库中。因为我们用hibernateTemplateQ因此连接有释放Q这点前面已l提刎ͼ但同时我们还发现数据也已存储到数据库中,说明hibernateTemplate会自动提交事务?br />结Q如果未配置事务理器,通过hibernateTemplate操作Ӟ会自动创建ƈ提交事务?/strong>

所以如果你觉得使用hibernateTemplateOK了,那就要小心下面的代码了:
@PostConstruct
public void init(){
  
//1. 从你的̎号A中扣除一万块
  
//2. q里的代码抛Z异常
  
//3. 你的̎号B中增加一万块 
}
如果上面的第2步出C异常Q那么因?的事务已l提交,?却没有执行,最l导致了数据的不一_后果和连接泄漏一样严重!
除了@PostConstructQ还有其它原因会D@Transactional无效Q假定我们的service配置了事务管理器Q但存在如下代码Q?br />
pubic void someServiceMethod(){
  
new Thread(){
    
public void run(){
        doSomethingLater();
    }
  }
}

public void doSomethingLater(){
  
//做一pd数据库操?/span>
}
那么你可以去验证下doSomethingLater是否受事务管理器控制Q事实上q不会,所以你需要理解spring AOP的机Ӟ否则一个小坑会酿成N?br />q里q有一U情况,你不是在cM面配|?span style="color: #0000ff;">@TransactionalQ而是在方法上面配|,假定存在如下的代码:
//该方法不需要事务控?/span>
public void method1(){
    method2();
}

//下面的方法需要事务控?/span>
@Transactional
public void method2(){
    
//do something
}
因ؓ你需要给不同的方法配|不同的事务机制Q因此你没有在类上面q行配置Q然后你在客Lq行了如下调用:service.method1(); method2中的Ҏ会受事务理吗?可悲的是q不会?br />上面讲到的线E调用和内部Ҏ调用可以q样来处理:
@Autowired
private ApplicationContext context;  
public void method1(){
    PropertyService service 
= context.getBean(PropertyService.class);
    service.method2();
}
结Q注意spring的AOP机制

4. Service合理配置事务理?/div>最后补充一下,如果事务理器配|正的话会发生什么。这时不你是用getSessionq是getHibernateTemplateQ结果都是一Psession在threadU别׃nQsession只有一个?br />
ȝQ难得这周开始工作变得清Ԍ上班旉q能写写博客Q想惛_D|子真是自׃苦ؓ难自己。回到话题,使用getSession没什么大错,因ؓ你本应正配|事务管理器。用hibernateTemplate能解x有连接泄漏的问题Q但要小心他可能隐藏的事务问题。另外就是spring中内部方法调用时AOP的问题,创徏新线E时的事务问题。最后希望这有点绕的文章能l你带来帮助?/div>

terryxue 2012-11-07 16:32 发表评论
]]>eclipse+JUnit试Seamhttp://www.aygfsteel.com/terryxue/archive/2011/04/29/349283.htmlterryxueterryxueFri, 29 Apr 2011 09:04:00 GMThttp://www.aygfsteel.com/terryxue/archive/2011/04/29/349283.htmlhttp://www.aygfsteel.com/terryxue/comments/349283.htmlhttp://www.aygfsteel.com/terryxue/archive/2011/04/29/349283.html#Feedback0http://www.aygfsteel.com/terryxue/comments/commentRss/349283.htmlhttp://www.aygfsteel.com/terryxue/services/trackbacks/349283.html 目ZMaven搭徏QMaven实是个好东西)。用的技术有jsf + richfaces3.3 + seam2.2 + hibernate3.3 + jasperreport3.7。感觉seam很强大,但没有spring方便Q至在试斚w要花费一d夫?br /> 我没有将试代码攑ֈ目的测试目录下Q而是另v了一个工E,专用于测试,以下完整的介绍一下这个过E。更多是步骤描述了,Z么要q样做就不多解释了,也没能力解释清楚?br /> 1. 建立试工程Qseamtest。最单的maven工程卛_。这里不介绍如何在eclipse中集成mavenQ读者可以搜搜m2eclipseQ这是一个eclipse插g?br />
2. 配置seamtest的pom.xmlQ增加如下三个依赖:
<dependency>
    
<groupId>org.jboss.seam.embedded</groupId>
    
<artifactId>hibernate-all</artifactId>
    
<version>beta3.SP10</version>
</dependency>
<dependency>
  
<groupId>org.jboss.seam.embedded</groupId>
  
<artifactId>jboss-embedded-all</artifactId>
  
<version>beta3.SP10</version>
</dependency>
<dependency>   
  <
groupId>org.jboss.seam.embedded</groupId>
  
<artifactId>thirdparty-all</artifactId>
  
<version>beta3.SP10</version>
</dependency>

3. q三个依赖需要从jboss仓库下蝲Q可以访问这个站点:https://repository.jboss.org/nexus/index.htmlQ然后根据上面提供的构gIdq行搜烦Q或者直接将仓库指向Qhttps://repository.jboss.org/nexus/content/repositories/releases/。如何在settings.xml文g中配|仓库地址不难Qgoogle下吧?br />
4. 需要测试的目及junit加到maven依赖中,我的配置为:
<dependency>
  
<groupId>cn.terry</groupId>
  
<artifactId>target-web</artifactId>
  
<version>0.0.1-SNAPSHOT</version>
  
<type>war</type>
</dependency>
<dependency>
  
<groupId>junit</groupId>
  
<artifactId>junit</artifactId>
  
<version>4.8.2</version>
  
<type>jar</type>
</dependency>
上面?#8220;target-web”是我要试的基于maven构徏的项目?br />
5. 保存配置后等待eclipse下蝲完所有依赖的jar包?br />
6. 目标工E加到测试工E的依赖工程中。参考下图:


7. 下蝲Embedded JBossQ下载地址Q?a target="_blank" >http://sourceforge.net/projects/jboss/files/Embedded%20JBoss/Embedded%20JBoss%20Beta%203/?br />
8. 解压~下载的压羃后,扑ֈ文g夹:bootstrapQ除q个文g夹外Q其它下载文件在我们q个案例里面都不需要用到?br />
9. bootstrap文g多w接到试工程的source下面Q参考如下操作界面:


10. target-web的webapp目录链接到测试工E的source下面Q这一步比较奇怪,不多解释了,照着做就行了?br />
11. 配置DataSource。在bootstrap/deploy下面有文件hsqldb-ds.xmlQ注意文件名的结N分是“-ds.xml”Q你可以按这个命名规则徏立自己需要的datasource文gQ如oracle-ds.xml。datasource文g具体怎么写,p参考hsqldb-ds.xml了,q个q是比较Ҏ的。如果你的项目不需要dataSource的话pq这一步吧?br />
12. 接下来开始写试代码了,如下二个cȝ接复制过ȝQ?br /> MySeamTestBase: 其它试cd以直接承该c?br />
package cn.terry.test;

import java.util.Properties;

import org.jboss.seam.mock.AbstractSeamTest;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class MySeamTestBase extends AbstractSeamTest {
    
// static helper instance to call non static methods in
    
// a static method
    private static MySeamTestBase seamTest = new MySeamTestBase();
    
private static boolean batch = false;

    
/*
     * JUnit test life cycle methods.
     
*/

    @BeforeClass
    
public static void setUpBeforeClass() throws Exception {
        
if (!batch) {
            seamTest.startContainer();
        }
    }

    @AfterClass
    
public static void tearDownAfterClass() throws Exception {
        
if (!batch)
            seamTest.stopContainer();
    }

    @Before
    
public void setUp() throws Exception {
        setupClass();
        begin();
    }

    @After
    
public void tearDown() throws Exception {
        end();
        cleanupClass();
    }

    
/*
     * Helper methods
     
*/

    
// starts the JBoss embedded ejb container
    public void startContainer() throws Exception {
        
super.startSeam();        
    }

    
// stops the JBoss embedded ejb container
    public void stopContainer() throws Exception {
        
super.stopSeam();
    }
    
    
public boolean isBatch() {
        
return batch;
    }

    
// used by a JUnit.Suite runner to set the batch flag
    public void setBatch(boolean fBatch) {
        batch 
= fBatch;
    }
}


MySuiteRunner, 扚w执行多个试c:
package cn.terry.test;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;

import cn.terry.test.testcase.HelloTest;

 
@Suite.SuiteClasses({ 
    HelloTest.
class
})
@RunWith(Suite.
class)
public class MySuiteRunner {
    
private static MySeamTestBase seamTest = new MySeamTestBase();
 
    @BeforeClass
    
public static  void setUpBeforeClass() throws Exception {    
        
// set the flag to signal batch mode
        seamTest.setBatch(true);
        seamTest.startContainer();
    }
 
    @AfterClass
    
public static void tearDownAfterClass() throws Exception {        
        seamTest.stopContainer();
        seamTest.setBatch(
false);
    }
}

下面的HelloTest是一个具体的试c,模仿着写就行了Q?br />
package cn.terry.test.testcase;

import org.junit.Test;

import cn.terry.test.MySeamTestBase;

public class HelloTest extends MySeamTestBase {
    @Test
    
public void testRollback() throws Exception{
        
new FacesRequest() {
            
protected void invokeApplication() throws Exception {
                Object seamInstance 
= getInstance("instanceName");
            }
        }.run();
    }

}
FacesRequest里面q有许多Ҏ可以重写Q自qL册吧?br />

13. 到执行这一步了Q也不容易,如果是jdk6的话Q要在运行时加上q行参数Q?Dsun.lang.ClassLoader.allowArraySyntax=true。eclipse中如何配|请参考如下界面:

点击runQn受成果吧?br />
14Q可能没有这么幸q,数据库连接池可能没有初始化。在我们的项目中Q连接池是在一个servlet listener中初始化的,通过如上方式q行没法自动初始化Q导致测试时出现数据库连接失败的情况Q这时候需要自己写些代码去初始化连接了?br />
ȝQ整个过E可能会出现没完没了的异常,别放弃,多googleQM成功的?br />

terryxue 2011-04-29 17:04 发表评论
]]>
glassfishv2中ejb的定义与调用http://www.aygfsteel.com/terryxue/archive/2010/03/06/314695.htmlterryxueterryxueSat, 06 Mar 2010 13:08:00 GMThttp://www.aygfsteel.com/terryxue/archive/2010/03/06/314695.htmlhttp://www.aygfsteel.com/terryxue/comments/314695.htmlhttp://www.aygfsteel.com/terryxue/archive/2010/03/06/314695.html#Feedback2http://www.aygfsteel.com/terryxue/comments/commentRss/314695.htmlhttp://www.aygfsteel.com/terryxue/services/trackbacks/314695.html阅读全文

terryxue 2010-03-06 21:08 发表评论
]]>
js压羃工具http://www.aygfsteel.com/terryxue/archive/2009/12/18/306486.htmlterryxueterryxueFri, 18 Dec 2009 02:19:00 GMThttp://www.aygfsteel.com/terryxue/archive/2009/12/18/306486.htmlhttp://www.aygfsteel.com/terryxue/comments/306486.htmlhttp://www.aygfsteel.com/terryxue/archive/2009/12/18/306486.html#Feedback9http://www.aygfsteel.com/terryxue/comments/commentRss/306486.htmlhttp://www.aygfsteel.com/terryxue/services/trackbacks/306486.html阅读全文

terryxue 2009-12-18 10:19 发表评论
]]>
览|页时如何捕L内表单提交l服务器的内?/title><link>http://www.aygfsteel.com/terryxue/archive/2009/12/17/306396.html</link><dc:creator>terryxue</dc:creator><author>terryxue</author><pubDate>Thu, 17 Dec 2009 09:40:00 GMT</pubDate><guid>http://www.aygfsteel.com/terryxue/archive/2009/12/17/306396.html</guid><wfw:comment>http://www.aygfsteel.com/terryxue/comments/306396.html</wfw:comment><comments>http://www.aygfsteel.com/terryxue/archive/2009/12/17/306396.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/terryxue/comments/commentRss/306396.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/terryxue/services/trackbacks/306396.html</trackback:ping><description><![CDATA[     摘要: 利用jsl合firebug得到正在览的网中的表单提交数据时实际向服务器发送过ȝ数据。我们利用抓取到的这些数据,可以伪造请求给服务器或辑ֈ其它目的?nbsp; <a href='http://www.aygfsteel.com/terryxue/archive/2009/12/17/306396.html'>阅读全文</a><img src ="http://www.aygfsteel.com/terryxue/aggbug/306396.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/terryxue/" target="_blank">terryxue</a> 2009-12-17 17:40 <a href="http://www.aygfsteel.com/terryxue/archive/2009/12/17/306396.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过java抓取M指定|页的数?/title><link>http://www.aygfsteel.com/terryxue/archive/2009/12/17/306329.html</link><dc:creator>terryxue</dc:creator><author>terryxue</author><pubDate>Thu, 17 Dec 2009 09:31:00 GMT</pubDate><guid>http://www.aygfsteel.com/terryxue/archive/2009/12/17/306329.html</guid><wfw:comment>http://www.aygfsteel.com/terryxue/comments/306329.html</wfw:comment><comments>http://www.aygfsteel.com/terryxue/archive/2009/12/17/306329.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.aygfsteel.com/terryxue/comments/commentRss/306329.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/terryxue/services/trackbacks/306329.html</trackback:ping><description><![CDATA[     摘要: 使用java抓取|页内容。你可以利用q种技术实现网站静态化Q即生成html面Q你可以伪造表单提交,q可以抓取互联网上Q何网内的部分数据?nbsp; <a href='http://www.aygfsteel.com/terryxue/archive/2009/12/17/306329.html'>阅读全文</a><img src ="http://www.aygfsteel.com/terryxue/aggbug/306329.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/terryxue/" target="_blank">terryxue</a> 2009-12-17 17:31 <a href="http://www.aygfsteel.com/terryxue/archive/2009/12/17/306329.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用java构徏http服务?/title><link>http://www.aygfsteel.com/terryxue/archive/2009/12/17/306328.html</link><dc:creator>terryxue</dc:creator><author>terryxue</author><pubDate>Thu, 17 Dec 2009 09:26:00 GMT</pubDate><guid>http://www.aygfsteel.com/terryxue/archive/2009/12/17/306328.html</guid><wfw:comment>http://www.aygfsteel.com/terryxue/comments/306328.html</wfw:comment><comments>http://www.aygfsteel.com/terryxue/archive/2009/12/17/306328.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.aygfsteel.com/terryxue/comments/commentRss/306328.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/terryxue/services/trackbacks/306328.html</trackback:ping><description><![CDATA[     摘要: web服务器大安会用Q可是它的实现原理是到底如何呢,其实只要M下http协议Q大家基本也能开发出一个简单的web服务器出来了。本文将介绍http协议Qƈ带大家一块来开发一个简单的服务器?nbsp; <a href='http://www.aygfsteel.com/terryxue/archive/2009/12/17/306328.html'>阅读全文</a><img src ="http://www.aygfsteel.com/terryxue/aggbug/306328.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/terryxue/" target="_blank">terryxue</a> 2009-12-17 17:26 <a href="http://www.aygfsteel.com/terryxue/archive/2009/12/17/306328.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jspq问题剖析与终极解x?/title><link>http://www.aygfsteel.com/terryxue/archive/2009/12/17/306326.html</link><dc:creator>terryxue</dc:creator><author>terryxue</author><pubDate>Thu, 17 Dec 2009 09:20:00 GMT</pubDate><guid>http://www.aygfsteel.com/terryxue/archive/2009/12/17/306326.html</guid><wfw:comment>http://www.aygfsteel.com/terryxue/comments/306326.html</wfw:comment><comments>http://www.aygfsteel.com/terryxue/archive/2009/12/17/306326.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/terryxue/comments/commentRss/306326.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/terryxue/services/trackbacks/306326.html</trackback:ping><description><![CDATA[     摘要: 服务器返回ؕ码页面,h的数据发送到服务器后取出来是qQ以上两个问题是web开发h员经帔R到的问题Q解册c问题需要理解ؕ码问题的Ҏ所在?nbsp; <a href='http://www.aygfsteel.com/terryxue/archive/2009/12/17/306326.html'>阅读全文</a><img src ="http://www.aygfsteel.com/terryxue/aggbug/306326.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/terryxue/" target="_blank">terryxue</a> 2009-12-17 17:20 <a href="http://www.aygfsteel.com/terryxue/archive/2009/12/17/306326.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>功能强大使用方便界面观的js日历http://www.aygfsteel.com/terryxue/archive/2009/12/17/306323.htmlterryxueterryxueThu, 17 Dec 2009 09:16:00 GMThttp://www.aygfsteel.com/terryxue/archive/2009/12/17/306323.htmlhttp://www.aygfsteel.com/terryxue/comments/306323.htmlhttp://www.aygfsteel.com/terryxue/archive/2009/12/17/306323.html#Feedback4http://www.aygfsteel.com/terryxue/comments/commentRss/306323.htmlhttp://www.aygfsteel.com/terryxue/services/trackbacks/306323.html阅读全文

terryxue 2009-12-17 17:16 发表评论
]]>
վ֩ģ壺 ƽ| | | | | ɽ| | | | ͩ| | | ʯ¥| ǰ| | | | | | Դ| Ҧ| е| | | | ͩ| | | | | | | | | ַ| | Ͱ| غ| Ӣ| ˮ| ƽɽ|