前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JSP 报错:ReferenceError: $ is not defined

JSP 报错:ReferenceError: $ is not defined

作者头像
RendaZhang
发布2020-10-26 15:16:13
1.7K0
发布2020-10-26 15:16:13
举报
文章被收录于专栏:Renda

运行 SpringMVC 项目时,JSP 的代码报错:

代码语言:javascript
复制
ReferenceError: $ is not defined

JSP 相关代码如下:

代码语言:javascript
复制
...
<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 文件相关配置如下:

代码语言:javascript
复制
<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 的 default 配置,所以需要在 SpringMVC 文件中进行配置,对静态资源进行放行:

代码语言:javascript
复制
...
<!-- 配置放行静态资源 -->
<mvc:default-servlet-handler/>
...

这样,发出静态资源请求后,然后 DispatcherServlet 会对请求进行映射匹配,如果匹配不成功,就会转交给 tomcat 的 default 进行处理。

如果不使用 SpringMVC 框架,这些静态资源请求都会由 tomcat 的 default 进行处理。

Tomcat 的 default 配置为在请求路径匹配完其他所有 Servlet 还是没有匹配到的情况下,请求会被发到 default,由 DefaultServlet 进行处理;一般请求的静态资源,无效路径等等都会通过 DefaultServlet 进行处理。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Renda 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档