Как передать несколько параметров, полученных из таблицы MySQL в форме сервлета Java - PullRequest
0 голосов
/ 13 ноября 2018

Я впервые использую сервлеты Java, и я хочу создать небольшой сайт галереи изображений.На данный момент у меня есть проблемы с тем, как я передаю параметры.По сути, в поле ввода скрыты передаются все параметры, а во втором и последнем сервлете всегда используется одно и то же имя папки, поэтому он никогда не может найти разные изображения в разных папках.

Я не могу понять, какИзвлеките что-нибудь из таблицы MySQL, которая должна быть уникальной для каждой радиокнопки, а затем передайте эту информацию следующему сервлету.Так как в данный момент он пропускает категорию папок, и единственная папка, которую я могу использовать, - это первая папка в таблице категорий.

Это то, что находится в моем URL для второго сервлета

http://localhost:8080/techfore/SelectingPage?ShortName=AntShowcase&CategoryNo=3&ShortName=UMLDiagrams&ShortName=WildArt&ShortName=Traditional&ShortName=DreamweaverImages&ShortName=WindowsWallpaper

Это мой URL в последнем сервлете

http://localhost:8080/techfore/PicturePage?PictureName=Redmoondesert.jpg&ShortName=AntShowcase

База данных планшетов

Categories DB
CategoryNo, ShortName, Description, Folder

Pictures DB
PictureNo, CategoryNo, Shortname, Description, FileName

Мне нужно предоставить пользователю страницу выбора категории, которую пытается выполнить приведенный ниже сервлет,

   Statement stmt = con.createStatement();
   String query;
   ResultSet rs;

   // List the categories
   query = "SELECT ShortName, Folder, CategoryNo FROM Categories ORDER BY CategoryNo";
   rs = stmt.executeQuery(query);


   out.println("Please select a category of pictures to explore:");

   String URL = "http://localhost:8080/techfore/SelectingPage";



   out.println("<form method=\"GET\" action=\"" + URL + "\">");
   while (rs.next()) {

      String shortName = rs.getString("ShortName");
      String folderName = rs.getString("Folder");
      int CategoryNo = rs.getInt("CategoryNo");


      out.println("<input type = \"radio\" name =\"CategoryNo\" value="+CategoryNo+">"+shortName+"");
      out.println("<br>");
      out.println("<input type = \"hidden\" name =\"ShortName\" value="+folderName+">");



   }
   Utilities.oneButtonForm(out, URL, "Let me select a category");
   out.println("</form>");

Следующий сервлет должен представить список изображений из этой конкретной категории

   try {

        Statement stmt = con.createStatement();
        String query;
        ResultSet rs;

        query="SELECT Folder FROM Categories WHERE CategoryNo = "+categoryNo+"";

        rs = stmt.executeQuery(query);

        while(rs.next()) {
            shortName = rs.getString("Folder");
        }

        stmt.close() ;




    }
    catch(SQLException ex) {
        out.println("<P>SQLException: " + ex.getMessage()) ;
     }
    out.println("Folder is:" +shortName);






    try {
       Statement stmt = con.createStatement();
       String query;
       ResultSet rs;




       // List the categories
       query = "SELECT PictureNo, ShortName, Description, FileName FROM Pictures WHERE CategoryNo ="+categoryNo+" ORDER BY PictureNo";

       rs = stmt.executeQuery(query);


       String URL = "http://localhost:8080/techfore/PicturePage/"+shortName+"";





       out.println("<form method=\"GET\" action=\"" + URL+">");

       while (rs.next()) {


          String pictureName = rs.getString("ShortName");
          String fileName = rs.getString("FileName");



          out.println("<input type = \"radio\" name =\"PictureName\" value="+fileName+">"+pictureName+"");
          out.println("<br>");




       }
       out.println("<input type = \"hidden\" name=\"ShortName\" value="+shortName+"");


       Utilities.oneButtonForm(out, URL, "Let me see th");


       out.println("</form>");

      out.println("<form action=\"/http://localhost:8080/techfore/WelcomePage\">" + 
            "    <input type=\"submit\" value=\"Let me choose another category\" />\r\n" + 
            "</form>");



       stmt.close() ;
    }

Последний сервлет должен отображать изображение, которое существует на другом сайте (мне просто нужно предоставитьпапка и имя файла.

out.println("<img src=http://www.uni.site.sc.dk/courses/Pictures/Gallery/"+categoryName+"/"+pictureName+"");

      out.println("<form action=/"+referer+">" + 
            "    <input type=\"submit\" value=\"Let me choose another picture\" />\r\n" + 
            "</form>");


      out.println("<form action=\"/http://localhost:8080/techfore/WelcomePage\">" + 
                "    <input type=\"submit\" value=\"Let me choose another category\" />\r\n" + 
                "</form>");

Основная проблема в том, что папка всегда одна и та же из-за того, как я получаю ее в первом сервлете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...