java使用Filter过滤掉不是数字的输入
时间: 2024-03-17 07:41:56 浏览: 11
可以通过编写一个自定义的Filter来实现过滤掉不是数字的输入。下面是一个示例代码:
```java
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter(filterName = "numberFilter", urlPatterns = {"/*"})
public class NumberFilter implements Filter {
public void init(FilterConfig config) throws ServletException {
// 初始化操作
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws ServletException, IOException {
String input = request.getParameter("input"); // 获取输入参数
if (input != null && !input.matches("\\d+")) { // 使用正则表达式匹配数字
throw new ServletException("Input must be a number!"); // 抛出异常
}
chain.doFilter(request, response); // 继续执行后续的Filter或Servlet
}
public void destroy() {
// 销毁操作
}
}
```
这个Filter的作用是,对于所有的请求,在获取名为"input"的请求参数后,判断其是否为数字,如果不是,则抛出一个ServletException异常,否则就继续执行后续的Filter或Servlet。在web.xml文件中也可以配置Filter,但是使用注解更加简洁。