2011-05-05 9 views
2

test이라는 이름의 전쟁을 JBoss AS에 배치했습니다.서블릿 컨텍스트 URL

브라우저로 이동하여 URL http://localhost:8080/test을 입력하면 환영 페이지 인 login.jsp 페이지가 나타납니다.

제출 버튼을 누르면 서블릿 이름이 CheckLoginServlet (onSubmit/test/servlet/CheckLoginServlet으로 리디렉션 됨) 호출됩니다. 로그인에 성공하면이 서블릿은 docroot/main/jsp 안에있는 jsp (MFrame.jsp)로 리디렉션됩니다. URL은 http://localhost:8080/main/jsp/MFrame.jsp?sid=13045798560과 같으며 404 오류가 발생합니다.

이유는 url에 컨텍스트 test이 포함되어 있지 않기 때문에 브라우저에 URL을 명시 적으로 수정하면 (이제 URL은 http://localhost:8080/test/main/jsp/MFrame.jsp?sid=13045798560처럼 보임) 페이지가 성공적으로 렌더링됩니다.

내 질문은 컨텍스트 루트이므로 컨텍스트 test이 URL에 들어오지 않는 이유입니다.

+0

에서 (request.getContextPath())

  • 사용 상대 경로가 어떻게 당신이하고있는 리디렉션 URL 컨텍스트를 추가입니다 'MFrame.jsp'로 리다이렉트 하시겠습니까? 코드는 어떻게 생겼습니까? – skaffman

  • 답변

    3

    리디렉션은 웹 서버 친화입니다. 따라서 .sendRedirect("/main/jsp/MFrame.jsp") 인 경우 컨텍스트 경로가 생략됩니다. - req.getRequestDispatcher("/main/jsp/MFrame.jsp").forward(req, res); - 이것은 서버 -를 트리거

    • 사용 앞으로 : 리디렉션은 HTTP의 개념이며, 그들이 브라우저에서 발생하기 때문

      당신은 몇 가지 옵션이 (가 클라이언트 측이라고 리디렉션된다)이다 측면 리디렉션, 그리고 상황에 상대

    • 리디렉션
    +0

    'response.sendRedirect (request.getContextPath() + "/errors/401.html");' – shareef

    관련 문제