2015-07-22 2 views
1

Я работаю на веб-приложение, теперь я хочу, чтобы извлечь данные из моей базы данных (MySQL ) к JSP (той же странице) после отправки формы. Я нашел некоторый учебник, используя AJAX, но он не работает для меня.Извлечение данных из MySQL в JSP

Может кто-нибудь помочь мне найти способ получить данные или просто скажите, почему этот код не работает. Когда я запускаю его на сервере и нажимаю кнопку отправки, я перенаправляюсь на пустую страницу. Я хочу остаться на одной странице с данными в таблице.

Вот мой сервлет код:

public class FileUploadServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    public static final String VUE = "/WEB-INF/upload.jsp"; 

    private static List<Fichier> files = new LinkedList<Fichier>(); 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

     this.getServletContext().getRequestDispatcher(VUE).forward(
       request, response); 
    } 

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

     UploadForm.uploadByJavaServletAPI(request); 
      UploadForm.getData(response); 
    } 

getData() метод:

public static void getData(HttpServletResponse response){ 

     Site2GDAO site2GDAO = new Site2GDAOImpl(); 

      List<RNP_Site2G> Site2G=new ArrayList<RNP_Site2G>(); 

      Site2G=site2GDAO.getAllData(); 

      Gson gson2G = new Gson(); 

      JsonElement element2G = gson2G.toJsonTree(Site2G, new TypeToken<List<RNP_Site2G>>() {}.getType());     

      JsonArray jsonArray2G = element2G.getAsJsonArray(); 


      response.setContentType("application/json"); 

      try { 
      response.getWriter().print(jsonArray2G); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     }    
    } 

Мой JSP код:

<html> 
    <head> 
    <meta charset="utf-8" /> 
    <title>Envoi des fichiers RNP</title> 
     <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
     <script src="js/fileupload.js"></script> 
     <link type="text/css" rel="stylesheet" href="css/form.css"> 
    </head> 
    <body> 
     <form action="Upload" method="post" enctype="multipart/form-data"> 
      <fieldset> 
       <legend>Envoi de fichier</legend> 
       <label for="fichier">Emplacement du premier fichier <span class="requis">*</span></label> 
       <input type="file" id="fichier" name="fichiers[]" multiple value="<c:out value="${fichier.nom}"/>"/> 
       <span class="erreur">${form.erreurs['fichier']}</span> 
       <br /> 
       <br /> 
       <input type="submit" value="Envoyer" id="showTable"/> 
       <br /> 
      </fieldset> 
     </form> 
     <div id="tablediv"> 
      <table cellspacing="0" id="site2G"> 
       <tr> 
        <th scope="col">CGI</th> 
        <th scope="col">BSC</th> 
        <th scope="col">Site Name</th> 
        <th scope="col">Cells</th> 
        <th scope="col">EA</th>   
       </tr> 
      </table> 
     </div>  
    </body> 
</html> 

код Javascript:

$(document).ready(function() { 
    $("#tablediv").hide(); 
     $("#showTable").click(function(event){ 
      $.post('../Upload',function(responseJson) { 
      if(responseJson!=null){ 
       $("#site2G").find("tr:gt(0)").remove(); 
       var table1 = $("#site2G"); 
       $.each(responseJson, function(key,value) { 
        var rowNew = $("<tr><td></td><td></td><td></td><td></td><td></td></tr>"); 
         rowNew.children().eq(0).text(value['bsc']); 
         rowNew.children().eq(1).text(value['sitename']); 
         rowNew.children().eq(2).text(value['cells']); 
         rowNew.children().eq(3).text(value['cgi']); 
         rowNew.children().eq(4).text(value['ea']); 
         rowNew.appendTo(table1); 
       }); 
       } 
      }); 
      $("#tablediv").show();   
    });  
}); 
+0

'

cahen

ответ

0

Вы должны сопоставить сервлет с именем Upload в вашем web.xml, как это:

//Initialze the servlet 
<servlet> 
    <servlet-name>Upload</servlet-name> 
    <servlet-class>package.FileUploadServlet</servlet-class> 
</servlet> 

//Then map it with a url so it can be used. 
<servlet-mapping> 
    <servlet-name>Upload</servlet-name> 
    <url-pattern>/Upload</url-pattern> 
</servlet-mapping> 

Посмотрите на Creating and Configuring Servlets учебник для получения дополнительной информации.

+0

Спасибо за ваш ответ. Проблема была в имени сервлета, который я использовал в коде Ajax. Теперь у меня проблема с несколькими загрузками файлов. Он не работает с Ajax. –

Смежные вопросы