Bien vamos a continuar.
Ahora vamos a hacer el trabajo sobre el componente de Servlet.
Con esto ya tenemos todo el formulario para enviar la información de cada uno de los campos a nuestro
servidor y la acción que vamos a enviar es la acción de insertar pero en el método post así que vamos
a hacer lo siguiente dentro de nuestra clase ser el controlador vamos a negar el método de post así
que vamos a sobreescribir el método
protected de post y recibimos los mismos parámetros que el método Doggett así que podemos apoyarnos
incluso hasta seleccionar las excepciones
damos Enter para que se cierre esta función
y con eso ya estamos escribiendo correctamente el método POST ahora lo que vamos a hacer es recuperar
nuestro parámetro de acción así que vamos a hacer lo siguiente
definimos una variable llamada acción y le solicitamos el parámetro de acción apoyándonos del objeto
recuesto mandamos llamar el método Guez para meter y solicitamos el valor de parámetro acción y ahora
vamos a revisar si tenemos información en esta variable
si el valor de acción es diferente de nulo esto quiere decir que si enviamos una acción y por lo tanto
podemos preguntar qué tipo de acción deseamos ejecutar podemos utilizar un if o podemos utilizar un
switch en este caso queda mejor un switch ya que vamos a tener solamente algunas opciones así que vamos
a utilizar un switch proporcionamos el estrés que estamos recibiendo como el parámetro para este switch
y vamos a empezar a definir los casos el primer caso va a ser que nos interesa en este momento el caso
de insertar
y si hemos proporcionado este caso entonces vamos a mandar a llamar un método que vamos a crear a continuación
el método se va a llamar insertar cliente así que vamos a crear este método después del método de post
va a ser un método privado no va a regresar nada se va a llamar insertar cliente
va a recibir los objetos de recuerdo y de Ruiz Pons
y también va a procesar las nuevas excepciones así que de igual manera podemos copiar los objetos y
las excepciones
damos Enter para que se cierre este método y con esto ya estamos definiendo el método de insertar cliente.
Así que en dado caso de que sea ejecutado esta acción vamos a mandar a llamar.
Este método insertar cliente y proporcionamos los objetos Ricketts y respondés para que podamos acceder
a la información que estamos recibiendo en estos objetos y después de que se ejecute este método.
Posteriormente vamos a agregar el código agregamos un break pero también vamos a agregar otros casos.
En este momento como todavía no los hemos configurado ni los hemos programado vamos a dejarlo hasta
allí y vamos a dar el caso por default en el caso por default vamos a redirigir hacia la página de inicio.
Sin embargo si revisamos la página de inicio se está mandando llamar en el método GET y además tenemos
que proporcionar el listado de clientes para que se vuelva a mostrar.
En dado caso de que ya hemos hecho algún cambio sobre este listado de clientes ya sea agregar modificar
o eliminar algún cliente.
Tenemos que refrescar esta información ahora como siguiente paso vamos a solicitar el total de clientes
para que se vuelva a calcular se vuelva a compartir la información y finalmente se vuelva a calcular
el saldo total y como último paso se redirigen hacia el JSP de clientes así que varios de estos pasos
los vamos a estar ejecutando constantemente.
Por ello esta información en lugar de tenerla en el método de Huguet y duplicarla en el método post
vamos a refactorización y este código lo vamos a agregar a otro método así que después del método Doggett
vamos a definir otro método que va a ser privado no va a regresar nada y se va a llamar Acción de fought
ya que va a ser extraccion por default cada vez que terminemos de ejecutar una acción así que básicamente
nos va a regresar al listado de clientes
de igual manera utilizamos los mismos objetos y reportamos las mismas excepciones así que todo este
código del método GET lo vamos a pasar al método acción de foll para que podamos reutilizar este código
tanto en el método Duguech como en el método de post.
Damos un formato y ahora en el método Huguet lo único que va a hacer en este momento va a ser mandar
a llamar la acción por default que básicamente es llenar esta información compartirla en algún alcance
y posteriormente redirigir a la página de clientes JSP y ahora vamos al método de post.
En el caso de la acción por default lo que vamos a hacer es mandar a llamar.
Este método de acción de fondo ya que si no se ha proporcionado alguna otra opción como en este caso
de insertar entonces vamos a redirigir hacia la acción por default así que mandamos a llamar el método
acción de fot ya que como no se proporcionó alguna otra acción posiblemente se proporcionó un valor
pero es un valor inválido.
Por lo tanto vamos a redirigir hacia el JSP de clientes punto JSP y en dado caso de que la acción sea
igual a Nul vamos a dar también este caso también en este caso vamos a redirigir a la acción por default
así que mandamos a llamar el método acción de fot en cualquiera de estos dos casos ya sea que hayamos
proporcionado una acción errónea o que la acción sea igual a null.
Entonces se va a ejecutar la acción por default hasta que hayamos configurado los flujos tanto del método
de Huguet como en este caso el flujo del método POST pero falta recuperar la información del formulario
para poder insertar el cliente y finalmente redirigir de nueva cuenta a la acción por default así que
vamos a hacer lo siguiente Vamos a dejar el código al método insertar cliente bien así que lo que vamos
a hacer en este método de insertar cliente como primer paso recuperamos los valores del formulario agregar
clientes
así que vamos a procesar lo siguiente empezamos a procesar cada uno de los elementos del formulario
definimos una variable de nombre y solicitamos el parámetro
de nombre que en este caso va a ser esta hipótesis el imputs de nombre.
Y así vamos progresando cada uno de los valores apellido email teléfono y saldo.
Definimos ahora la variable apellido
procesamos el valor de apellido ahora procesamos el e-mail
ahora recuperamos el teléfono
y finalmente recuperamos el saldo.
Sin embargo el saldo es de tipo doble así que no podemos asignar directamente a una variable de tipo
doble ya que el método para meter no regresa una.
Así que vamos a hacer lo siguiente Primero vamos a definir una variable llamada saldo y le vamos a asignar
el valor de cero.
Así que en dado caso de que no se haya enviado ningún valor entonces vamos a suponer que le vamos a
asignar el valor de cero así que vamos a solicitar el valor de saldo pero lo vamos a asignar en una
variable llamada saldo estrellen que es de tipo string
y solicitamos el parámetro de saldo y ahora vamos a revisar si esta variable contiene un valor así que
preguntamos si saldo es diferente
de Nul y además no es igual a la cadena vacía
invertimos esta lógica para preguntar si no es igual a la cadena vacía entonces podemos hacer la conversión
del valor que estamos recibiendo así que hacemos la conversión utilizamos la Clase Doble y mandamos
a llamar el método Pass doble y convertimos el valor que estamos recibiendo del formulario.
De lo contrario si tratamos de hacer esta conversión directamente con el valor que estamos recibiendo
del formulario podría marcarnos error ya sea que tenga el valor nulo o que sea un valor igual a cadena
vacía por ello es que se agregó esta validación.
Ahora vamos a crear el objeto de cliente con los nuevos datos que hemos recibido
recordemos que la clase de cliente hace las veces del modelo en el patrón modelo vista controlador así
que creamos una clase de cliente una variable cliente y creamos un nuevo objeto de tipo cliente y le
proporcionamos los valores que hemos procesado en el formulario.
En este caso como es un nuevo objeto de tipo cliente el Heydi no lo vamos a proporcionar ya que esto
lo va a generar de manera automática al insertarlo en la base de datos.
Por lo tanto vamos a establecer todos los campos excepto el cliente.
Por ello es que definimos también este constructor en la clase de cliente para que no haya necesidad
de proporcionar todos los campos
así que con eso especificamos todos los campos y solamente dejamos de especificar el valor de cliente
ya que ese valor se va a generar de manera automática una vez que hemos construido este objeto vamos
a insertarlo en la base de datos
para eso vamos a utilizar la capa de datos así que vamos a ser lo siguiente.
Definimos una variable llamada registros modificados ya que es lo que nos va a regresar la llamada al
método de insertar nos va a regresar cuántos registros se han modificado posteriormente creamos un nuevo
objeto de tipo cliente o JDBC y mandamos a llamar el método insertar y con esto insertamos el nuevo
objeto de tipo cliente esta variable no es necesario procesarla pero en este caso lo vamos a procesar
para saber si se han procesado los registros así que mandamos a imprimir esta variable registros modificados
y una vez que ya se ha guardado la información en la base de datos entonces dirigimos
hacia la acción por default así que mandamos a llamar el método acción de foll.
Por ello fue que separamos todo lo que estaba haciendo el método Droguett para que podamos reutilizarlo
desde otros métodos.
Así que una vez que hemos terminado de procesar el nuevo cliente y lo hemos insertado en la base de
datos entonces se vuelve a desplegar la información el listado de clientes y cualquier modificación
que se haya hecho sobre la base de datos.
Este método de acción de fot
podemos observar que vuelve a solicitar el listado de clientes recupera la información nueva de la base
de datos y vuelve a hacer los cálculos respectivos.
Así que vamos a guardar cambios y vamos a probar
refrescamos damos clic en Agregar cliente y vamos a proporcionar algunos valores por ejemplo el nombre
de Carlos el apellido Lara el email desvelará a robarme el punto com algún teléfono con el formato válido
y finalmente un saldo.
Por ejemplo el saldo de 50 podemos observar que todos los campos son válidos.
De lo contrario si alguno de los campos no fuera válido como en este caso el saldo si damos clic en
Guardar.
Podemos ver que nos muestra el mensaje que debemos de completar este campo proporcionamos el valor de
50.
El campo ya tiene el valor correcto y damos siguen guardar y podemos observar que ya se ha guardado
la información en la base de datos.
El nuevo usuario se está mostrando sin embargo este Aydin no necesariamente tiene que ser el valor 3.
Esto depende de las pruebas que hayamos hecho sobre nuestra tabla de clientes en la base de datos ya
que recordemos que este valor se asigna de manera auto incrementales.
Así que este valor es en automático pero en este caso debido a que son las primeras pruebas este valor
coincide perfectamente.
Sin embargo si este valor no coincidiera vamos a hacer todavía algunos cambios sobre esta página para
que no muestre el Heydi del cliente sino que muestre esto de manera incremental.
Pero esto lo vamos a hacer posteriormente ahora se muestra el nuevo valor Carlos Lara se muestra su
saldo y se muestra la actualización del saldo total 100 más 250 son 350 +50 tenemos el saldo de 400
así que se actualizó correctamente el saldo total y también el total de clientes.
Tenemos tres clientes en total en nuestro listado así que con esto ya está funcionando correctamente
la acción de agregar al.
Vamos a hacer el cambio que les comento ya que este Heydi podría ser distinto así que vamos a hacer
el siguiente cambio sobre nuestra página de listado clientes
en el elemento de Fortich tenemos otro atributo llamado Bar datos y este va a ser un objeto que contiene
información de los elementos que estamos dando así que le vamos a llamar estátus a esta variable.
Y posteriormente en lugar de utilizar el Heydi cliente en este registro en esta celda lo que vamos a
hacer es utilizar el contador utilizando la variable estátus así que utilizamos estátus punto Cadet
así que ya no estamos mostrando el valor de la base de datos les dejamos la decisión a ustedes si quieren
mostrar el Aidé al cliente o si quieren mostrar simplemente un valor auto incremental pero que no tiene
nada que ver con la base de datos sino solamente con el listado que estamos mostrando.
Guardamos cambios
refrescamos sin embargo aquí hay un detalle podemos observar también que el R.L incluye la acción de
insertar.
Así que si refrescamos de nueva cuenta esta página nos está preguntando si queremos volver a enviar
el formulario con los datos que hemos proporcionado.
Esto aunque no es un error debemos de corregir este flujo de momento vamos a decirle que sí continué
pero podemos observar que esto ha generado de nueva cuenta un nuevo registro se ha duplicado el registro
de Carlos Lara ya está tomando este valor.
Auto incrementaba de 1 a 4 pero el valor de Carlos Lara se duplicó.
Vamos a corregir esto para corregir esto tenemos que hacer algunos cambios sobre nuestro controlador
dentro del método de acción por default.
Estamos utilizando el método recuas despachen y seleccionando clientes puntos JSP y al utilizar el método
forward lo que estamos haciendo es que realmente el cambio hacia la página de JSP es un cambio pero
de manera interna.
Así que el navegador realmente nunca se entera de que se ha seleccionado otro JSP a mostrar todo se
hace del lado del servidor.
Por ello es que esta acción no se quita y seguimos utilizando el controlador aquí para corregir esto
y que ya no se vuelva a insertar un registro duplicado lo que vamos a hacer en lugar de utilizar un
forward.
Vamos a utilizar Samra direc
así que vamos a poner entre comentarios este código ya que eso genera que el R.L no cambie y en este
caso si es deseable que el cambio para que evitemos hacer refresh y que se duplique la información así
que vamos a utilizar el siguiente código.
Vamos a utilizar nuestro objeto respondés y mandamos a llamar el método send redirección y posteriormente
nos solicita la ubicación del archivo que queremos utilizar en este caso vamos a utilizar el archivo
de clientes JSP y eso es lo que vamos a hacer es redirigir precisamente al cliente es JSP pero este
método siempre direc sí notifica al navegador por lo tanto ahora el navegador va a mostrar esta página
JSP bien vamos a guardar cambios y vamos a refrescar.
Vamos a quitar esta acción y vamos a la página de inicio.
De lo contrario no vamos a notar este cambio bien debido a que este ya fue un cambio mayor en este momento
ya está fallando así que debemos de hacer el ridículo de nuestra aplicación
hacemos un clic también en dado caso de que falle debemos detener glacis por completo y volver a hacer
click.
En este caso falló así que debemos de detener glacis en ocasiones nos permite hacerlo sin necesidad
de tener glacis pero en este caso como fallo debemos de volver a ejecutar todo el proceso bien ya se
detuvo Glass glacis hacemos un clic cambio
y ejecutamos nuestra aplicación Click derecho ron y esperamos a que termine de levantarse glacis
iconicidad terminado de levantar esta aplicación pero podemos observar que ahora a diferencia de lo
que veníamos obteniendo anteriormente el listado de personas el saldo y el total de clientes ya no podemos
visualizar la información.
Podemos observar que el JSP se ha corregido correctamente ya podemos observar el cambio hacia el JSP
de clientes punto JSP.
Recordemos que este JSP debe de ser público de lo contrario si está privado no vamos a poder acceder.
Por lo tanto por lo menos necesitamos un JSP público para poder empezar nuestra aplicación.
Ahora cómo corregimos esto del listado de clientes.
El saldo y el total de clientes.
Lo que sucedió es lo siguiente debido a que anteriormente estábamos utilizando recuas de despachar para
hacer el envio de información hacia la página de clientes JSP a través del objeto Ricketts estaba obteniendo
toda la información que habíamos compartido en el alcance de recuesto pero ahora debido a que estamos
utilizando el método centro de direc este método vuelve a ser una llamada G.T hacia el servidor para
notificar que estamos haciendo un cambio de JSP.
Por lo tanto es otra petición y la información que hemos agregado en el alcance de recuesto se pierde.
Por lo tanto esta información ya no se puede visualizar en esta página cuando estamos haciendo la notificación
del nuevo JSP se pierde la información ya que estaba en el alcance de Request y ya no podemos acceder
a esta información.
Ahora qué tenemos que hacer para corregir esto.
En lugar de utilizar el alcance de recuesto podemos utilizar un alcance mayor para que tenga más duración.
Esta información que vamos a compartir así que lo que vamos a hacer en lugar de compartir esta información
en caso de recuesto vamos a compartirla en el alcance de saison así que vamos a crear nuestro objeto
de tipo cesion HTTPS con por medio del objeto request.
Solicitamos el método GET Saison y en lugar de compartirlo en el alcance de Request vamos a compartir
esta información en el alcance de sesión
y con esto va a ser suficiente para que ahora el centro de direc funcione y la página de JSP clientes
pueda acceder a esta información ya que debido a que es otra petición entonces necesitamos tener esta
información disponible incluso después de que haya terminado la primera petición.
Por lo tanto lo vamos a poner en la cancha de sesión.
Guardamos cambios y vamos a revisar
regresamos al inicio de nuestra aplicación damos enter y podemos observar que ya tenemos toda la información
de nueva cuenta debido a que se está haciendo una segunda petición para notificar al navegador de este
cambio de página.
Entonces ya es otra petición y por lo tanto ahora en esta otra petición estamos accediendo a esta información
pero en el alcance de sesión así que esos son los cambios que debemos de realizar para que funcione
correctamente nuestra aplicación.
Eso es todo por este vídeo y nos vemos en los siguientes.
Saludos.