2012-08-03 5 views
1

간단한 사용자 애플리케이션이 있습니다. 응용 프로그램에서 일반적인 상호 작용을 담당 할 MainController 서블릿이 있습니다. 이 서블릿은 URL 패턴을 "청취"합니다 : /,/index 등 (다른 모든 형태의 색인). 나 또한 UserController 서블릿이 다른 것들 사이에서 로그인을 담당하고 있는데,이 메시지는 /CheckLogin url-pattern에서 "수신 대기"합니다.Java EE 서블릿 서블릿 경로 다시 쓰기

URL이 / 인 JSP로 양식을 제출할 때 서블릿을 /CheckLogin으로 지정합니다. 그런 다음 UserController 서블릿이 처리하고 로그인이 좋거나 틀리면 /으로 리디렉션됩니다 (사용자가 로그인했는지 여부에 따라 표시 할 페이지를 결정하는 것은 MainController입니다).

모든 것은 완벽하게 작동합니다. 처음 제출 한 후 양식 페이지의 URL은 /CheckLogin입니다. 나는 그것을 제거하고 오직 /를 보여주고 싶다. 어떻게해야합니까 (스프링 또는 다른 프레임 워크가 아닌 일반 Java EE)?

답변

2

나는 이것이 당신이 찾고있는 것입니다 있는지 확실하지 않습니다,하지만 당신은 앞으로 대신 을 할 경우, 클라이언트 브라우저에 URL이 업데이트되지 않습니다 리디렉션 : RequestDispatcher#forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse을; 설명은 Forward vs Redirect에서 찾을 수 있습니다.

또한 인증을 서블릿 대신 Filter으로 구현하는 것이 좋습니다. 그런 식으로 필터는 보안이 필요한 URL을 가로 채기 위해 사용될 수 있습니다.

웹 프레임 워크를 사용하지 않는 특별한 이유가 있습니까? 그들은 일반적으로 보안 및 라우팅을 담당합니다.

+0

글쎄, 프레임 워크를 시작하기 전에 좀 더 많은 자바 ee를 배우려고합니다. 현재 요청을 처리하고 있습니다. 그러나 양식에는 CheckLogin이 있습니다. S는 필터에 대해 더 자세히 알기위한 좋은 링크가 있습니까? –

+1

프레임 워크를 사용하지 않으므로 패턴을 사용하면 프레임 워크에 들어가기 전에 좋은 기초를 제공합니다. http://stackoverflow.com/questions/3541077/design-patterns-web-based-applications – davidmontoyago

+1

필터에 대한 추가 정보 : http://docs.oracle.com/javaee/6/tutorial/doc/bnagb.html 다음은 인증을 위해 필터를 사용하는 방법에 대해 설명합니다. http://stackoverflow.com/questions/4984984/authorization-using -filters-in-java-ee 전달 중이라는 말을하고 있는데도 "/ CheckLogin"URL이 브라우저에 계속 나타 납니까? –