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.     }  
  • 相关阅读:
    Kubernetes二进制文件下载链接
    Python 中取代 Printf 大法的工具
    Python 七步捉虫法
    改善 Python 程序的 91 个建议
    最全的 API 接口集合
    一个可能是世界上最全的 API 接口集合库开源项目
    优质中文NLP资源集合,做项目一定用得到!
    Flair:一款简单但技术先进的NLP库
    取代 Python 多进程!伯克利开源分布式框架 Ray
    使用 PyHamcrest 执行健壮的单元测试
  • 原文地址:https://www.cnblogs.com/exmyth/p/5026539.html
Copyright © 2011-2022 走看看