1、说在最前面,也是我挣扎了最长时间的小问题,就是每次修改配置后,虽然console端一直在跳动,但并不是更新了页面!每次我修改了配置后都以为,动态项目嘛,肯定会自动刷新的,但我挣扎了很久,发现无论怎么修改代码都无法从http://localhost/ch9/中点击“登录”或者“注册”后正常跳转到http://localhost/ch9/login或者http://localhost/ch9/Register,而是直接跳转到了http://localhost/Register,跳过了ch9这个目录。但是手动输入http://localhost/ch9/login是正常的login.jsp的页面,说明/login是可以被解析成login.jsp的,因此springmvc的配置是没有问题的,只是路径的问题。
后来我理解了${pageContext.request.contextPath}代码的含义,就是是JSP取得绝对路径的方法,我的程序根据网上的代码而改动了,所以没有这一句(至于为什么改动,也是刚开始有别的小问题,但是没有重新发布tomcat)。
后来吃透了每句代码的含义,也发现不了问题在哪!尝试了网上很多种方法,也无济于事(心情像PeeledPotato)。。最后我终于发现了,无论怎么改都没用,是不是tomcat的问题,就尝试重启,终于成功了!
2、参考的视频和文章(只放了跟着修改了的部分,对我参考学习价值比较多的):
https://www.bilibili.com/video/BV1yt411h7nZ?p=7&vd_source=af888e4b9fbc70c4d5e7a445796ae8a1(关键词是eclipse和springmvc,讲的很详细)
https://blog.csdn.net/qq_38234015/article/details/107962149(eclipse中创建springmvc项目,跟书上的很像)
https://blog.csdn.net/weixin_43802688/article/details/89532658(${pageContext.request.contextPath}的理解)
https://blog.csdn.net/qq_35091353/article/details/115256050(也是eclipse搭建springmvc)
https://blog.csdn.net/gyjhgyt/article/details/104945575(怎么在包里建包)
https://blog.csdn.net/qq_45344586/article/details/123976839(eclipse中配置tomcat)
https://blog.csdn.net/qq_59055443/article/details/125124326(解决tomcat无法发布项目的问题,刚打开eclipse就出现了这个问题,早就暗示我问题出在tomcat上了。。)
3、基于注解的MVC:
https://blog.csdn.net/lilinsqq/article/details/78909619(request和session的区别)
https://blog.csdn.net/syc000666/article/details/95052629(解决“通配符的匹配很全面, 但无法找到元素 ‘context:component-scan‘ 的声明“ 问题,就是命名空间的依赖声明不完整,照着复制粘贴就行了)
https://blog.csdn.net/qq_35729592/article/details/72764626(与第一个链接结合理解session.getAttribute()和request.getAttribute(),其实都是定义一个变量的值,但周期范围不同)
https://www.bilibili.com/video/BV1yt411h7nZ?p=32&vd_source=af888e4b9fbc70c4d5e7a445796ae8a1(理解注解MVC的原理,怎么写注解,注解的几个常用属性-params、method等,@RequestMapping放到类上和方法上的区别,request、post、restful、put等请求类型,不同返回值的区别)
4、https://www.bilibili.com/video/BV1yt411h7nZ?p=32&vd_source=af888e4b9fbc70c4d5e7a445796ae8a1(这真是这次作业对我帮助最大的视频了,讲的通俗易懂又全面,一直看到了p40才解决apple的问题)
因为不会实现javaconfig的配置到servlet的映射,发现注解类注入的xml格式跟springmvc注解的xml格式相同,所以用了注解类的三层模式。(刚开始直接复制了之前的apple,稍作修改,才发现复制过来的是没有注解的javaconfig配置的apple代码,一直报错Service中应该至少有一个Bean,给我懵的,不知道究竟错在哪了,一心想着学springmvc结果把之前学的混淆了!最后复习了之前学的内容才发现的,而且还有setServiceDao也没删)
这题只需要返回一个apple对象,在Controller层中再通过servlet中的<mvc:annotation-driven/>配置将对象转换为json格式(注意这里导入的包不仅有springmvc用到的,还有注解类用到的和json相关的包)
由于不需要跳转,就用不到视图,可以不写视图解析器。返回值是String类型只能跳转到某个地址,返回值是ModelAndView类型可以处理数据和跳转地址,我们要返回的是一个对象类型。(刚开始一直返回的是ModelAndView类型,总是报错)
https://www.cnblogs.com/softidea/p/8513780.html(看了这个文章,了解了ModelAndView中带的参数是视图名称,不能和url等重复)
https://blog.csdn.net/qq_42822993/article/details/120311082(理解ajax)
https://blog.csdn.net/originations/article/details/89492884(理解@ResponseBody,也可以跟@ResourceMapping一起写成@RestResourceMapping)
https://blog.csdn.net/u012601647/article/details/102684854(本来运行一直显示不出结果,不知道是哪里错了,怀疑是三层结构和servlet之间也有映射,参考了一下,才想起来Service层和dao层也应该有注解,最后主要还是参考的b站那个p40的视频)
https://blog.csdn.net/weixin_45650003/article/details/121623824(最后了解了一下SSM框架,原来就是将mybatis,springboot,springmvc结合,也是三层结构,浅浅的了解了一下)
最后就是index.jsp里面,刚开始只写了${apple.price}之类的,后来想想,都没有写/apple,怎么识别"/"命令,怎么交给服务器呢,还是得跳转,但不是跳转到某个已经写好的jsp文件中,而是跳转到处理的页面/apple,所以还是得写<a href="${pageContext.request.contextPath}/apple">。
标签:应用,springmvc,blog,csdn,details,https,article,net From: https://www.cnblogs.com/caileilei/p/17762156.html