Aquí están las preguntas más frecuentes sobre las Servilletas. He proporcionado la respuesta breve y concisa de cada pregunta que le ayudará a ser seleccionado en la ronda de la entrevista técnica.
Q 1. ¿Qué es el servillete?
Servlet es un lenguaje de programación del lado del servidor que se utiliza para generar páginas web dinámicas. Genera una página web como respuesta a la solicitud recibida del cliente (navegador).
Q 2.¿Páginaweb estática vs. página web dinámica?
Las páginas web que son iguales para todos los usuarios son páginas web estáticas y las páginas web que se generan dinámicamente en base a la solicitud del usuario (que puede ser diferente para cada usuario dependiendo de la solicitud) se conocen como páginas web dinámicas. El servlet se utiliza principalmente para las páginas web dinámicas.
P 3. Ciclo de vida de un servlet?
Siguiendo las etapas del ciclo de vida del servlet:
1) Carga de la clase de servlets: El contenedor de servlets encuentra la clase de servlet mencionada en el archivo web.xml y la carga.
2) Instanciación del servillete: El objeto de la clase servlet se crea en esta fase.
3) Inicialización: Inicialización del servillete llamando al método init().
4) Servicio de la solicitud: En esta fase el servlet sirve a la solicitud del cliente llamando al método service().
5) Destruir: Última fase del ciclo de vida del servlet. El método destroy() libera la instancia de servlet para que pueda ser recogida en la basura.
P 4. ¿Por qué usamos los servlets?
1) Para procesar los datos de entrada enviados por el usuario desde la pantalla.
2) Generar y devolver la respuesta dinámica al usuario en base a la solicitud.
3) Lenguaje de programación ideal para interactuar con la base de datos en base a la solicitud del usuario.
4) Un servlet puede manejar múltiples peticiones simultáneamente, lo que lo convierte en la elección perfecta para las aplicaciones de alto rendimiento.
P 5. ¿Por qué Servlet es mejor que CGI?
1) Servlet respuestas más rápido que el CGI porque utiliza el concepto de multi-hilo para el servicio de cada solicitud. El rendimiento de CGI no es tan bueno, ya que crea un nuevo objeto para cada solicitud, mientras que el servlet asigna un nuevo hilo para cada solicitud.
2) El aprendizaje y la implementación del servlet es bastante más fácil en comparación con el CGI.
3) El consumo de memoria es bajo en el servlet comparado con el CGI.
Q 6.¿Cuándo se carga el servlet?
1) Cuando el contenedor de servlets recibe la primera solicitud del cliente (navegador).
2) El administrador de la aplicación carga manualmente el servlet.
3) Cuando el servidor web (en el que se despliega el servlet) se inicia.
Q 7. ¿Qué es la interfaz del servlet y qué utilidad tiene?
La interfaz de servlets es una API para servlets. Cada Servlet debe implementar la interfaz de servlets o ampliar la clase que ya implementa la interfaz. javax.servlet.GenericServlet y javax.servlet.http.HttpServlet son las clases Servlet que implementa la interfaz de Servlet, por lo que cada servlet debe implementar la interfaz de Servlet directamente o mediante la ampliación de cualquiera de estas clases.
Q 8. ¿Qué es ServletConfig?
La interfaz de ServletConfig pertenece al paquete javax.servlet.ServletConfig. Se utiliza para pasar los parámetros de configuración al servlet. El contenedor de servlets lo instanciar implícitamente.
Q 9. ¿Qué es el ServletContext?
Cada aplicación web tiene un ServletContext común. Todos los servlets de la aplicación web pueden acceder al ServletContext. Tiene la información de la aplicación web y los recursos que son comunes y accesibles a todos los servlets presentes en la aplicación web.
Q 10. ServletConfig vs ServletContext?
A continuación se presentan las dos principales diferencias entre ServletConfig y ServletContext:
1) ServletConfig se utiliza para pasar la información de configuración al Servlet, mientras que ServletContext proporciona un conjunto de métodos que una clase de Servlet puede utilizar para comunicarse con el contenedor de Servlet.
2) Cada Servlet tiene un objeto separado ServletConfig, mientras que ServletContext es común para todos los servlets en la aplicación web.
3) Los parámetros de ServletConfig están definidos bajo
.
Q 11. ¿Diferencia entre GenericServlet y HTTPServlet?
1) GenericServlet es una clase abstracta que implementa la interfaz de Servlet mientras que la clase abstracta HTTPServlet extiende la clase GenericServlet. En resumen: La clase GenericServlet es una clase padre para HTTPServlet.
2) GenericServlet no soporta ningún protocolo. HTTPSeervlet soporta el protocolo HTTP y HTTPS.
3) GenericServlet no puede manejar cookies y sesiones mientras que HTTPServlet puede manejarlas.
Q 12.¿Diferenciaentre forward() y sendRedirect()?
1) En forward() la misma solicitud es reenviada al otro recurso. En sendRedirect() la nueva solicitud es enviada al recurso redirigido.
2) forward() es atendido por el contenedor de Servlet mientras que sendRedirect() es manejado por el navegador.
3) En forward() la URL (localizador uniforme de recursos) permanece igual en el navegador. En sendRedirect() la URL cambia en la barra de direcciones del navegador web.
4) forward() es más rápido comparado con sendRedirect().
Q 13. ¿Qué es el descriptor de despliegue?
El archivo web.xml de una aplicación web se conoce como descriptor de implementación. Generalmente se coloca dentro de la carpeta WEB-INF de la aplicación. Tiene información como el nombre del Servlet, el mapa del Servlet, etc. Este archivo le dice al contenedor de Servlet que clase de Servlet debe ser llamado para el patrón de URL dado.
P 14. doGet() Vs doPost() métodos?
1) En doGet(), los parámetros son visibles en la barra de direcciones, se añaden a la URL. En doPost() los parámetros no son visibles en la barra de direcciones.
2) Puede transferir un máximo de 1024 caracteres a través de la petición GET. doPost() no tiene ninguna limitación.
3) doGet() no es bueno para datos sensibles ya que los parámetros no se encriptan. En doPost() los parámetros están encriptados por lo tanto es más seguro comparado con doGet().
4) El método doGet() permite marcar el recurso. doPost() no permite marcadores.
5) doGet() es más rápido comparado con el método doPost().
Q 15.¿Para qué sirve
<servlet> <nombre del servlet>MyServletNameHere</nombre del servlet> <servlet-class>ServletClassHere-FullyQualified</servlet-class> <load-on-startup>1</load-on-startup></servlet>
Si se especifica más de un archivo, los archivos se cargarán en el mismo orden en que se han especificado en él.
Q 20. ¿Cuáles son los diferentes tipos de mecanismo de seguimiento de sesión que soportan los Servlets?
1) Reescritura de URL
2) Campos de forma oculta
3) Cookies
4) Sesiones de Capa de Conexión Segura (SSL)
Q 21. ¿Cómo la reescritura de URL mantiene la sesión?
En el método de reescritura de URL, los datos de seguimiento de la sesión se han añadido al final de la URL para seguir la sesión.
Q 22.¿Explicarel encadenamiento de servilletas?
El encadenamiento de servlets es un concepto en el que la solicitud se procesa en una cadena de servlets. El primer servillete procesa la solicitud parcialmente y pasa al segundo, luego el segundo servillete la procesa y pasa al tercero y así sucesivamente. El último servlet devuelve la respuesta al cliente (navegador).
Q 23. ¿Cómo se puede invalidar una sesión en un servlet?
Llamando al método session.invalidate().
Q 24. ¿Cuáles son las principales funciones del
contenedor de servlets
?
1) Gestión del ciclo de vida del servlet
2) Mantiene la interacción entre el servlet y el servidor web.
3) Proporciona soporte multihilo para procesar más de una solicitud simultáneamente.
4) Gestión del archivo descriptor de despliegue web.xml.
Q 25. ¿Qué es
El elemento
<session-config> <session-timeout>35</session-timeout></session-config>
Establece el tiempo de espera de la sesión en 25 minutos.
Q 26. ¿Qué es la carga perezosa de Servlet y cómo se puede evitar?
El contenedor de Servlet no inicializa el Servlet en el inicio del servidor de forma predeterminada. Sólo inicializa un servlet cuando recibe la solicitud del cliente. Esto se llama carga lenta de Servlet.
Al especificar
Q 27. ¿Por qué necesitamos un constructor en el servlet a pesar de que tenemos un método init()?
El métodoinit() se utiliza para inicializar el servlet, sin embargo, se requiere constructor para poder instanciar la clase Servlet. El contenedor de servlets instanciar la clase Servlet.
Q 28.¿Cuándo se descargael Servlet?
1) Admin descarga manualmente el servlet.
2) El servidor web se apaga.
Q 29. ¿Cómo mantiene la sesión el Servlet utilizando cookies?
Las cookies son una pequeña pieza de información, que es enviada por un servlet al navegador web. Las cookies se almacenan en el navegador y regresan al servidor cuando se necesitan. Una cookie tiene un nombre, un valor único y algunos otros atributos.
Q 30. ¿Por qué el uso de cookies para el seguimiento de la sesión es una mala práctica?
Hay varias desventajas de usar cookies para el seguimiento de la sesión. Pocas de ellas lo son:
1) Dado que las cookies se almacenan en el lado del cliente (en el navegador del cliente), no estará disponible si el navegador del cliente borra o desactiva las cookies.
2) La implementación de cookies para el seguimiento de la sesión es mucho más difícil en comparación con otros mecanismos de gestión de la sesión.
3) Las cookies sólo funcionan para el protocolo HTTP.
Q 31. ¿Cómo obtengo la información del servidor en los Servlets?
Utiliza esto:
getServletContext().getServerInfo()
Q 32. ¿Cómo obtener la dirección IP del cliente en los Servlets?
Usando esto:
request.getRemoteAddr()
Q 33. ¿Por qué usamos filtros en Servlet?
Usamos filtros para:
1) Controles de seguridad
2) Modificación de la solicitud o respuesta
3) Compresión de datos
4) Registro y auditoría
5) Compresión de la respuesta
Q 34. ¿Qué todos los protocolos son soportados por el Servlet HTTPS?
Los protocolos HTTP y HTTPS.
Q 35.¿Qué todos los protocolos son compatibles conGenericServlet?
La clase abstracta de GenericServlet no es específica de ningún protocolo.
Q 36. ¿Cuáles son las nuevas características añadidas a Servlet 3?
1) Anotaciones Servlet
2) Fragmentos de Web
3) Adición dinámica de componentes web
4) Procesamiento asíncrono
Q 37.¿Superamosel método service()?
No, no anulamos el método service(). Generalmente anulamos el método doPost(), doGet() en función del requisito.