web-dev-qa-db-fra.com

Générer une réponse HTML dans un Java servlet

Comment générer une réponse HTML dans un servlet Java?

48
ogechi nwogu

Vous transférez normalement la demande à un JSP pour affichage. JSP est une technologie de vue qui fournit un modèle pour écrire du code HTML/CSS/JS Vanilla simple et offre la possibilité d'interagir avec le backend Java code/variables à l'aide de taglibs et EL. Vous pouvez contrôler le flux de pages avec des balises comme JSTL . Vous pouvez définir toutes les données de backend en tant qu'attribut dans n'importe quelle étendue de demande, de session ou d'application et utiliser EL (le ${} choses) dans JSP pour y accéder/les afficher.

Exemple de lancement:

@WebServlet("/hello")
public class HelloWorldServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String message = "Hello World";
        request.setAttribute("message", message); // This will be available as ${message}
        request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response);
    }

}

Et /WEB-INF/hello.jsp ressembler:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>SO question 2370960</title>
    </head>
    <body>
         <p>Message: ${message}</p>
    </body>
</html>

Lors de l'ouverture http: // localhost: 8080/contextpath/hello cela affichera

Message: Bonjour tout le monde

dans le navigateur.

Cela maintient le code Java libre de tout encombrement HTML et améliore considérablement la maintenabilité. Pour en savoir plus et vous entraîner avec les servlets, continuez avec les liens ci-dessous.

Parcourez également l'onglet "Fréquent" de toutes les questions marquées [servlets] pour trouver les questions fréquemment posées.

102
BalusC

Vous devez avoir une méthode doGet comme:

public void doGet(HttpServletRequest request,
        HttpServletResponse response)
throws IOException, ServletException
{
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    out.println("<html>");
    out.println("<head>");
    out.println("<title>Hola</title>");
    out.println("</head>");
    out.println("<body bgcolor=\"white\">");
    out.println("</body>");
    out.println("</html>");
}

Vous pouvez voir ce lien pour une servlet simple hello world

34
codaddict