[Ajax] Failed to load resource: the server responded with a status of 404 () 오류

JSP에서 Ajax를 사용해야 할 때 가끔 Failed to load resource: the server responded with a status of 404 () 오류가 뜬다. 인터넷 검색하면 대부분 url 문제라고 하는데 내 servlet 페이지 url은 아무 문제가 없으면 문제를 어떻게 해결해야 하는지 감이 안 잡힌다. 그럴 때는 web.xml을 설정해보자. annotation으로 url mapping하다가 web.xml로 servlet 정보를 설정하니 문제 없이 해결된다.

아래는 설정한 xml 파일

  • servlet-name은 alias
  • servlet-class는 실제 class 이름(package.class 형식)
  • url-pattern은 클라이언트가 요청할 url
  • servlet-name들은 일치해야한다!
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  version="4.0"
  metadata-complete="true">
        <servlet>
                <servlet-name>example</servlet-name>
                <servlet-class>project.Example</servlet-class>
        </servlet>
        <servlet-mapping>
                <servlet-name>example</servlet-name>
                <url-pattern>/Example</url-pattern>
        </servlet-mapping>
        <servlet>
                <servlet-name>example2</servlet-name>
                <servlet-class>project.Example2</servlet-class>
        </servlet>
        <servlet-mapping>
                <servlet-name>example2</servlet-name>
                <url-pattern>/Example2</url-pattern>
        </servlet-mapping>
 </web-app>