Debe comprender que un servlet se ejecuta en el servidor web, no en el navegador web y que JS se ejecuta en el navegador web, no en el servidor web. La práctica habitual es permitir que el servlet reenvíe la solicitud a un archivo JSP que, a su vez, produce el código HTML/CSS/JS que el servidor web envía al navegador web. En última instancia, todo ese código HTML/CSS/JS se ejecuta en el navegador web.
Para lograr su requisito funcional (un tanto extraño, tbh), solo deje que el JSP reenviado represente condicionalmente la llamada de script determinada. Por ejemplo como sigue con JSTL<c:if>
, suponiendo que usted ha recogido y fijar los errores como ${errors}
en formato de matriz JSON:
<c:if test="${not empty errors}">
<script>displayErrors(errors);</script>
</c:if>
O dejar JSP asignarlo como una variable JS JS y dejar que lo manejan más. Algo así como:
<script>
var errors = ${errors};
if (errors.length) {
displayErrors(errors);
}
</script>
En cuanto al requisito de ser extraño, si uno se ve obligado a utilizar JS para mostrar mensajes, que sólo puede significar que usted está usando un alert()
o algo así. Esto es muy de los 90 y no es fácil de usar. Simplemente deje que JSP produzca el HTML en consecuencia que se colocan al lado de los campos de entrada, o en una lista en la parte superior del formulario. Our servlets wiki page tiene un ejemplo de hello world que hace exactamente eso.
Su pregunta no tiene sentido. JavaScript se ejecuta en el navegador del usuario. Un servlet se ejecuta en el servidor. Repensa lo que realmente quieres hacer. –
@JBNizet Creo que podemos llamar a JS desde servlet. Podemos enviar respuesta al navegador y en eso mismo podemos crear un script para ser llamado. – Ved