2022 01 30 - oneso123456789/2022 GitHub Wiki

other

404์—๋Ÿฌ ํŽ˜์ด์ง€

WAS์˜ ๊ตฌ๋™ ์ค‘ ๊ฐ€์žฅ ํ”ํ•œ ์—๋Ÿฌ์™€ ๊ด€๋ จ HTTP ์ƒํƒœ ์ฝ”๋“œ๋Š” 404&500 ์—๋Ÿฌ์ฝ”๋“œ์ž„ 500 ๋ฉ”์‹œ์ง€๋Š” Internal Server Error์ด๋ฏ€๋กœ @ExceptionHandler๋ฅผ
์ด์šฉํ•ด์„œ ์ฒ˜๋ฆฌ๋˜์ง€๋งŒ, ์ž˜๋ชป๋œ URL์„ ํ˜ธ์ถœํ•  ๋•Œ ๋ณด์ด๋Š” 404 ์—๋Ÿฌ ๋ฉ”์‹œ์ง€์˜ ๊ฒฝ์šฐ ์กฐ๊ธˆ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ
ํ•˜๋Š”๊ฒƒ์ด ์ข‹์Œ
์„œ๋ธ”๋ฆฟ์ด๋‚˜ JSP๋ฅผ ์ด์šฉํ–ˆ๋˜ ๊ฐœ๋ฐœ ์‹œ์—๋Š” web.xml์„ ์ด์šฉํ•ด์„œ ๋ณ„๋„์˜ ์—๋Ÿฌ
ํŽ˜์ด์ง€๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ
์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ ์ถ”๊ฐ€์ ์ธ ์ž‘์—…์„ ํ•˜๊ธฐ๋Š” ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ์Šคํ”„๋ง์„ ์ด์šฉํ•ด์„œ
404์™€ ๊ฐ™์ด WAS ๋‚ด๋ถ€์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์„ ์•Œ์•„๋‘๋Š” ๊ฒƒ์ด ์ข‹์Œ

์Šคํ”„๋ง MVC์˜ ๋ชจ๋“  ์š”์ฒญ์€ DispatcherServlet์„ ์ด์šฉํ•ด์„œ ์ฒ˜๋ฆฌ๋˜๋ฏ€๋กœ
404 ์—๋Ÿฌ๋„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก web.xml์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

web.xml ์ˆ˜์ •

web.xml์˜ servlet์„ค์ • ์•„๋ž˜์— init-paramํƒœ๊ทธ๋กœ

            <param-name>throwExceptionIfNoHandlerFound</param-name>
            <param-value>true</param-value>

๋‚ด์šฉ ์ถ”๊ฐ€ํ•จ

CommonExceptionAdvice ํด๋ž˜์Šค ๋‚ด์šฉ์ถ”๊ฐ€

ํผ๋ธ”๋ฆญํ˜• handler404()๋ฉ”์„œ๋“œ ์ƒ์„ฑ ๋ฆฌํ„ด ํƒ€์ž…์€ String ํŒŒ๋ผ๋ฏธํ„ฐ๋Š”
NoHandlerFoundExcetpion์œผ๋กœ ๋งŒ๋“ฌ @ExceptionHandler์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ NoHandlerFoundException.class์ง€์ •
@ResponseStatus์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ HttpStatus.NOT_FOUND์†์„ฑ ์‚ฌ์šฉํ•ด์„œ
HTTP์˜ ์ƒํƒœ๋ฅผ NOT_FOUND ์ƒํƒœ๋กœ ๋ฐ”๊ฟ”์คŒ
๋ฆฌํ„ด ๊ฐ’์€ "custom404"๋‹ˆ๊นŒ custom404.jspํŽ˜์ด์ง€ ์ƒ์„ฑํ•ด์คŒ

custom404.jsp ์ƒ์„ฑ

ํƒœ๊ทธ ์ˆ˜์ •ํ•˜๊ณ  UTF-8๋กœ ์ธ์ฝ”๋”ฉ ํ•ด์ค€ํ›„ ๋ณด๋””์— h1ํƒœ๊ทธ๋กœ ํ•ด๋‹น URL์€ ์กด์žฌ
ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ๋„ฃ์–ด์คŒ

โš ๏ธ **GitHub.com Fallback** โš ๏ธ