것도 좋은 방법 없습니다 JSR-303 스타일의 매개 변수 검증을 등록합니다. 컨트롤러/비즈니스 로직은 JSP (태그)에 속하지 않습니다. 필터는 거의 훌륭하지만 충분히 구체적인 것은 아닙니다. 이 작업은 서블릿에 의해 수행되어야합니다. 후 처리를 위해 서블릿에 양식을 제출하는 것입니까? 당신이 이미 그렇게하고 있지 않은 것처럼 들리지만, 그 대답은 그렇지 않으면 매우 직설적이었을 것입니다.
our servlets tag wiki page에서 서블릿과 함께 JSP를 사용하여 양식 제출을 후 처리하는 좋은 접근 방식의 예를 찾을 수 있습니다. 여기에 관련성의 추출물이다 :
<input id="name" name="name" value="${fn:escapeXml(param.name)}">
<span class="error">${messages.name}</span>
또한
String name = request.getParameter("name");
if (name == null || name.trim().isEmpty()) {
messages.put("name", "Please enter name");
}
// ...
request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response);
으로는, 모든 상용구를 제거 MVC 프레임 워크가 존재 등, 사용 사례의 이런 종류의 서블릿 코드 (/ 반복되는 중복) JSF, Spring MVC, Wicket, Stripes, Struts2 등과 같은 것들이다. 예를 들어
JSF과 같이 보일 것이다.
<h:inputText id="name" value="#{bean.name}" required="true" requiredMessage="Please enter name" />
<h:message for="name" />
그게 전부입니다. JSF의 FacesServlet
컨트롤러 서블릿은 사용자 정의 Java 코드가 필요없이 채워 졌는지 확인하고 주어진 위치에 (구성 가능) 메시지를 표시합니다. 모델로 옮길 수도 있습니다. JSF는 JSR303 bean 검증을 투명하게 지원합니다. 예 :
<h:inputText id="name" value="#{bean.name}" />
<h:message for="name" />
@NotNull(message="Please enter name")
private String name;
업데이트 귀하의 편집에 따라와
:
이 좋은 답변 주셔서 감사합니다,하지만 가장 좋은 방법 일 것입니다 무슨 궁금 해서요 예를 들어 Google 차트 API와 같은 서비스를 제공하는 경우 s는 전송되기 전에 양식에 의해 점검됩니다. 예 : https://chart.googleapis.com/chart?cht=&chd=&chs=&...additional_parameters ...
같은 방식으로 서블릿을 사용하면됩니다. 유일한 차이점은 doPost()
대신 doGet()
에 작업을 구현하고 필요한 경우 오류에 HTTP 400을 반환해야한다는 것입니다. 다시 한 번, our servlets tag wiki page을 확인하여 용도를 더 잘 이해합니다. 또는 JAX-WS 또는 JAX-RS와 같은 웹 서비스 프레임 워크를 대신 사용하여 HTML 페이지에 대해 MVC 프레임 워크처럼이 작업을 투명하게 수행 할 수 있습니다.
아주 좋은 대답, 그냥 위키를 체크 아웃하고 그것이 많이 도움이되었습니다. 당신의 대답 중 많은 것도 마음에 들었습니다.하지만 한가지는 저를 조금 혼란스럽게합니다. jax-ws 또는 jax-rs와 같은 웹 서비스 프레임 워크가 SOAP, JSON 또는 XML을 제공하지 않아야합니까? 그들도 html을 제공 할 수 있습니까? 추측에 의한 편집에 대해 죄송합니다. 우연히 반환합니다. – Zounadire
그들은 HTML을 제공 할 수도 있지만 그게 유일한 의도는 아닙니다. Google 차트 API를 예로 들었습니다. 그것은 이미지를 반환하는 웹 서비스입니다. – BalusC
아, 이제 알겠습니다. 감사합니다. – Zounadire