Лучшие способы выполнения проверки данных на стороне сервера с использованием Java - PullRequest
4 голосов
/ 25 марта 2011

Может кто-нибудь подсказать мне этот фундаментальный вопрос: каковы наилучшие способы выполнения проверки данных на стороне сервера с использованием Java?

Я хотел бы знать, есть ли доступные библиотеки с открытым исходным кодом для выполнения проверок на стороне сервера.

Любая помощь приветствуется.

Ответы [ 3 ]

4 голосов
/ 25 марта 2011

Это зависит от того, какую платформу веб-разработки вы используете.


Необработанный сервлет JSP

Если вы используете простой сервлет jsp, то я бы предложил добавить один пакет / jar валидатора для каждого экрана формы / jsp.и подтвердите его от контроллера, прежде чем переходить на обслуживание.


JSF

Если вы используете JSF, тогда предусмотрена очень хорошо продуманная фаза проверки. Вы можете использоватьготовые валидаторы (вы можете просто добавить аннотацию в поле формы и все готово) или вы также можете создать свои собственные валидаторы.


Spring MVC

Есливы используете Spring MVC, он также имеет слой для проверки .


Struts

Struts также получил Saperate слой для проверки

3 голосов
/ 25 марта 2011

Если вы хотите проверить POJO, вы можете взглянуть на Oval framework http://oval.sourceforge.net/

JSR-303 (и его реализации) также может помочь, если ваше приложение разработано на основе pojos или bean-компонентов

Вот пример пользовательской проверки в OVal: Допустим, вам нужно проверить карту переменных в SomeValueClass и убедиться, что значение ключа 'приветствие' всегда присутствует.

public class SomeValueClass {

@FormCollection
Map variables;


public static void main(String[] args) {
    SomeValueClass svc1 = new SomeValueClass();
    svc1.variables = new HashMap();
    svc1.variables.put("greeting", "");

    Validator validator = new Validator();
    List<ConstraintViolation> violations = validator.validate(svc1);
    System.out.println("svc1 violations.size() = " + violations.size());
}

Аннотация @FormCollection для «Переменные карты»; пользовательский валидатор, как показано ниже:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.PARAMETER, ElementType.METHOD})
@net.sf.oval.configuration.annotation.Constraint(checkWith = FormCollectionCheck.class)
public @interface FormCollection {
  String message() default "Some errors in the form";
}

И класс проверки ограничений будет выглядеть так:

public class FormCollectionCheck extends AbstractAnnotationCheck<FormCollection> {
  public boolean isSatisfied(Object validatedObject, Object valueToValidate, OValContext context, Validator validator) {
    Map vars = (Map) valueToValidate;
    return !(vars.get("greeting")==null || ((String)vars.get("greeting")).length()<=0);
  }
}

Надеюсь, это поможет, Приветствия

1 голос
/ 25 марта 2011

затем вы переходите к платформе, которая предоставляет встроенные валидации, такие как Struts и т. Д. Они предоставят вам компонент валидации. Также его с открытым исходным кодом.

...