Esto es probablemente debido a mi falta de comprensión y la información incompleta de JSP y JSTL. Tengo una página web donde tengo los elementos de entrada, tales como

<input name="elementID" value="${param.elementID}"/>

Cuando estoy tratando de guardar la forma, me echa para que elementID y otros elementos para ajustarse a ciertas restricciones «numérico, menos de XXX». Voy a mostrar un mensaje de error si no. Todos los parámetros se guardan y el usuario no tendrá la necesidad de escribir de nuevo después de corregir el error.

Después de guarda, cuando estoy redirigiendo a la página de la misma para el objeto a ser editado, estoy buscando una manera de configurar el parámetro como request.setParameter("elementID",..) hay una manera de hacer esto ? Sin embargo, lo único que puedo encontrar es request.setAttribute.

  • «Estoy buscando una manera de configurar el parámetro como la solicitud.setParameter(«elementID»,..)». Por qué?
  • Usted ya ha encontrado el método correcto. ¿Cuál es el problema? Nota, tienes un ataque de XSS agujero allí. Si no está seguro, lea nuestros servlets página de la wiki para ejemplos concretos: stackoverflow.com/tags/servlets/info
  • Gracias. Me fui con la solicitud.setAttribute. Utiliza requestScope.atributo en mi <input … value=»${requestScope.atributo}»/> sin Embargo, siempre que la validación falla, puedo restaurar los atributos de los parámetros de la petición para conservar los valores que el usuario hizo de entrada. Una vez validados, los empujo a los datos a mi bean. Hay un mejor enfoque de diseño ? Como para el ataque de XSS agujero, actual jefe intenta obligarme a escribir en scriptlets y jdbc. Yo apenas logró obtener el permiso para el uso de jstl. Hay más agujeros que este ataque XSS agujero.
InformationsquelleAutor Ender Wiggin | 2012-03-19

3 Comentarios

  1. 6

    HTTP respuestas no admite la transferencia de parámetros.

    JSP/Servelets permite utilizar request.setAttribute o session.setAttribute para ese propósito. Ambos métodos están disponibles cuando el procesamiento de la página en la que estamos redirigiendo a, Así que, básicamente, de que te saliera bien…

    También, de lo que usted describe, es posible que desee comprobar la validación del cliente: no envíe el formulario hasta que esté validar el uso de secuencias de comandos de cliente (javascript)

  2. 0

    Después de que el servlet procesa el formulario, (ie. guarda la entrada del usuario en la base de datos), tiene el servlet adelante (no redirigir, porque eso sería perder la solicitud params) la solicitud de la misma jsp que contiene el formulario. Así que no hay necesidad de establecer los parámetros desde el servlet está de paso de vuelta por el mismo objeto de solicitud.

    La jsp que contiene el formulario debe tener entradas similares a este:

    <form>
    ...
    <input type="text" value="${elementid}"/>
    ...
    </form>

    La sintaxis ${varname} es EL. Así que si el elementid ya tiene un valor, que textfield contendrá ese valor. Alternativamente, si usted no ha utilizado EL y/o JSTL, que el uso de scriptlets (pero que es altamente no recomendable, EL y/o JSTL debería ser la forma):

    <form>
    ...
    <input type="text" value="<%= request.getParameter("elementid") %>"/>
    ...
    </form>
  3. 0

    Que tenía que incluir <%@ page isELIgnored="false"%> a mi jsp para permitir que el código como ${elementid} a trabajar

Dejar respuesta

Please enter your comment!
Please enter your name here