/logged/form.jsp
은 올바른 것이어야합니다. appserver 로그를 읽는 것이 좋습니다. 내부에
IllegalStateException: response already committed
이있을 가능성이 큽니다.
잠깐, 잠깐만 기다려주세요. 따라서 방문자가 주소 표시 줄에 표시되는 URL을 변경하려고합니다.
그렇다면 포워드에서는 불가능합니다. 나는 그 다음에 다른 쪽에서 문제를 해결할 것을 제안 할 것이다. /WEB-INF
폴더에있는 form.jsp
을 "숨기고"서블릿을 사용하여 양식을 가져 오거나 게시하십시오.
의사 :
protected void doGet(request, response) {
request.getRequestDispatcher("/WEB-INF/logged/form.jsp").forward(request, response);
}
protected void doPost(request, response) {
doYourSubmitThingHere();
request.getRequestDispatcher("/WEB-INF/logged/form.jsp").forward(request, response);
}
지도 /logged/form
의 url-pattern
에이 서블릿은 <form method="post" action="/logged/form">
로 <form method="post" action="/servlet">
를 교체하고 당신은 http://example.com/logged/form
하여 호출/사용할 수 있습니다.
페이지 컨트롤러 패턴을 채택하고 요청 경로 (및 JSP 파일 경로)를 얻으려면 HttpServletRequest#getPathInfo()
을 사용하여 한 단계 더 나아가 모든 JSP에 대해 새 서블릿을 비등시킬 필요가 없도록 할 수도 있습니다.
일을 정리하려면 : 하나의 WAR (ROOT) 또는 2 개의 WAR (ROOT 및 기록)가 있습니까? 그리고 어떤 응용 프로그램을 사용하고 있습니까? Tomcat 6? – BalusC
루트/로그가 있습니다 (내 루트 전쟁의 하위 폴더로 기록됨). tomcat6을 사용하여 – Chava
나는 단일 루트 전쟁에서 모든 JSP를 가졌지 만, 일부 jsps tp 하위 폴더를 기록하고 그에 따라 변경했습니다. – Chava