2009-09-15 6 views
1

Je suis nouveau à JSP et je suis en train d'écrire le code ci-dessous:simple application JSP

<%@ page import="java.io.*" %> 
<%@ page import="com.wipro.assignment2.exceptions.UploadFileNotFoundException" %> 
<% 
    String requestPath=request.getParameter("file1"); 
     System.out.println("I am printing before SUBMIT button click"); 
    if(requestPath!=null) 
    { 
     File f=new File(requestPath.trim());  
     System.out.println("Path given to upload : "+requestPath); 
     if(!f.exists()) 
     { 
     System.out.println("one");   
      try 
      { 
       throw new UploadFileNotFoundException("The file trying to upload is not presnt in its path !!!"); 
      } 
      catch(UploadFileNotFoundException filenotfound) 
      { 
       throw filenotfound; 
      } 
     } 
    } 
%> 

<html> 
<body> 
<form name="form1" method="post" enctype="multipart/form-data"> 
    <table align="right"> 
     <tr> 
      <td><A href="index.html">HOME</A></td> 
     </tr> 
    </table> 

    </table> 
    <table> 
     <tr> 
      <td>Select File </td> 
      <td> <input type="file" name="file1"> </td> 
     <tr> 
      <td><input type="submit" value="Upload"></td> 
     </tr> 
    </table> 

</form> 
</body> 
</html> 

Ici, dans le code ci-dessus une fois cette page JSP est chargé, avant que le bouton d'envoi est cliqué, JSP commence en cours d'exécution et si j'appuie sur le bouton Soumettre, la demande n'est pas transmise à la JSP ci-dessus. S'il vous plaît dites-moi comment cela fonctionne vraiment.

Répondre

2

Je pense que le problème est que vous n'avez pas dit à votre <form> où poster. Form a un attribut nommé action qui indique l'URL à laquelle les données de formulaire doivent être envoyées. Essayez de changer votre élément de formulaire pour écrire à votre JSP

<form action="/path/to/your.jsp" name="form1" method="post" enctype="multipart/form-data"> 

En outre, il est généralement considéré comme une mauvaise pratique pour inclure du code scriptlet (Java) dans les pages JSP. Essayez de trouver des bibliothèques de balises (par exemple JSTL) que vous pouvez utiliser à la place. En particulier, le code suivant est assez inutile:

try 
{ 
    throw new UploadFileNotFoundException("The file trying to upload is not presnt in its path !!!"); 
} 
catch(UploadFileNotFoundException filenotfound) 
{ 
    throw filenotfound; 
} 

Ici, vous jetez une exception, l'attraper, et re-jeter. Ce qui est identique à juste le jeter.

throw new UploadFileNotFoundException("The file trying to upload is not presnt in its path !!!"); 

Sauf si vous voulez que l'utilisateur à afficher une page d'erreur (le comportement par défaut lorsqu'une exception non interceptée est levée), il serait préférable de revenir un HTML décrivant le problème que de jeter une exception.

+0

Merci Don, je vais essayer – i2ijeya

+0

I nouveau JSP Don .. Pourriez-vous s'il vous plaît dire pourquoi nous devrions utiliser les bibliothèques TAG. – i2ijeya

0

Vous pouvez utiliser

if (request.getContentLength() > 0) { 
    // .. bla bla 
} 

et des informations supplémentaires: Vous pouvez utiliser paquet fileuplad communes apache.

http://commons.apache.org/fileupload/

Questions connexes