Remover parâmetros do request

148 views
Skip to first unread message

Camila Cândido

unread,
Jun 22, 2011, 12:14:06 PM6/22/11
to JUG-MS
Pessoal boa tarde,

Eu preciso inibir a passagem de parâmetros via GET em alguns servlets,
então preciso remover os parâmetros, caso o usuário insira na url.

public void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {

Enumeration en = request.getParameterNames();
while(en.hasMoreElements()) {
String parametro = (String)en.nextElement();
// preciso limpar os parametros...
}

RequestDispatcher dispatcher =
request.getRequestDispatcher(request.getServletPath());
dispatcher.forward(request, response);
}

Porém, pelo que pesquisei, não consigo alterar o map de parâmetros do
request.
Alguém tem uma sugestão melhor para barrar os parâmetros via GET?

Obrigada.

Humberto Pereira

unread,
Jun 22, 2011, 2:55:30 PM6/22/11
to jug...@googlegroups.com
Ola,

nao tem como voce fazer isso diretamente no HttpServletRequest
passado, os parametros dele sao imutaveis. O que voce pode fazer eh
extender o HttpServletRequest, filtrando os parametros que voce quer
inibuir. Depois, passar esse novo HttpServletRequest pro dispatcher.


class FilterHttpServletRequest extends HttpServletRequestWrapper {

FilterHttpServletRequest(HttpServletRequest request) {
super(request);
}

....
}

Nesse FilterHttpServletRequest, voce sobreescreve os metodos getParam*.


E no servlet voce faz:

public void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {

HttpServletRequest filtered = new FilterHttpServletRequest(request);

RequestDispatcher dispatcher =
request.getRequestDispatcher(filtered.getServletPath());
dispatcher.forward(filtered, response);
}

[]s
Begnini


2011/6/22 Camila Cândido <camila...@gmail.com>:

> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "JUG-MS" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para jug...@googlegroups.com.
> Para cancelar a inscrição nesse grupo, envie um e-mail para jug-ms+un...@googlegroups.com.
> Para obter mais opções, visite esse grupo em http://groups.google.com/group/jug-ms?hl=pt-BR.
>
>

Camila Cândido

unread,
Jun 22, 2011, 3:20:21 PM6/22/11
to JUG-MS
Muito obrigada Begnini é isso mesmo, acabei encontrando um site
falando sobre isso, veja:

http://ocpsoft.com/opensource/how-to-safely-add-modify-servlet-request-parameter-values/

No meu caso eu posso sempre retornar uma lista vazia no método
getParameterMap()

[]'s


On 22 jun, 15:55, Humberto Pereira <begn...@gmail.com> wrote:
> Ola,
>
>     nao tem como voce fazer isso diretamente no HttpServletRequest
> passado, os parametros dele sao imutaveis. O que voce pode fazer eh
> extender o HttpServletRequest, filtrando os parametros que voce quer
> inibuir. Depois, passar esse novo HttpServletRequest pro dispatcher.
>
> class FilterHttpServletRequest extends HttpServletRequestWrapper {
>
>     FilterHttpServletRequest(HttpServletRequest request) {
>            super(request);
>     }
>
>    ....
>
> }
>
> Nesse FilterHttpServletRequest, voce sobreescreve os metodos getParam*.
>
> E no servlet voce faz:
>
> public void doGet(HttpServletRequest request, HttpServletResponse
> response) throws ServletException, IOException {
>
>       HttpServletRequest filtered = new FilterHttpServletRequest(request);
>
>            RequestDispatcher dispatcher =
> request.getRequestDispatcher(filtered.getServletPath());
>            dispatcher.forward(filtered, response);
>
> }
>
> []s
> Begnini
>
> 2011/6/22 Camila Cândido <camilacand...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages