在Java后端正确(快速)检查参数
我正在结合EJB3.1使用Mybatis开发一个CRUD应用程序。这些EJB由JAX-RSWeb服务调用 在JAX中,我(显然)必须在调用ejb之前检查参数的正确性 我在做一些事情,比如:在Java后端正确(快速)检查参数,java,rest,jakarta-ee,error-handling,ejb,Java,Rest,Jakarta Ee,Error Handling,Ejb,我正在结合EJB3.1使用Mybatis开发一个CRUD应用程序。这些EJB由JAX-RSWeb服务调用 在JAX中,我(显然)必须在调用ejb之前检查参数的正确性 我在做一些事情,比如: int codiCli = req.getParameter("codiCli") != null ? new Integer( req.getParameter("codiCli")).intValue() : 0; int codiIndirizzo = req.getParameter("cod
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);
// ...
}
//...
}
int codiCli=req.getParameter(“codiCli”)!=无效的新整数(
requ.getParameter(“codiCli”)).intValue():0;
int codiIndirizzo=req.getParameter(“codiIndirizzo”)!=无效的新整数(
req.getParameter(“codiIndirizzo”).intValue():0;
字符串indirizzo1=req.getParameter(“indirizzo1”)!=无效的req.getParameter(“indirizzo1”):“”;
如果(codiCli您可以使用Bean验证来执行参数验证。请参阅:
如果您使用的是JAX-RS Web服务,则可以通过将请求参数放入类似bean的User
bean中来验证请求参数,如下例所示:
@POST
@Consumes("application/xml")
public void registerUser(@Valid User user) {
...
}
更多示例如下:
如果您有更复杂的情况,也可以使用自定义验证器-请参阅实现ConstraintValidator
接口的示例