¿Qué pasa con las anomalías del desarrollo WEB?
Hola, puedes consultar los siguientes métodos:
BEA WebLogic Portal 9.2 es un servidor de aplicaciones para el desarrollo de aplicaciones basadas en Java. El instalador incluye BEA Workshop para WebLogic.
Plataforma, un IDE para construir rápidamente servicios web. Decidimos utilizar WebLogic debido a su uso generalizado en la industria y su facilidad para crear servicios web.
Navegación de contenido
Crosscheck Networks SOAPSonar es un cliente de prueba de servicios web que utiliza WSDL y puede generar pruebas funcionales, de rendimiento, de interoperabilidad y de vulnerabilidad para servicios web de destino. Servicio web desprotegido. Los primeros servicios web no tenían ningún mecanismo de protección contra condiciones adversas. Como se muestra en el siguiente código, este método básico lee varias entradas dobles, divide el divisor por el dividendo y devuelve el valor doble resultante. ¿Código?resaltado?producido?por?Actipro?CodeHighlighter?
(freeware)
/
paquete?mathservice;
¿importar? javax.jws.*;
@WebService
¿clase pública?DivideWS?
{
@WebMethod
público?doble?nakedDivide(doble?dividendo,?doble?divisor)
{
retorno?dividendo/divisor;
}
}
Las pruebas muestran el comportamiento del método web nudeDivide(…): las pruebas positivas muestran que el servicio web realiza una división normal en el número de entrada.
Si se ingresa un divisor cero, el servidor de aplicaciones lo manejará adecuadamente y devolverá el valor INF. Si no se ingresa nada para el dividendo o el divisor, se mostrará un seguimiento de la pila detallado, así como información sobre; los aspectos internos del procesamiento XML. Enumere información como serializadores, controladores de protocolo de servidor SOA y plataformas de implementación.
En términos generales, la información de seguimiento de la pila no es de utilidad para los usuarios de servicios web, y los usuarios tienen pocas formas de recuperarse de excepciones tan genéricas y prolongadas. Esto no es como un simple conjunto de códigos de retorno documentados enviados al cliente, o una recuperación fácil de excepciones nulas o de división por cero. La información de seguimiento de la pila enviada al programa cliente no sólo es inútil y el código no es ejecutable, sino que también puede pasar detalles de implementación a usuarios externos, que pueden ser explotados aún más.
Servicio web defensivo:
El siguiente fragmento de código muestra que el servicio web defensivo defensivaDivide(...) se basa en el método anterior nudeDivide(...), agregando un mecanismo de verificación simple para ver si el divisor es cero. Esto garantiza que no se produzcan errores de división por cero. Si el divisor es cero, este método devuelve 0 para que el programa que realiza la llamada pueda recuperarse de una entrada de divisor cero inapropiada. En este enfoque, los programadores anticipan una condición límite y escriben código defensivo para manejarla.
¿Código?resaltado?producido?por?Actipro?CodeHighlighter?
(freeware)
/
@WebMethod
¿público?doble? defensivoDividir(doble?dividendo,?doble?divisor)
{
si?(divisor?
!=?
0)
retorno?dividendo/divisor;
else
retorno?0;
}
Varios aspectos positivos y las pruebas negativas revelaron rápidamente el comportamiento del método web defensivoDivide(...): las pruebas positivas mostraron que el servicio web realizaba una división normal en el valor numérico de entrada si se ingresaba un divisor cero, a diferencia de nudeDivide(...) fallaría después de intentar dividir; , devuelve un valor INF infinito, defensivaDivide(...) devuelve un valor de error explícito 0.0 definido por el programador y ni siquiera intenta la operación de división si no hay entrada para el dividendo o divisor, al igual que nudeDivide() , Se muestra un seguimiento de pila detallado, junto con una lista de información sobre los componentes internos del procesamiento XML, como serializadores, controladores de protocolo de servidor SOA y plataformas de implementación.
Los resultados de las pruebas mostraron que, si bien el escenario de división por cero se anticipó y manejó adecuadamente, el manejo de errores defensivo no sirvió mucho más que eso. Sin embargo, los programadores pueden hacer que defensivaDivide() sea más eficiente que nudeDivide() simplemente evitando el uso de datos incorrectos para los cálculos. La anticipación significa que los procedimientos pueden hacerse más eficientes.
Servicios web seguros para contenedores
A continuación, el método de división se ha modificado para tomar un valor de cadena como valor de entrada en lugar del valor doble como se esperaba en los ejemplos anteriores. De esta manera, los desarrolladores pueden controlar la exactitud de los valores de entrada a través de la codificación, en lugar de que los métodos generen excepciones de tiempo de ejecución para que las maneje el contenedor. Al dejar que el contenedor maneje las excepciones, el programador pierde el control, especialmente sobre las condiciones de borde anticipadas que el programador puede manejar.
El divisor de cadena y el dividendo se convierten primero en números de doble precisión utilizando bloques de código try-catch. Si la conversión no tiene éxito, el bloque catch encontrará la excepción y devolverá cero. Después de que la conversión sea exitosa, verifique si el divisor es cero;
Si el valor no es cero, la operación fue exitosa.
¿Código?resaltado?producido?por?Actipro?CodeHighlighter?
(freeware)
/
@WebMethod
¿público?doble? defensivaStringDivide(¿Cadena?dividendo,?Cadena?
divisor)
{
doble?dDividendo;
doble?dDivisor; p>
p>
probar
{
dDividendo?=?
Double.parseDouble(dividendo);
dDivisor?=?
Double.parseDouble(divisor);
}
¿captura?(¿Excepción?
e) p>
{
retorno?0;
}
si?(dDivisor?
!=?
0 )
retorno?dDividendo/dDivisor;
otro
retorno?0;
}
Visualización de prueba Se mejoró el comportamiento del método web defensivoStringDivide(...): las pruebas positivas muestran que el servicio web realiza una división normal en el valor de entrada
Si se ingresa un divisor cero, como defensivoDivide(... ), el método también se comporta normalmente, no se enviarán errores SOA con seguimientos de pila. Este método devuelve apropiadamente un valor cero al consumidor del servicio web;
Si no se ingresa nada para el dividendo o el divisor, o se ingresa un carácter no numérico, este método intenta convertirlo, pero la conversión falla. , bloque de código de captura. Se maneja la excepción y se devuelve un valor de cero.
El método defensivoStringDivide() es más estricto que los dos primeros métodos. Este método impide explícitamente que los usuarios ingresen valores arbitrarios no numéricos. Controla el manejo de excepciones y evita que se generen seguimientos de pila con entradas no numéricas. Con la codificación defensiva, los programadores pueden evitar la fuga de información a través de la estructura de manejo de excepciones del contenedor. El uso de este enfoque defensivo reduce la posibilidad de extraer programas, solucionadores y componentes internos de contenedores a través de rutas de servicios web.
Contenidos y requisitos de aprendizaje del front-end web
En primer lugar, si eres un front-end, debes tener una visión a largo plazo. Hoy en día, la tecnología está cambiando rápidamente. Si todavía utiliza presentaciones de diapositivas y efectos de caja de luz, entonces realmente no es un material de interfaz. Solo se puede decir que eres una persona que se enfrenta a situaciones difíciles o que solo puedes aplicar el código de efecto escrito por otros.
En segundo lugar, debes mejorar tu propio valor. No aprenda div + css y no quiera aprender otras tecnologías. Siempre piense críticamente sobre su propia situación peligrosa. Por ejemplo, hay demasiadas personas que conocen div + css en 3 días. A través de tutoriales en línea, podrás dominar div+css en 10 días. Aprenda más cosas que puedan resaltar su propio valor. Por ejemplo, además de div+css, puede aprender algunos lenguajes de backend como php y java.
Finalmente, compartir significa expresar su propio valor. propio valor. China no tiene jquery ni smarty, cosas tan fáciles de usar. Lo que le falta a China no es capacidad, sino compartir. Todos los lugares que requieren análisis crediticio, como foros, blogs y otros lugares con una gran cantidad de información, no solo pueden aprender lo que no sabes, sino también aumentar tu acumulación de conocimientos.