에러&문제해결

Spring Boot에서 404 (Whitelabel Error Page) 발생 원인과 해결 과정 정리

보배 진 2026. 1. 29. 10:15

 

 

문제 상황

기존에는 로그인 버튼만 있는 화면에서
로그인 기능이 정상적으로 동작하고 있었다.
이후 회원가입 버튼을 추가하였는데,
🍃 로그인: 정상 동작
🍃  회원가입 버튼 클릭: 404 Not Found 에러 발생
즉, 회원가입 페이지로 이동하려는 순간 404 에러 발생

 

 

 

 

 

문제가 발생한 화면 (index.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>표지페이지</title>
</head>
<body>
	<form action="login" method="POST">
		<table border="1">
			<tr>
				<td>아이디</td>
				<td><input type="text" name="mid" required></td>
			</tr>
			<tr>
				<td>비밀번호</td>
				<td><input type="password" name="mpw" required></td>
			</tr>
			<tr>
			    <td colspan="2" style="text-align:center;">
			        <input type="submit" value="로그인">
			
			        <a href="signUp">
			            <button type="button">회원가입</button>
			        </a>
			    </td>
			</tr>
		</table>
	</form>
</body>
</html>

index.jsp는 이런 형식이고

▪ 로그인 버튼 → /login 요청

회원가입 버튼 → /signUp 요청

 

 

 

 

 

에러 내용

Whitelabel Error Page
There was an unexpected error (type=Not Found, status=404)

회원가입 버튼 클릭 시 다음과 같은 에러 발생

 

 

 

 

 

원인 분석

@GetMapping("/index")
@PostMapping("/login")

컨트롤러에 /signUp 요청을 처리하는 메서드가 없었음

당시 컨트롤러에는 다음 매핑만 존재했다.

/index → 로그인 화면

/login → 로그인 처리

 

 

Spring Boot는
요청 URL과 매핑되는 컨트롤러 메서드가 하나도 없으면 404를 반환한다.

👉 JSP 파일(signUp.jsp)이 존재하더라도
👉 컨트롤러 매핑이 없으면 직접 접근 불가

signUp.jsp 있음 ❌
@GetMapping("/signUp") 없음 ❌
→ 결과: 404 에러

 

 

 

 

 

 

해결 방법

@GetMapping("/signUp")
public String signUp() {
    return "signUp";
}

/signUp 요청을 처리하는 메서드 추가

 

동작 흐름

  1. 회원가입 버튼 클릭
  2. /signUp 요청 발생
  3. 컨트롤러가 요청을 받음
  4. signUp.jsp로 View 반환