zoukankan      html  css  js  c++  java
  • 【转】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.     }  
  • 相关阅读:
    [LeetCode] 199. Binary Tree Right Side View
    [LeetCode] 360. Sort Transformed Array
    [LeetCode] 146. LRU Cache
    [LeetCode] 28. Implement strStr()
    [LeetCode] 498. Diagonal Traverse
    [LeetCode] 545. Boundary of Binary Tree
    [LeetCode] 937. Reorder Data in Log Files
    软件开发之我剑!软件测试, 房子的刚性需求【原】
    c#调用Delphi的dll函数遇到的问题及解决方法
    C# 回调函数
  • 原文地址:https://www.cnblogs.com/exmyth/p/5026539.html
Copyright © 2011-2022 走看看