본문 바로가기
Java/JSP & Servlet

경로 지정 시 같은 도메인에 속하면 도메인은 생략하자

by tokkiC 2022. 8. 3.

아래에 이전 프로젝트로 한 서블릿의 일부분을 가져왔다 맨 아래 줄을 집중해서 보자

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html; charset=utf-8");
		PrintWriter out = response.getWriter();
		
		LocalDateTime now = LocalDateTime.now();
		DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("현재시간 : yyyy/M/d H:m");
		String nowString = now.format(dateTimeFormatter);
		
		out.println("<!DOCTYPE html><head><style>body {height: 100%} a {font-size: 2rem;} p {font-size: 4rem; margin: 12rem 0; text-align: center;}</style></head><body>");
		out.println("<a href=\"http://localhost:8080/aboutme/index.html\">메인화면</a>");

아래의

out.println("<a href=\"http://localhost:8080/aboutme/index.html\">메인화면</a>");

부분에 링크를 도메인과 절대경로를 통해 넣었는데 이 부분에 moons 님이 코드 리뷰를 해주셨다

moons 님 맛있는 리뷰 감사합니다

" 현재시간 노출하기 위한 링크를 도메인과 path를 같이 넣어 잘 구현해주셨습니다.

단, 현업에서 같은 도메인에 있는 페이지는 도메인까지 명시해주지 않습니다.

이유는 실제 해당 프로젝트를 개발하고 서비스 하기 위해서 로컬, 테스트, 실제 서비스 될 서버가 각각 존재하며 각 서버마다 도메인이 다를 수 있습니다.

따라서, 명시적으로 같은 도메인에 속한 페이지는 도메인을 넣지 않습니다.

아래와 같이 절대 경로 또는 상대 경로로 넣어 주는 것을 권장 드립니다. " - moons 님의 리뷰 중 -

// 절대경로 out.println("<a href=\"/aboutme/index.html\">메인화면</a>");
// 상대경로 out.println("<a href=\"index.html\">메인화면</a>");

같은 폴더 안이니 ./  근데 같은 폴더면 ./ 도 안써도 된다고 한다 

tip. 상대 경로 시 같은 폴더를 나타내는 ./ 는 위의 예시처럼 생략해도 된다

즉, 현업에서 같은 도메인의 있는 페이지는 개발 시 여러 서버를 사용하고, 서버별로 도메인이 다를 수 있으므로

괜히 안넣어도 되는 도메인을 명시했다가 서버가 바뀌어 도메인이 바뀌게 되면 문제가 생길 수 있다

그러니 위와 같이 도메인을 뺀 절대 경로나 상대 경로로 써야 한다는 말이다

'Java > JSP & Servlet' 카테고리의 다른 글

변수를 합쳐서 변수명 사용을 아낄 수 있다  (0) 2022.08.03

댓글