2012-06-18 41 views
20

Trong ứng dụng của tôi, tôi muốn áp dụng một số bộ lọc, nhưng tôi không muốn tất cả các yêu cầu phải đi đến bộ lọc đó. nó sẽ là một vấn đề hiệu suất, bởi vì chúng tôi đã có một số bộ lọc khác.làm thế nào để áp dụng bộ lọc servlet chỉ cho phương pháp bài http

Tôi muốn bộ lọc của mình chỉ áp dụng cho các phương thức HTTP POST .. có cách nào không?

Hãy giúp tôi tìm cách này.

cảm ơn Kiran

Trả lời

24

Không có sẵn tính năng này. A Filter không có phí khi áp dụng cho tất cả các phương thức HTTP. Tuy nhiên, nếu bạn có một số logic bên trong mã Filter có chi phí cao, bạn không nên áp dụng logic đó cho các phương thức HTTP không mong muốn.

Đây là đoạn mã mẫu:

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 bạn có thể biết làm thế nào để áp dụng escaper mùa xuân cho sql và html trên yêu cầu json (bưu điện) tôi đã làm nó trên get nhưng làm thế nào để làm điều đó trên bài viết? xem http://stackoverflow.com/questions/1812891/java-escape-string-to-prevent-sql-injection/39440337#39440337 – shareef

Các vấn đề liên quan