gpt4 book ai didi

java - Java 后端中正确(且快速)的参数检查

转载 作者:行者123 更新时间:2023-11-30 03:30:06 26 4
gpt4 key购买 nike

我正在使用 Mybatis 结合 EJB 3.1 开发一个 CRUD 应用程序。这些 EJB 由 JAX-RS Web 服务调用。

在 JAX 中,我(显然)必须在调用 EJB 之前检查参数的正确性。

我正在做类似的事情:

int codiCli = req.getParameter("codiCli") != null ? new Integer(
req.getParameter("codiCli")).intValue() : 0;
int codiIndirizzo = req.getParameter("codiIndirizzo") != null ? new Integer(
req.getParameter("codiIndirizzo")).intValue() : 0;
String indirizzo1 = req.getParameter("indirizzo1") != null ? req.getParameter("indirizzo1") : "";
if (codiCli <= 0 || !isValid(indirizzo1) || !isValid(localita) ) {
response = this.createJsonErrorResp("updateIndirizzo", 1, 1002, "Parameters error").toString();
} else {
try {
InitialContext initialContext = new InitialContext();
Object serviceObj = initialContext.lookup("java:comp/env/ejb/MngClientiDAOService");
MngClientiDAOServiceRemote service = (MngClientiDAOServiceRemote) javax.rmi.PortableRemoteObject
.narrow((org.omg.CORBA.Object) serviceObj, MngClientiDAOServiceRemote.class);
// ...
}
//...
}

是否有更好且可能更快的方法来完成所有这些控制?也许有一个 Java 库或正确的模式可以做到这一点?

谢谢

最佳答案

您可以使用 Bean Validation 来执行参数验证。看: http://docs.oracle.com/javaee/6/tutorial/doc/gircz.html

如果您使用 JAX-RS Web 服务,则可以通过将请求参数放入 bean 中来验证它们 - 就像下面示例中的 User bean:

@POST
@Consumes("application/xml")
public void registerUser(@Valid User user) {
...
}

更多示例:https://jersey.java.net/documentation/latest/bean-validation.html#d0e13587

如果您有更复杂的情况,您还可以使用自定义 validator - 请参阅实现 ConstraintValidator 接口(interface)的示例。

关于java - Java 后端中正确(且快速)的参数检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29254242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com