我有一个表单,它会向servlet发送一封测试有效性的电子邮件。
这个servlet调用一个名为EmailValidator的类,可以捕获2种类型的错误:最长的字符串和无效的电子邮件路径。
当捕获前一个错误时,将抛出以下异常:
throw new IllegalArgumentException( "The email is too long.", new Exception("email-too-long") );
当后一个错误发生时将抛出:
throw new IllegalArgumentException( "The email is invalid because the \"@\"character is missing.", new Exception("invalid-email") );
比servlet捕获异常并执行以下操作:
try{
new EmailValidator().validate( "test" );
}catch( IllegalArgumentException e ){
log.error( e );
Writer out = response.getWriter();
out.write( e.getCause().getMessage() ); // short message to the client.
out.close();
}
问题是,这是发送消息的好方法" invalid-email"给客户端并向记录器发送更准确的详细信息,如上所述?
客户端浏览器只能处理这种类型的字符串" invalid-email"或者"电子邮件太长"用服务器不知道的好消息正确地判断客户端。
提前致谢,如果存在,请告诉我更准确和/或更聪明的方法。
答案 0 :(得分:1)
我觉得你在这里很好。只要您没有将敏感信息发送给客户,您就是好的。例如: - 某些错误消息会向客户端显示列或表名称,这可能会因安全原因而有害。只需确保邮件不包含任何我认为不存在的敏感信息。