2013-04-14 2 views
-1

내 코드 검토하십시오 두 번째 시간에 출력을 생성 할 수 없습니다 : 당신이 주변에에게 두 번째 시간을 생성 할 수 없습니다 을 무엇서블릿

 package controller; 

     import java.io.File; 
     import java.io.Io Exception; 
     import java.io.PrintWriter; 
     import java.util.ArrayList; 
     import java.util.Iterator; 
     import java.util.logging.Level; 
     import java.util.logging.Logger; 
     import javax.servlet.RequestDispatcher; 
     import javax.servlet.ServletException; 
     import javax.servlet.http.HttpServlet; 
     import javax.servlet.http.HttpServletRequest; 
     import javax.servlet.http.HttpServletResponse; 
     import model.dbLayer; 
     import org.apache.commons.fileupload.FileItem; 
     import org.apache.commons.fileupload.FileItemFactory; 
     import org.apache.commons.fileupload.FileUploadException; 
     import org.apache.commons.fileupload.disk.DiskFileItemFactory; 
     import org.apache.commons.fileupload.servlet.ServletFileUpload; 

     /** 
     * 
     * @author sarir 

    /*i am having jsp page with multipart enctype and saving image path in db 


     i am able to insert a first record successfully.Everything goes wellBut when a click a hyperlink again to insert second record and i`enter code here`nserting all the fields into the forma and submitting as posting a request to above servlet it does not produce output and neither any exceptions...any help would be appreciated..plz i am doing final year project...help me 

    */ 
     */ 
     public class multipartServlet extends HttpServlet { 
     //reading input from jsp page 
      String path=""; 
      Long CRN; 
      String username=""; 
      private ArrayList<String>list=new ArrayList<String>(); 

//to process enctype dtat 
      protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException, FileUploadException, Exception { 
       response.setContentType("text/html;charset=UTF-8"); 
       PrintWriter out = response.getWriter(); 

       username=request.getSession(true).getAttribute("uname").toString(); 
       try {    
          CRN=generatorCRN.getCRN(); 
          list.add(CRN.toString()); 
          list.add(username); 

      FileItemFactory factory = new DiskFileItemFactory(); 
      ServletFileUpload upload = new ServletFileUpload(factory); 
      Iterator<FileItem> iterator = upload.parseRequest(request).iterator(); 
      File uploadedFile; 
      String dirPath="C:\\Users\\Bhatjaved\\Documents\\NetBeansProjects\\6thsem\\build\\web\\view\\Photo"; 

      while (iterator.hasNext()) { 



          FileItem item = iterator.next(); 
          if (!item.isFormField()) { 

           String fileNameWithExt = item.getName(); 


           File filePath = new File(dirPath); 

           if (!filePath.exists()) { 
            filePath.mkdirs(); 
           } 

          uploadedFile = new File(dirPath + "/"+CRN.toString().concat(".jpg")); 

           path=dirPath +filePath.separator+CRN.toString().concat(".jpg"); 
           item.write(uploadedFile); 

          } 
          else { 
        String otherFieldName = item.getFieldName(); 
        String otherFieldValue = item.getString(); 
          if(otherFieldValue.equals("Select")) 
           ; 
          else       
         list.add(otherFieldValue); 
          } 
         } 





        dbLayer dl=new dbLayer(); 
        int res= dl.registerperson("missing_persons", list,path); 
        out.println(res); 
        if(res>0) 
        { 
       //request.getRequestDispatcher("/view/missingsucess.jsp").forward(request, response); 
         response.sendRedirect("/online_complaint/view/missingsucess.jsp?crn="+CRN); 
        } 




       }catch(Exception ex) 

       { 

       out.print(ex.getCause().toString()); 

       } 


       finally {  

        out.close(); 
       } 
      } 

      // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> 
      /** 
      * Handles the HTTP 
      * <code>GET</code> method. 
      * 
      * @param request servlet request 
      * @param response servlet response 
      * @throws ServletException if a servlet-specific error occurs 
      * @throws IOException if an I/O error occurs 
      */ 
      @Override 
      protected void doGet(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException { 
       try { 
        processRequest(request, response); 
       } catch (FileUploadException ex) { 
        Logger.getLogger(multipartServlet.class.getName()).log(Level.SEVERE, null, ex); 
       } catch (Exception ex) { 
        Logger.getLogger(multipartServlet.class.getName()).log(Level.SEVERE, null, ex); 
       } 
      } 

      /** 
      * Handles the HTTP 
      * <code>POST</code> method. 
      * 
      * @param request servlet request 
      * @param response servlet response 
      * @throws ServletException if a servlet-specific error occurs 
      * @throws IOException if an I/O error occurs 
      */ 
      @Override 
      protected void doPost(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException { 
       try { 
        processRequest(request, response); 
       } catch (FileUploadException ex) { 
        Logger.getLogger(multipartServlet.class.getName()).log(Level.SEVERE, null, ex); 
       } catch (Exception ex) { 
        Logger.getLogger(multipartServlet.class.getName()).log(Level.SEVERE, null, ex); 
       } 
      } 


      </editor-fold> 
     } 
+2

무엇? 언제 ? 어디? –

답변

0

그것은 귀하의 게시물에서 불분명,하지만 하나의 명백한 문제는 list입니다.

이 목록을 매번 비우지 않고 메서드 이름으로 판단하면 (registerperson) 넘게 넘겨주는 개체를 넘겨주고있는 것 같습니다.

아마도이 변수는 인스턴스 변수가 아니어도 메소드에 로컬이어야합니다.