在本教程中,我们将展示如何验证用户在 Web 应用中输入的数据。 验证是一项常见的任务,并包含在 Java Web 框架(如 Stripes,Ninja 框架或 Play 框架)中。 在本教程中,我们将使用简单的自定义验证过滤器来验证数据。 来源可从作者的 Github 存储库中获得。

过滤器是一个对象,它对对资源的请求或对资源的响应(或两者)执行过滤任务。 过滤器以doFilter()方法执行过滤。

筛选器可用于各种任务,例如身份验证,日志记录,数据压缩,图像转换或加密。 在我们的示例中,我们使用过滤器来验证输入数据。

在我们的应用中,我们有一个 HTML 表单,该表单接受用户的输入。 该表单具有两个输入标签:用户名和电子邮件。 输入正在使用过滤器进行验证。 为了验证电子邮件格式,我们使用 Apache Commons Validator。 该项目是使用 NetBeans IDE 中的 Maven 构建的。 我们将应用部署在 Tomcat 上。

java 校验失败返回什么code码 java校验器_java 校验失败返回什么code码

Figure: Structure

该图显示了 NetBeans 中的项目结构。 我们有三个 JSP 页面,两个 Java 类和两个 XML 配置文件。

pom.xml

这是pom.xml构建文件。 它包含 JSTL 和 Apache Commons Validator 依赖关系的依赖关系。

context.xml

在context.xml文件中,我们指定应用的上下文路径。 它用于唯一标识应用。

index.jsp

index.jsp是应用的入口点。 它具有带有两个字段的 HTML 表单。 在这些字段中输入的值将由应用验证。

提交表单后,将调用Greet Servlet。 在到达 Servlet 之前,过滤器将处理请求。

hello.jsp

当输入数据通过验证测试时,将显示hello.jsp页面。 显示输入的数据。

valError.jsp

如果验证失败,则显示valError.jsp。 它显示了存储在errMsg属性中的错误消息。 该属性在验证过滤器中设置。

ValidationFilter.java

数据验证在ValidationFilter类中执行。

@WebFilter注释声明一个 servlet 过滤器。 过滤器将应用于指定的 URL 模式。 在我们的例子中,它在Greet servlet 调用之前被调用。

过滤器实现Filter接口。

实际工作以doFilter()方法完成。

通过getParameter()方法,我们获得了 HTML 表单发送的数据。

使用 Apache Commons Validator 的EmailValidator,我们检查电子邮件格式的有效性。

如果数据未能通过验证,则使用RequestDispatcher将处理分派到错误页面。 否则,请求将继续其行进到目的地 servlet。

Greeting.java

Greeting servlet 仅将请求与RequestDispatcher一起调度到hello.jsp页面。

java 校验失败返回什么code码 java校验器_java 校验失败返回什么code码_02

Figure: Error message

如果电子邮件格式不正确,则应用将以错误消息响应。

这是验证过滤器教程。 我们已经使用 JSTL,JSP,Apache Commons Validator,Tomcat 和 Maven 构建了一个 Web 应用。