7
votes

Appeler un servlet à partir de fichier JSP sur la charge de la page

Puis-je appeler un servlet de fichier JSP sans utiliser de formulaire HTML?

Par exemple, pour afficher les résultats de la base de données dans une table HTML lors de la charge de la page.


0 commentaires

4 Réponses :


10
votes

Vous pouvez utiliser le doget () code> méthode du servlet à Préprocess forte> Demande et transmettre la requête à le JSP. Ensuite, pointez simplement l'URL de servlet au lieu de JSP URL dans les liens et la barre d'adresse de navigateur.

par exemple par exemple p> xxx pré> xxx pré>

Notez que le fichier JSP est placé dans le dossier / web-inf code> pour empêcher les utilisateurs d'y accéder directement sans appeler le servlet. p>

Notez également que @weweblet code> est uniquement disponible depuis le servlet 3.0 (Tomcat 7, etc.), voir aussi @wewsservlet Annotation avec Tomcat 7 . Si vous ne pouvez pas mettre à niveau, ou lorsque vous avez besoin d'une raison quelconque, vous devez utiliser un web.xml code> qui n'est pas compatible avec le servlet 3.0, vous devez enregistrer manuellement le servlet à l'ancienne. web.xml code> comme ci-dessous au lieu d'utiliser l'annotation: p>

<servlet>
    <servlet-name>productsServlet</servlet-name>
    <servlet-class>com.example.ProductsServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>productsServlet</servlet-name>
    <url-pattern>/products</url-pattern>
</servlet-mapping>


4 commentaires

La question est destinée à appeler servlet de JSP. Vous avez répondu à l'appelant JSP du servlet.


... qui est la pratique normale pour l'exigence fonctionnelle que l'OP avait en tête.


Comment pouvez-vous être si certain de ce que l'OP pensait?


"sans utiliser de formulaire HTML" , il veut donc prétraiter la demande au lieu de post-traitement.



9
votes

Vous devrez utiliser les méthodes de RequestDispatcher en avant / Inclure en fonction de votre besoin d'obtenir la même chose.

Dans JSP, vous devez utiliser des balises suivantes: p>

JSP: Inclure : P>

L'élément vous permet inclure une statique ou une dynamique Fichier dans un fichier JSP. Les résultats de y compris les fichiers statiques et dynamiques sont assez différent. Si le fichier est statique, son contenu est inclus dans le appeler le fichier jsp. Si le fichier est dynamique, il agit sur une demande et envoie un résultat inclus dans la page JSP. Quand l'inclure L'action est terminée, le conteneur JSP continue de traiter le reste de le fichier JSP. p> blockQuote>

par exemple p> xxx pré>

JSP: avant : p>

L'élément en avant le demande objet contenant le client Demander des informations à partir d'un fichier JSP à un autre fichier. Le fichier cible peut Soyez un fichier HTML, un autre fichier JSP, ou un servlet, aussi longtemps que dans le même contexte d'application que le Transférer le fichier JSP. Les lignes dans le fichier jsp source après le Élément ne sont pas traitée. p> blockQuote>

EG P>

<jsp:forward page="/servlet/ServletCallingJsp" />


0 commentaires

0
votes

Bien sûr, vous pouvez l'inclure simplement dans votre action dans le formulaire . Mais vous devez écrire le bon dopost ou doget pour gérer la demande!


0 commentaires

0
votes

Si vous souhaitez appeler une méthode de servlet particulière que vous utilisez également une langue d'expression. Par exemple, vous pouvez faire quelque chose comme:

servlet fort> p> xxx pré>

jsp strong> p>

<body bgcolor="#D2E9FF">
Current date : ${forex.rate}
</body>


1 commentaires

Remarque, votre réponse est un peu trompeuse, il implique que Forextest doit être un servlet, mais il n'a pas nécessairement besoin d'être un servlet du tout. L'approche normale est que c'est un javabean et que ces obtiennent des méthodes doivent seulement être appelés aux propriétés d'accès, non pour exécuter la logique commerciale.