【转】java.lang.StackOverflowError

http://blog.csdn.net/g19920917/article/details/8765638

出现一个java.lang.StackOverflowError异常。弄了半天,又是问高手,又是查资料的。最后发现,解决问题啦!特记录下来!

StackOverflowError是由于当前线程的栈满了  ,也就是函数调用层级过多导致。

比如死递归。

以上是网上查阅的资料。

看懂后,我发现我的项目用的servlet技术,讲doGet()方法添加方法this.doPost()得到解决。

思考:应该是我在实现分页的时候,在点击上一页,下一页时,调用servlet函数后再调回本页面是,出现循环。

result.jsp

 

[html] view plaincopy
 
  1. <%  
  2.     int pageNow = Integer.parseInt((String) request  
  3.             .getAttribute("pageNow"));  
  4.     if (pageNow != 1) {  
  5.         out.println("<href=Db_sel_Servlet?dbversion=Mysql&pageNow="  
  6.                 + (pageNow - 1) + ">上一页</a>");  
  7.     }  
  8.     String s_pageCount = (String) request.getAttribute("pageCount");  
  9.     int pageCount = Integer.parseInt(s_pageCount);  
  10.   
  11.     for (int i = 1; i <= pageCount; i++) {  
  12.         out.println("<href=Db_sel_Servlet?dbversion=Mysql&pageNow=" + i  
  13.                 + ">[" + i + "]</a>");  
  14.     }  
  15.     if (pageNow != pageCount) {  
  16.         out.println("<href=Db_sel_Servlet?dbversion=Mysql&pageNow="  
  17.                 + (pageNow + 1) + ">下一页</a>");  
  18.     }  
  19. %>  


Db_sel_Servlet.java

 

 

[java] view plaincopy
 
    1. public class Db_sel_Servlet extends HttpServlet {  
    2.     public String flag;  
    3.   
    4.     protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
    5.             throws ServletException, IOException {  
    6.         this.doPost(req, resp);  
    7.     }  
    8.   
    9.     public void doPost(HttpServletRequest req, HttpServletResponse resp)  
    10.             throws ServletException, IOException {  
    11.   
    12.         try {  
    13.             String s_pageNow=req.getParameter("pageNow");  
    14.             int pageNow=Integer.parseInt(s_pageNow);  
    15.             System.out.println("DB_sel_Servlet.java---->>>pageNow:"+pageNow);  
    16.             flag = req.getParameter("dbversion");  
    17.             System.out.println("DB_sel_Servlet---->>" + flag);  
    18.             File file = new File("D:\\workspace\\version");  
    19.             FileUtil.WriteFile(file, flag);  
    20.             UserDaoImpl userDaoImpl = new UserDaoImpl();  
    21.             List<User> user_list = userDaoImpl.getUsersByPage(pageNow);  
    22.             int pageCount=userDaoImpl.getPageCount();  
    23.             System.out.println("DB_sel_Servlet.java---->>>pageCount:"+pageCount);  
    24.             req.setAttribute("result", user_list);  
    25.             req.setAttribute("pageCount", pageCount+"");  
    26.             req.setAttribute("pageNow",pageNow+"");  
    27.             System.out.println(user_list);  
    28.             // 清空文件内的内容  
    29.             FileUtil.EmptyFile(file);  
    30.             // 跳转到用户管理页面  
    31.             req.getRequestDispatcher("result.jsp").forward(req, resp);  
    32.         } catch (Exception e) {  
    33.             e.printStackTrace();  
    34.         }  
    35.     }  
posted @ 2015-12-07 16:48  牧之丨  阅读(502)  评论(2编辑  收藏  举报