Quelles options de modèles HTML existe-t-il dans Java comme alternative à la sortie HTML de votre code de servlet?

StackOverflow https://stackoverflow.com/questions/816077

  •  03-07-2019
  •  | 
  •  

Question

Étant donné le servlet Hello World suivant, comment pouvez-vous transférer la sortie de Hello World hors du code de la servlet et la placer dans une sorte de format de modèle HTML? J'aimerais simplement appeler le modèle à partir du servlet et lui demander de restituer les variables Java auxquelles je fais référence dans le modèle - peut-être en faisant référence à "Hello World". chaîne en tant que variable de classe dans la classe SprogzServlet?

package boochy;

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

@SuppressWarnings("serial")
public class SprogzServlet extends HttpServlet
{
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException
    {
        resp.setContentType("text/plain");
        resp.getWriter().println("Hello, world");
    }
}
Était-ce utile?

La solution

Il est assez rare de faire du développement Web Java sans utiliser une structure MVC qui délègue toutes les vues aux fichiers JSP (à l'exception de la sortie PDF et des autres cas), de sorte que vous avez:

Certains cadres Web tels que Tapestry et JSF (" Java Server Faces ") ressemblent un peu plus aux vues HTML comportant des balises supplémentaires.

En fin de compte, les fichiers JSP sont simplement compilés en servlets et ont tendance à être un formulaire plus pratique pour la sortie HTML. En règle générale, je les utiliserais au minimum plutôt que d'écrire directement un tas d'instructions out.println () dans une servlet.

Autres conseils

J'ai utilisé avec succès Velocity pendant plusieurs années sur un site interne de très petite taille.

Il est facile à utiliser et possède une belle API. Il gère extrêmement bien l'activité économique.

Drôle, je viens de voir une question légèrement similaire avant. Vous pouvez également utiliser des pages PHP via Quercus pour le rendu de votre page en Java.

Cletus a parfaitement raison dans ses recommandations.

Freemarker (ou vélocité) sont les solutions à utiliser si vous "simplement" requièrent un rendu basé sur un modèle. Ils sont assez efficaces. Vous pouvez augmenter la complexité et utiliser les JSP.

Je ne suis pas d'accord sur le fait que cela est spécifiquement limité au modèle MVC. Dans sa forme la plus simpliste (et cela ne sera clairement pas adapté aux grands systèmes), vous pouvez utiliser le même service de servlet pour toutes les demandes, choisir un modèle Velocity / Freemarker, renseigner le contexte requis et restituer le modèle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top