SSH 无法刷新
晕,写了半个小时又要重新写,  天呐问题这样, 用SSH框架开发,开发完成后, 我部署到tomcat上运行,没问题, 刷新,没问题,又刷新,没问题,刷新........  第八次刷新!  问题出现了, 不报错, 就是卡在那里不动了, 一直是连接状态就是无内容显示,  我用debug 追踪, 发现问题, 数据库无法返回数据,  伤心!几天了, 就是没有解决, 请老大帮个忙,看看咯,小生感激不尽  :) -----------------------------------index.jsp----------------<jsp:forward page="/index.do"></jsp:forward>         /*直接转向,到IndexAction*/--------------------------------IndexAction-------------
public class IndexAction  extends Action{
private QuestionService questionService;                  /*spring 注入*/
public void setQuestionService(QuestionService questionService) {
  this.questionService = questionService;
}public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  request.setAttribute("questionCount", questionService.getQuestionCount());     /*Action调用的questionService方法*/  request.setAttribute("items",questionService.getItems());                          /*Action调用的questionService方法*/
  return mapping.findForward("index");                                                    /*转向*/}}          ---------------------------QuestionServiceImpl-----------------------------------------------package com.zhidao.service.impl;
import java.util.List;
import com.zhidao.dao.ItemDao;
import com.zhidao.dao.QuestionDao;
import com.zhidao.dao.SubitemDao;
import com.zhidao.service.QuestionService;
import com.zhidao.vo.Item;
import com.zhidao.vo.Question;
public class QuestionServiceImpl implements QuestionService {
private ItemDao itemDao;
private SubitemDao subitemDao;                                  /*IndexAction调用的DAO依赖注入*/private QuestionDao questionDao;                                /*IndexAction调用的DAO依赖注入*/public void setQuestionDao(QuestionDao questionDao) {
  this.questionDao = questionDao;
}
public void setSubitemDao(SubitemDao subitemDao) {
  this.subitemDao = subitemDao;
}
public void setItemDao(ItemDao itemDao) {
  this.itemDao = itemDao;
}
public List getItems() {                /*IndexAction调用的方法*/  return itemDao.getAll(); 
}
public List getSubitems() {
  return subitemDao.getAll();
}
public boolean input(Question question) {
  
  
  try{
   questionDao.save(question);
   return true;
  }catch(Exception ex){
   ex.printStackTrace();
   return false;
  }
}
public int getQuestionCount() {                         /*IndexAction调用的方法*/  return questionDao.getQuestionCount();
}
public List getResults(int page, int itemid) {
  List list=questionDao.getByItemid(page, itemid);
  return list;
}
public List getSubitems(int itemid) {            
  return subitemDao.getByItemid(itemid);
}
public List getResultsBySubid(int page, int itemid, int subid) {
  return questionDao.getBySubid(page, itemid, subid);
}
public Item getItem(int itemid) {
  return itemDao.getItem(itemid);
}}
----------------------QuestionDaoImpl--------------------------------------------public class QuestionDaoImpl extends HibernateDaoSupport implements QuestionDao {public void save(Question question) {
  this.getHibernateTemplate().save(question);
}
public int getQuestionCount() {         /*Service调用的方法---第八次开始,debug到这里停止, 不报错,无法得到返回数据 */  Query query=this.getSession().createSQLQuery("select count(*) from question");
  List list=query.list();
  this.getSession().close();
  return (Integer)list.get(0);
}
public List getByItemid(int page,int itemid) {
  Session session=this.getSession();
  Query query=session.createSQLQuery("select * from question where itemid="+itemid+" order by createtime desc").addEntity(Question.class);
  query.setFirstResult((page-1)*25);
  query.setMaxResults(25);
  List list=query.list();
  return list;
}
public List getBySubid(int page, int itemid, int subid) {
  Session session=this.getSession();
  Query query=session.createSQLQuery("select * from question where itemid="+itemid+" and subitemid="+subid+" order by createtime desc").addEntity(Question.class);
  query.setFirstResult((page-1)*25);
  query.setMaxResults(25);
  List list=query.list();
  return list;
}
}
-------------------ItemDaoImpl-----------------------------package com.zhidao.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.zhidao.vo.Item;
import com.zhidao.dao.ItemDao;
public class ItemDaoImpl extends HibernateDaoSupport implements ItemDao {
public List getAll() {
  return this.getHibernateTemplate().loadAll(Item.class);                            /*Service调用的方法*/}
public Item getItem(int itemid) {
  return (Item)this.getHibernateTemplate().get(Item.class, itemid);
}
}--------------------applicationContex.xml-----------------------------

/*数据源hibernate集成jdbc*/

<bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName"
   value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
  </property>
  <property name="url"
   value="jdbc:sqlserver://localhost:1433;databaseName=zhidao">
  </property>
  <property name="username" value="sa"></property>
  <property name="password" value="123"></property>
</bean>
<bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource">
   <ref bean="dataSource" />
  </property>
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">
     org.hibernate.dialect.SQLServerDialect
    </prop>
    <prop key="hibernate.connection.autocommit">true</prop>
    <prop key="hibernate.show_sql">true</prop>
   </props>
  </property>
  <property name="mappingResources">
   <list>
   <value>com/zhidao/vo/Iuser.hbm.xml</value>
   <value>com/zhidao/vo/Item.hbm.xml</value>
   <value>com/zhidao/vo/Subitem.hbm.xml</value>
   <value>com/zhidao/vo/Question.hbm.xml</value>
    </list>
  </property>
</bean>/*各个配置注入, 验证过了, 应该没出问题  :)*/
<bean id="userDao" class="com.zhidao.dao.impl.UserDaoImpl">
  <property name="sessionFactory" ref="sessionFactory" />
</bean><bean id="userService" class="com.zhidao.service.impl.UserServiceImpl">
  <property name="userDao" ref="userDao" />
</bean>
<bean name="/user" class="com.zhidao.action.UserAction">
  <property name="userService" ref="userService" />
</bean><bean id="itemDao" class="com.zhidao.dao.impl.ItemDaoImpl">
  <property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="subitemDao" class="com.zhidao.dao.impl.SubitemDaoImpl">
  <property name="sessionFactory" ref="sessionFactory" />
</bean><bean id="questionDao" class="com.zhidao.dao.impl.QuestionDaoImpl">
  <property name="sessionFactory" ref="sessionFactory" />
</bean><bean id="questionService" class="com.zhidao.service.impl.QuestionServiceImpl">
  <property name="itemDao"  ref="itemDao" />
  <property name="subitemDao" ref="subitemDao" />
  <property name="questionDao" ref="questionDao" />
</bean><bean name="/question" class="com.zhidao.action.QuestionAction">
  <property name="questionService" ref="questionService" />
</bean><bean name="/index" class="com.zhidao.action.IndexAction">
  <property name="questionService" ref="questionService" />
</bean><bean name="/show" class="com.zhidao.action.ShowAction">
  <property name="questionService" ref="questionService" />
</bean> 

解决方案 »

  1.   

    摆脱, 怎么管啊?  使用hibernateHibernateTemplate  spring管理的, 会自动关闭的啊,而且,我关闭后, 也会出同样的错,而且,,  我看过的书也好, 教程也好, 所有的DAO 交给spring管理后都没有关闭,上次问了个达人, 他看到我把数据库连接关闭了, 马上就说, “看见没, 问题在这里, 谁叫你关的吖? 这里不能关, 天呐,我都要崩溃了, 关闭也错,不关也错, 就是没人真正能帮我解决, ”
    伤心啊!!