Rumah > Java > javaTutorial > teks badan

Bagaimana untuk mengesahkan kesahihan data borang menggunakan Java?

WBOY
Lepaskan: 2023-08-10 21:03:15
asal
845 orang telah melayarinya

Bagaimana untuk mengesahkan kesahihan data borang menggunakan Java?

Bagaimana untuk menggunakan Java untuk mengesahkan kesahihan data borang?

Dalam pembangunan web, borang ialah salah satu cara penting untuk pengguna berinteraksi dengan tapak web, dan mengesahkan kesahihan data borang adalah langkah penting dalam memastikan data yang dimasukkan oleh pengguna mematuhi format dan peraturan yang diharapkan. Dalam pembangunan Java, kami biasanya menggunakan beberapa rangka kerja pengesahan untuk memudahkan proses ini Artikel ini akan mengambil rangka kerja pengesahan Hibernate Validator sebagai contoh untuk memperkenalkan cara menggunakan Java untuk mengesahkan kesahihan data borang.

1. Perkenalkan kebergantungan Pengesah Hibernate

Pertama, anda perlu menambah kebergantungan Pengesah Hibernate dalam fail pom.xml projek:

<dependency>
  <groupId>org.hibernate.validator</groupId>
  <artifactId>hibernate-validator</artifactId>
  <version>6.1.5.Final</version>
</dependency>
Salin selepas log masuk

2 Buat model pengesahan borang

Seterusnya, kami perlu mencipta model pengesahan , ini Setiap medan data borang ditakrifkan dalam model, dan medan dianotasi dan peraturan pengesahannya ditentukan.

import javax.validation.constraints.*;

public class FormModel {
  
  @NotEmpty(message = "姓名不能为空")
  private String name;  // 姓名字段,不能为空

  @Email(message = "邮箱格式不正确")
  private String email;  // 邮箱字段,需要满足邮箱格式

  @Pattern(regexp = "1[3456789]\d{9}", message = "手机号格式不正确")
  private String phone;  // 手机号字段,需要满足手机号格式

  @Min(value = 18, message = "年龄不能低于18岁")
  @Max(value = 100, message = "年龄不能超过100岁")
  private Integer age;  // 年龄字段,需要在18到100之间

  // 省略getter和setter方法
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan beberapa anotasi biasa yang disediakan oleh Pengesah Hibernate untuk mentakrifkan peraturan pengesahan medan, contohnya:

  • @NotEmpty bermaksud medan itu tidak boleh kosong
  • @E-mel bermakna medan itu perlu dipenuhi format e-mel;
  • @Corak menunjukkan bahawa medan perlu memenuhi ungkapan biasa yang ditentukan
  • @Min dan @Max menunjukkan bahawa medan itu perlu berada dalam julat yang ditentukan, dsb.

3. Sahkan data borang

Selepas menerima data borang yang dihantar oleh pengguna, kami boleh mengesahkan data borang dengan menghubungi kaedah pengesahan Hibernate Validator.

import javax.validation.*;

public class FormValidator {
  public static void main(String[] args) {
    ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
    Validator validator = factory.getValidator();

    FormModel form = new FormModel();
    form.setName("");  // 姓名为空
    form.setEmail("abc.com");  // 邮箱格式不正确
    form.setPhone("1234567890");  // 手机号格式不正确
    form.setAge(16);  // 年龄低于18岁

    Set<ConstraintViolation<FormModel>> violations = validator.validate(form);

    for (ConstraintViolation<FormModel> violation : violations) {
      System.out.println(violation.getMessage());
    }

    factory.close();
  }
}
Salin selepas log masuk

Dalam kod di atas, kami mula-mula mendapatkan contoh Pengesah, kemudian mencipta objek FormModel dan menetapkan beberapa nilai yang tidak mematuhi peraturan. Seterusnya, kami memanggil kaedah validator.validate untuk mengesahkan objek ini dan mendapatkan koleksi pelanggaran. Akhir sekali, kami mengulangi pengumpulan pelanggaran dan mengeluarkan mesej ralat untuk setiap pengesahan yang gagal.

Jalankan kod di atas, anda boleh mendapatkan output berikut:

姓名不能为空
邮箱格式不正确
手机号格式不正确
年龄不能低于18岁
Salin selepas log masuk

4 Memproses keputusan pengesahan

Dalam projek sebenar, kami biasanya mengembalikan maklumat ralat kepada pengguna atau merekodkannya dalam log apabila pengesahan gagal. Kami boleh menangani ralat ini dengan menyesuaikan kelas pengecualian atau menggunakan set hasil pengesahan yang disediakan oleh rangka kerja.

import javax.validation.*;

public class FormValidator {
  public static void main(String[] args) {
    ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
    Validator validator = factory.getValidator();

    FormModel form = new FormModel();
    form.setName("");  // 姓名为空
    form.setEmail("abc.com");  // 邮箱格式不正确
    form.setPhone("1234567890");  // 手机号格式不正确
    form.setAge(16);  // 年龄低于18岁

    Set<ConstraintViolation<FormModel>> violations = validator.validate(form);

    if (!violations.isEmpty()) {
      // 处理验证不通过的错误
      for (ConstraintViolation<FormModel> violation : violations) {
        System.out.println(violation.getMessage());
      }
    } else {
      // 表单数据验证通过,进行其他业务逻辑处理
      // ...
    }

    factory.close();
  }
}
Salin selepas log masuk

Dalam kod di atas, apabila pengesahan gagal, kami merentasi koleksi pelanggaran dan mengeluarkan mesej ralat dan apabila pengesahan berlalu, kami boleh terus memproses logik perniagaan yang lain.

Ringkasan:

Menggunakan Java untuk mengesahkan kesahihan data borang adalah bahagian penting dalam pembangunan web. Sebagai rangka kerja pengesahan yang biasa digunakan, Pengesah Hibernate memberikan kami beberapa anotasi yang mudah dan mudah digunakan yang boleh memudahkan proses pengesahan data borang. Melalui contoh di atas, kami boleh mempunyai pemahaman yang lebih jelas tentang cara menggunakan Java untuk mengesahkan kesahihan data borang, membantu kami memastikan ketepatan dan keselamatan data yang dimasukkan oleh pengguna.

Atas ialah kandungan terperinci Bagaimana untuk mengesahkan kesahihan data borang menggunakan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!