0

こんにちは、いいねの数で投票を表示する簡単な投票システムを作っています。html ページを使用して、ラジオ ボタンを使用して投票できる食品をリストするフォームを作成しています。これはページです:

<HTML>
    <HEAD><TITLE></TITLE></HEAD>


    <FORM ACTION="NewServlet" method="post">
        <br>

        <b> Select your favorite food:</B>

        <br>
            <input type="radio" name="choice" value="Ice Cream">Ice Cream
            <br>

            <input type="radio" name="choice" value ="Hamburger">Hamburger
              <br>

              <input type="radio" name="choice" value ="Pizza">Pizza
                <br>
        <br />
        <br />
            <INPUT TYPE="submit" value="Query" > 
            <INPUT TYPE="reset" value="Reset"> 
    </FORM>
</BODY>
</HTML>

これは私が作成したサーブレット ページで、データベースに接続して列を変更し、誰かがそこに投票するたびに like が 1 ずつ増えるようにします。私はそれを行う方法を理解できません。これは私がこれまでに持っているものです:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 *
 * @author Danny
 */
@WebServlet(urlPatterns = {"/NewServlet"})
public class NewServlet extends HttpServlet {



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

        String driver = "com.mysql.jdbc.Driver";

        try {
            Class.forName(driver).newInstance();
            Connection connection;
            String choice[] = request.getParameterValues("choice");

         connection = (Connection) DriverManager.getConnection("jdbc:mysql://localhost", "root", "symphonia23");
            Statement s = connection.createStatement();
               s.executeQuery("use food");

            if (choice.length != 0) {
                for (int i = 0; i <= choice.length; i++) {
                    s = connection.createStatement();
                    s.executeQuery("use food");

                    s.executeUpdate("UPDATE Food SET Liked = Liked +1 WHERE Food = '"
                            + choice[i] + "';");
                }
            }
            s = connection.createStatement();
            ResultSet rs = s.executeQuery("SELECT * FROM favoritefood");

            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            out.println("<html>");
            out.println("<body>");
            out.println("<tabe>");
            while (rs.next()) {
                out.println("<tr>");
                out.println("<td>");
                out.println(rs.getString("Food"));
                out.println("</td>");
                out.println("<td>");
                out.println(rs.getInt("Liked"));
                out.println("<br>");
                out.println("</td>");
                out.println("</tr>");
            }
            out.println("</tabe>");
            out.println("</body>");
            out.println("</html>");
            out.close();

        } catch (SQLException e) {
            e.printStackTrace();
        } catch (InstantiationException | IllegalAccessException
                | ClassNotFoundException e1) {
            e1.printStackTrace();
        }

    }

}

私のテーブルはこんな感じ

http://i.imgur.com/2fyeCe9.png )

出力をWebページで次のように表示したい:

http://i.imgur.com/8HjR4sv.png

4

0 に答える 0