博主目前在读大学,初次接触一些框架的东西。写这篇博客记录一下接触Spring的一些坑。
博主我最近在开始看Spring in action 一书,前面四章都非常基础所以过得很快。
虽然自问自己之前也接触过一丢丢web相关的内容,但是到了第五章进入了SpringMVC的章节,就开始有点难顶了。
好了现在正式开始记录踩到的坑。
书本上是利用注解来注入bean写第一个springmvc的小demo
1.这是第一个困扰我的难题!!! 利用IDEA自动生成Spring项目,对照这书本上的代码打了一个小小的demo
运行起来确报一堆错!
类似出现了这么多的问题,这里引用一下别人的错误,因为我已经调通了不想再重现一下这个问题
原帖子链接:https://blog.csdn.net/engerla/article/details/89174433
百度了一下这个错误,基本上让我摸不着头脑:一部分是自己拼写的错误,一部分就贴了一个错误就莫得了。我也没有认真的看stack overflow上有没有相关问题。
这个问题着实困扰了我很多天,但是突然我看到我的日志说:…DispatcherServlet 什么什么错误…
根据书上的介绍,我跟着写的一个类就是相当于配置DispatcherServlet。然后机缘巧合之下我点开了idea创建的web.xml,惊讶地看到又有一个DispatcherServlet。我陷入了沉思,如果我把这段东西注释了会怎么样?
神奇的事情发生了!程序就这样跑通了2333333,原来就是程序里面有多个servlet然后就自然而然地不行了。
虽然跑通了,但是弹出的页面竟然是404
这就很气了,我寻思我的汤姆猫应该没有配置错吧,访问的路径也ok啊,但是为什么就是404呢。
2.写了一下index.jsp,把服务器打开之后能够访问到相对应的index.jsp,但是呢我想要访问的页面却没有访问得到。
这就很烦了,所以我跑去著名的学习网站 某hub (×) 霹雳霹雳(√),找了一个springmvc的视频来看看,但是他用的是根据xml的方式注入bean的,但是我的web.xml被我删了!! 折腾了有点久才把web.xml给搞回来。我不服气,希望能够在网上找到和我一样跟着spring in action来慢慢敲代码写demo的例子来看一下,但是别人的都是直接贴代码,贴运行结果却没有任何的解释或者自己是怎么做的。所以只能跟着b站的视频用xml的方式来注入dispatcherservlet,一个一个代码地敲。结果还是404。为什么会这样呢??????
我再一次审视自己的汤姆猫配置
所以一开始访问localhost:8080/…_WAR_EXPLODE/index(记不得太清了)可以访问的到,但是我想访问我写的home页面却访问不了。
经过我一系列操作之后(大概就是把上面的application context换成我想要的名字,然后再在server里面配置url,再把启动项里面一些冗余的删掉) 就可以访问得到我写的home.jsp了,大概是因为我的web.xml里面的映射设置为了“/”,还是需要小心啊!
下面附上这个demo的代码:
先附上公共的部分 home.jsp 和 index.jsp
index.jsp
<%@ taglib prefix="c" uri="http://www.springframework.org/tags" %>
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/12/6
Time: 17:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>hello</h1>
<a href="home">hi</a>
</body>
</html>
home .jsp
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/12/6
Time: 20:07
To change this template use File | Settings | File Templates.