2012-06-18 17 views
20

En mi aplicación quiero aplicar algún filtro, pero no quiero que todas las solicitudes tengan que ir a ese filtro. será un problema de rendimiento, porque ya tenemos algunos otros filtros.cómo aplicar el filtro de servlet solo para el método http post

Quiero que mi filtro se aplique solo para los métodos HTTP POST ... ¿hay alguna manera?

Por favor, ayúdame a encontrar la forma de hacerlo.

gracias Kiran

Respuesta

24

No hay ninguna característica fácilmente disponibles para esto. Un Filter no tiene sobrecarga al aplicar a todos los métodos HTTP. Pero, si tiene alguna lógica dentro del código Filter que tiene sobrecarga, no debería aplicar esa lógica a métodos HTTP no deseados.

Aquí es el código de ejemplo:

public class HttpMethodFilter implements Filter 
{ 
    public void init(FilterConfig filterConfig) throws ServletException 
    { 

    } 

    public void doFilter(ServletRequest request, ServletResponse response, 
     FilterChain filterChain) throws IOException, ServletException 
    { 
     HttpServletRequest httpRequest = (HttpServletRequest) request;   
     if(httpRequest.getMethod().equalsIgnoreCase("POST")){ 

     } 
     filterChain.doFilter(request, response); 
    } 

    public void destroy() 
    { 

    } 
} 
+0

hi se puede saber cómo aplicar escaper primavera para SQL y HTML en las peticiones JSON (post) que lo hice a conseguir, pero la forma de hacerlo en los postes? mira http://stackoverflow.com/questions/1812891/java-escape-string-to-prevent-sql-injection/39440337#39440337 – shareef

Cuestiones relacionadas