SpringMVC 프로젝트를 실행할 때 JSP 코드는 오류를보고합니다.
ReferenceError: $ is not defined
관련 JSP 코드는 다음과 같습니다.
...
<script src="js/jquery-3.3.1.min.js"></script>
<script>
$("#btn").on("click", function () {
$.ajax({
type: "post",
url: "register",
data: $("form").serialize(),
success: function (data) {
console.log(data);
alert("注册成功");
},
error: function (xhr, type, errorThrown) {
console.log("xhr:" + xhr + " type:" + type + " errorThrown:" + errorThrown);
}
});
});
</script>
...
web.xml 파일 관련 구성은 다음과 같습니다.
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
이는 매핑 경로 구성 DispatcherServlet이 /
기본 구성 tomcat을 덮어 쓸 때 이기 때문에 정적 자원의 릴리스 인 SpringMVC 파일에서 구성해야합니다.
...
<!-- 配置放行静态资源 -->
<mvc:default-servlet-handler/>
...
이런 식으로 정적 자원 요청이 발행 된 후 DispatcherServlet은 요청을 매핑하고 일치시키고, 일치하지 않으면 처리를 위해 기본값 인 tomcat으로 전송됩니다.
SpringMVC 프레임 워크를 사용하지 않는 경우 이러한 정적 리소스 요청은 tomcat 기본값으로 처리됩니다.
Tomcat의 기본 구성은 요청 경로가 다른 모든 서블릿과 일치하거나 일치하지 않을 때 요청이 기본값으로 전송되어 DefaultServlet에 의해 처리됩니다. 일반적으로 요청 된 정적 자원, 유효하지 않은 경로 등은 DefaultServlet을 통해 처리됩니다.
더 알고 싶다면 내 WeChat 공개 계정을 팔로우 해 주셔서 감사합니다 : Renda_Zhang