如何将arraylist从一个servlet发送到另一个servlet

时间:2014-11-08 18:10:47

标签: java jsp java-ee servlets

我想弄明白为什么我会得到空指针异常。

当我尝试执行addformservlet时。 在这个问题上帮助我,我是jsp servlets的新手。

请帮帮我..

我被困在一部分......

addform servlet:

      processRequest(HttpRequest req,HttpResponse res) 
      { 
      String []erlist=null;
      PrintWriter out = response.getWriter();
      response.setContentType("text/html;charset=UTF-8");
      try {
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Add dvd :</title>");
        out.println("</head>");
        out.println("<body bgcolor='#E6599'>");
        if(erlist!=null)
        {
        out.println("<p>");
        out.println("<font color='red'>Correct the following errors:");
        out.println("<ul>");
        for(int i=0;i<erlist.length;i++)
           out.print("<li>"+erlist[i]+"</li>");

        out.println("</ul>");
        out.println("</font>");
        out.println("<a href='index.jsp'> back to index page</a>");
        out.println("</p>");
        }

        erlist=(String [])request.getSession().getAttribute("elist");// i get errlist from dvdaction.java

        out.println("<h2>Add DVD:  </h2>");
        out.println("<form action='dvdaction' method='post' >");//post page to dvdaction.java

        //some codes here....
        out.println("</form>");

        out.println("</body>");
        out.println("</html>");

       }

  //dvdaction.java:

        processRequest(HttpRequest req,HttpResponse res)

        {       
        String err[]=null;


       try {


        title=(String)request.getParameter("title");

        int i=0;

       if(title.trim().length()==0)
       {
        err[i]="Please add the title field";
        i++;
       }


       if(err.length==0)
       {

       //some codes here...
        }

        request.getSession().setAttribute("elist", err);// i set err Arraylist here...
        RequestDispatcher rd=request.getRequestDispatcher("adddvdformservlet");
        rd.forward(request, response);

    } 

2 个答案:

答案 0 :(得分:0)

在分配任何值之前,您需要初始化err数组 在dvdaction.java中,将其初始化为String err[]=new String[5];,然后设置它的值,否则会抛出java.lang.NullPointerException

答案 1 :(得分:0)

你应该移动这个陈述

erlist=(String [])request.getSession().getAttribute("elist");// i get errlist from dvdaction.java

 if(erlist!=null)
        {
        out.println("<p>");
        out.println("<font color='red'>Correct the following errors:");
        out.println("<ul>");
        for(int i=0;i<erlist.length;i++)
           out.print("<li>"+erlist[i]+"</li>");

        out.println("</ul>");
        out.println("</font>");
        out.println("<a href='index.jsp'> back to index page</a>");
        out.println("</p>");
        }

在设置“err[i]="Please add the title field";”之前,您应该初始化您想要的错误或项目数量。让我们假设为10

String err[]=new String[10];

我希望这可以提供帮助!