该开始一直按错误去进行查询
看到网上的主要解决方法:
1.注入的数据类型加入注解@Autowired,
2.service层添加注解@Service
3.在controller层,添加注解@RestController 而不是 @Controller
4.并在JSON数据前加上@RequestBody
5.spring-boot包冲突,再pom.xml文件中删除这个包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <scope>compile</scope> </dependency>
针对后面抛出的异常java.lang.NullPointerException
出现的原因就是当一个对象的值为空时,你没有判断为空的情况
解决方式即可以优先使用
String.valueOf()方法代替toString()
当程序代码需要对象的字符串表示形式时,应该避免使用该对象的toString方法。如果你的对象的引用等于null,NullPointerException则会抛出,使用静态String.valueOf方法,该方法不会抛出任何异常并打印"null"
亲测有用,但是并没有解决我们下面的问题。就是存了两个数据,但是读出的只有一个数据。
在以上这些方式检查过之后,发现并没有改变现有的情况。所以开始一步一步调试。发现如下结果:
这里的存储阶段是没有问题的,存储了两个参数
这里日志语句给出map的大小为1,这里是不应该的,因为前面我在session设置时是两个值。
这里调试到这一步 ,就突然跳转到下面了
此时就换了查找思路:去看了
session.setAttribute()和session.getAttribute()的用法。发现也有很多这种情况出现。所以开始针对这样的问题进行修改
尝试1:、如果存在取值问题,取不到session中的值,可能是存值的地方和取值的地方引入的HttpServletRequest不一致。就会出现拿不到值的情况!
但是我们这里存储的位置都是
HttpSession
尝试都修改成HttpServletRequest
未解决!!!
思路三:发现两次的session地址和存值都是正确的,但是map读取时,只读出了一个值
所以开始查询session中为什么map会只读取到一个值??对比了源代码
文章来源地址https://www.toymoban.com/news/detail-716627.html
修改原文件格式之后,成功获取到map的两个值。
总结:刚开始是按照报错开始查询解决方式。但都没有解决我的问题。
然后开始对异常类型,自己所遇到的问题描述,进行了一系列查询。过程如上,也是没有效果。
最后实在是不行了 ,但是从一步一步的调试也大概知道问题是出在了,map无法取出页面上输入的第二个值。所以就开始比对自己所配置的login.html文件,发现此处的loginApi所注入的方式不同。
还是关键:解决问题的操作并不重要,解决问题的这个思路才是最重要的。
PS:虽然解决了这个问题但是为什么就成功了 还是不知道。有没有大佬可以解答一下,两种表达方式有什么区别呢???最开始的问题也是,map中只有一个页面上提交的phone,但是没有另一个值。修改成第二个格式后,客户端提交的两个值都显示了。。文章来源:https://www.toymoban.com/news/detail-716627.html
到了这里,关于ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() --调试发现HttpSession session无法读取数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!