2017-12-31 12 views
0

나는 어떤 도메인 이름 ABC.com에 생산에 내 응용 프로그램이 있습니다. 내 코드에서 내가 어떤 행동. 대해 getContextPath()

response.sendRedirect(request.getServletContext().getContextPath() + "/time"); 

에에 따라 다른 페이지로 사용자를 리디렉션하고 그러나하여 위는 로컬 호스트로 리디렉션 : 8080 // 시간 을 대신 이것 나는 ABC에 리디렉션 할. COM/시간

내가 어떻게 할 수 있습니까? 내 마음에 오는 간단한 해결책은 내가 생산을 위해 대신

request.getServletContext()를 사용하는 몇 가지 환경 변수를 설정해야한다는 것입니다. 대해 getContextPath()

, 내가 환경 변수 값의 예를 사용합니다 ABC.com

답변

1

당신이 정말로 서버에 도달 할 수있는 아래의 도메인을해야 할 경우, 환경 변수 방법은 서버의 전면에 프록시가 있어도 (예를 들어, 모든 시간을 작동하는 유일한 방법입니다 .. .)

0

응용 프로그램이 해당 도메인에서 작동하는 경우 원하는 도메인에서 작동해야합니다. 현재 로컬 호스트에서 개발 환경을 사용 중일 것입니다. 즉, 서블릿이 localhost:8080에서 작동하고 있으며 그 경로로 전달됩니다. 응용 프로그램을 배포 할 때 제대로 작동해야합니다. 당신이 개발 환경에서 실행하는 경우에도 생산 버전으로 리디렉션해야하는 경우

, 당신은 종류의 구성 변수에 URL을 하드 코어한다. 나는 .conf 파일을 사용하는 것이 더 좋으며, 런타임에 파일을 읽는 것을 선호합니다. 왜냐하면 당신은 그 내용을 즉석에서 변경할 수 있기 때문입니다. 문제가 발생할 수 있습니다

하나 개의 작은 것은 이중 슬래시입니다. 경로 또는 URL은 슬래시로 끝나며 두 번째 경로를 추가 할 필요가 없습니다. 간단히 + "time"을 수행하면됩니다.

관련 문제