HTML/CSS/JavaScript fonctionne à côté client. Java/JSP s'exécute du côté serveur. Le client et le serveur sont deux environnements distincts qui s'exécutent généralement sur des machines physiquement différentes, connectées entre elles par un réseau avec le protocole de communication HTTP. Lorsque le client demande une URL spécifique sur le serveur, le serveur exécute un code Java/JSP spécifique et renvoie une réponse HTML/CSS/JS au client. Le client (webbrowser) exécutera à son tour le HTML/CSS/JS. Sachant cela, il devrait être évident que la seule façon de laisser l'accès JavaScript/invoquer du code Java/JSP est d'envoyer une requête HTTP au serveur. Cela peut être fait de plusieurs manières: en utilisant window.location
pour faire une requête GET synchrone, ou form.submit()
pour faire une requête GET ou POST synchrone, ou XMLHttpRequest#send()
pour faire une requête asynchrone (ajaxical).
Mais après tout, vous n'avez pas besoin de JavaScript pour ça. Un simple lien HTML ou un formulaire est également suffisant.
<a href="page.jsp">link</a>
ou
<form action="page.jsp">
<input type="submit">
</form>
Cela ouvrira le fichier JSP. Si vous souhaitez exécuter des trucs d'affaires avant l'ouverture de la page JSP, alors mieux laisser le point d'URL à un Servlet comme <a href="page">
qui à son tour transmet la demande à la page JSP comme
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
Pour en savoir plus sur le mur entre Java/JSP et JavaScript, vous pouvez trouver this article utile.
J'aurais dû ajouter que je veux appeler le fichier JSP en arrière-plan. – hmak