Favicon.ico Request

문제 발생

디스패처 서블릿 예제를 구현하는 도중 home.jsp를 요청하는 GET 요청을 보냈을 때

요청이 2번 들어가서 2번째 요청에서 null pointer Exception이 발생했다.

@WebServlet("/")
public class DispatcherServlet extends HttpServlet {
    private static final Logger logger = LoggerFactory.getLogger(DispatcherServlet.class);

    private RequestMappingHandlerMapping rmhm;

    @Override
    public void init() throws ServletException {
        rmhm = new RequestMappingHandlerMapping();
        rmhm.init();
    }

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        logger.info("Dispatcher Servlet Service started");

        try {
            Controller handler = rmhm.findHandler(request.getRequestURI());
            String viewName = handler.handleRequest(request, response);

            RequestDispatcher requestDispatcher = request.getRequestDispatcher(viewName);
            requestDispatcher.forward(request, response);

        } catch (Exception e) {
            logger.error("exception occurred: [{}]", e.getMessage(), e);
            throw new ServletException(e);
        }
    }
}

 

문제 해결

에러가 발생한 위치를 디버깅 해보니 request가 /favicon.ico로 들어왔다.

찾아보니 favicon.ico 요청을 통해 favicon을 가져온다고 한다. 

유튜브 아이콘 = 파비콘

파비콘 요청을 없애기 위해 jsp 파일 head 태그에 파비콘 링크를 넣어주어 해결하였다.

 <link rel="icon" href="data:;base64,=">