小弟刚学struts,使用了一下struts的数据连接池。感觉也很不错。不过发现每次要使用连接时候都要在ACTION里获取一个
public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
 
ServletContext context = servlet.getServletContext();
DataSource dataSource = (DataSource)context.getAttribute("jobJDBC");
        代码。。
        return mapping.findForward("success");
}
这样很麻烦,所要打算写一个公共类专门获取连接用import org.apache.struts.action.Action;
import javax.servlet.ServletContext;
public class connect extends Action {

public DataSource DataSource getconnect(){
  ServletContext context = servlet.getServletContext();
  DataSource dataSource = (DataSource)context.getAttribute("jobJDBC");
  return dataSource;
  
}
}
可是一运行就报错,说servlet空指针。是在不知道问题在哪里了。

解决方案 »

  1.   

    晕 你这样肯定会报空指针啊 你的servlet都没定义就使用 你这样改下public DataSource DataSource getconnect(ActionServlet servlet){ 
      ServletContext context = servlet.getServletContext(); 
      DataSource dataSource = (DataSource)context.getAttribute("jobJDBC"); 
      return dataSource; 
      
    }
    然后每次使用的时候把servlet传进去
      

  2.   

    可以了,谢谢。
    不过这样还是要在每个ACTION里都要来上一次。
    有没有办法让数据公共类直接给dao层用。
    顺便问一下servlet到底是干什么用的,哪里生成的。