Anzeigen von MySQL-Abfrageergebnissen von Servlet zu JSP

Ich versuche, die Ergebnisse meiner Abfrage in einer Zeichenfolge zu speichern und sie am Ende meiner JSP-Seite zu drucken, indem ich diese Zeichenfolge an sie übergebe. Im Moment wird die JSP-Seite zunächst in Ordnung angezeigt, aber es passiert nichts, wenn ich auf die Schaltfläche klicke, um den Befehl zu veröffentlichen. Früher, als ich über eine HTML-Seite auf das Servlet zugegriffen und alle meine Ausgaben mit einem PrintWriter ausgedruckt habe, wurden die Ergebnisse angezeigt, aber sie wurden auf einer separaten Seite angezeigt.

1) Ist es eine gute Idee, auf diese Weise aufzubewahren, oder sollte ich etwas anderes als eine Schnur machen?

2) Wie erhalte ich die Ergebnisse der Abfrage zum Posten auf der JSP-Seite?

databaseServlet.java

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;

@SuppressWarnings("serial")

public class databaseServlet extends HttpServlet {
    private Connection conn;
    private Statement statement;

    public void init(ServletConfig config) throws ServletException {
        try {
            Class.forName(config.getInitParameter("databaseDriver"));
            conn = DriverManager.getConnection(
                    config.getInitParameter("databaseName"),
                    config.getInitParameter("username"),
                    config.getInitParameter("password"));
            statement = conn.createStatement();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

    protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String out = "\n";

        String query = request.getParameter("query");

        if (query.toString().toLowerCase().contains("select")) {
            //SELECT Queries
            try {
                ResultSet resultSet = statement.executeQuery(query.toString());
                ResultSetMetaData metaData = resultSet.getMetaData();
                int numberOfColumns = metaData.getColumnCount();
                for(int i = 1; i<= numberOfColumns; i++){
                    out.concat(metaData.getColumnName(i));
                }
                out.concat("\n");

                while (resultSet.next()){
                    for (int i = 1; i <= numberOfColumns; i++){
                        out.concat((String) resultSet.getObject(i));
                    }
                    out.concat("\n");
                 }
            }
            catch (Exception f) {
                f.printStackTrace();
            }
        }
        else if (query.toString().toLowerCase().contains("delete") || query.toLowerCase().contains("insert")) {
            //DELETE and INSERT commands
            try {
                conn.prepareStatement(query.toString()).executeUpdate(query.toString());
                out = "\t\t Database has been updated!";
            }
            catch (Exception l){
                l.printStackTrace();
            }
        }
        else {
            //Not a valid response
            out = "\t\t Not a valid command or query!";
        }
        RequestDispatcher dispatcher = request.getRequestDispatcher("/dbServlet.jsp");
        dispatcher.forward(request,  response);
        request.setAttribute("queryResults", out);
    }
}

dbServlet.jsp

<?xml version = "1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- dbServlet.html -->
<html xmlns = "http://www.w3.org/1999/xhtml">
<head>
    <title>MySQL Servlet</title>
    <style type="text/css">
        body{background-color: green;}
    </style>
</head>
<body>
    <h1>This is the MySQL Servlet</h1>
    <form action = "/database/database" method = "post">
    <p>
        <label>Enter your query and click the button to invoke a MySQL Servlet
            <textarea name = "query" cols="20" rows="5"></textarea>
            <input type = "submit" value = "Run MySQL Servlet" />
            <input type = "reset" value = "Clear Command" />
        </label>
    </p>
    </form>
    <hr>
    <%= 
        request.getAttribute("queryResults");
    %>
</body>
</html>

Antworten auf die Frage(3)

Ihre Antwort auf die Frage