아래에 이전 프로젝트로 한 서블릿의 일부분을 가져왔다 맨 아래 줄을 집중해서 보자
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 님이 코드 리뷰를 해주셨다
" 현재시간 노출하기 위한 링크를 도메인과 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 |
---|
댓글