Попробуйте это:
Я изменил ваш валидатор, чтобы он возвращал логическое значение, чтобы вы могли выполнить для него оператор if в методе doPost.Я также сделал так, чтобы он возвращал успех вместо отказа, просто чтобы проверка имела больше смысла после того, как вы вернетесь.
response.sendError позволит вам сделать страницу с общей ошибкой (см .: http://blogs.atlassian.com/2007/07/responsesenderror_vs_responses/) вместо вашего вывода. Если вы хотите, чтобы вы хотели setStatus (снова, см. Ссылку).
Возврат должен прекратить выполнение и не дать остальным произойти, но он не выключитсервлет, как system.exit (0).
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException{
String param1 = request.getParameter("param1");
String param2 = request.getParameter("param2");
if (! validateInput(param1, param2, request, response)){
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
//Or you can use this instead...
//response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
//PrintWriter out = response.getWriter();
//out.write("invalid input");
return;
}
//if nothing's wrong with the input, do this and that
}
private boolean validateInput(String param1, String param2, HttpServletRequest request, HttpServletResponse response) throws IOException{
boolean success = false;
//validate input blah blah blah
return success;
}