2010-11-14 32 views
10

Estoy obligado a realizar algunas tareas pequeñas con JSP; Como soy muy nuevo en JSP, me preguntaba si había alguna posibilidad de obtener solo OBTENER o solo POST parámetros de la solicitud HTTP.Parámetros JSP, GET y POST

He visto ServletRequest.getParameter (y me gusta) pero parece que esos métodos obtienen los parámetros POST GET y. ¿Hay alguna manera de obtener solo uno de ellos, sin analizar la URL o el cuerpo de la solicitud yo mismo? Y si no, ¿existe alguna regla de precedencia que sobrescriba los valores (como los parámetros POST siempre sobrescribiendo los parámetros GET)?

+0

Esto es realmente un olor a código. ¿Cuál es el requisito funcional? ¿Por qué no simplemente le das a los GET y POST un nombre diferente? – BalusC

+0

@BalusC: en realidad es un problema de seguridad. Exigir que los parámetros específicos solo se envíen como parámetros POST (o GET respectivamente) mejora la seguridad para el usuario final. Y realmente no quiero aceptar ciegamente ningún tipo de parámetro después de haber aprendido a evitarlo en años de creación de aplicaciones web. – poke

+0

Luego, simplemente determine el método de solicitud o implemente un servlet que le permita ejecutar código solo sobre cierto método. Ver la respuesta de Bozho. – BalusC

Respuesta

13

En general, las solicitudes deberían manejarse mejor en servlets. Tienen los métodos doGet(request, response) y doPost(request, response), para diferenciar los dos.

Si realmente insiste en hacerlo en un JSP, puede diferenciar los métodos usando request.getMethod(). Devolvería GET o POST.

Dado que esto es una tarea, supongo que el punto es aprender a usar los servlets y sus métodos doX, así que hágalo de esa manera.

Actualización: Usted puede obtener la cadena de consulta (request.getQueryString()), que está a sólo los parámetros de conseguir, y analizarlo, pero yo no diría que es una práctica común y buena.

+0

Sí, pero recuerde que puede incluir parámetros de URL en los POST, por lo que la pregunta sobre la precedencia y el origen aún se aplica, incluso en un servlet (que, por supuesto, es lo que se convierte un JSP). –

+0

Estamos obligados a usar JSP; y no, no insinúas nada sobre el motivo detrás solo porque es tarea. El curso muestra al azar nuevas tecnologías y quiere que hagamos algo con ellas sin dar instrucciones previas, etc. Y sí, como T.J. Crowder dijo, todavía puede establecer los parámetros GET en una solicitud POST. – poke

+0

@poke ver mi actualización. – Bozho

4

En JSP, puede ver el objeto de solicitud para determinar qué tipo de solicitud era (GET o POST), pero solo hay un mapa de parámetros.

-2

Pruebe [Servlet + JSP]. En Servlet puede elegir entre doPost() o doGet()