//web项目学习笔记
学习到servlet的跳转功能,因此写了一个登录界面的jsp,和一个验证用户名、密码的servelet
最开始出现的问题是
1.问题A:servlet找不到映射路径
解决:检查、更改配置映射路径的书写方式
当时我用的是tomcat10和jdk13
我使用注解@WebServlet给这个验证跳转的servlet配置映射路径
但是出现了servlet映射路径不存在找不到的错误
于是我猜测是这个注解没有写对或者没有生效之类的问题,当然我也不知道具体是哪里出的错,于是我尝试在web.xml里手动写上了映射路径
2.问题B:servlet无法实例化
解决:更换了tomcat的版本
更改了映射路径的配置方式后,错误不再是404了(说明这个xml配置方式生效了?),但是仍然没有成功跳转,此时出现的错误是:无法实例化servlet。
于是我开始各种面向百度编程,由于我的知识面太窄,基础打得不够,所以看到网上那些相关技术的文章也是一头雾水,我简单地总结了一下,比较可能的原因是因为我使用的是tomcat10的版本,可能和某些东西M(网上提到了另外一个技术点的名字,但是我还没有学到,因此先略过)有冲突。
所以我重新下载了tomcat9的版本,并且重新配置了服务器。
之后真的可以顺利跳转了(用的是注解的方式配置servlet的映射路径)。
3.问题C:只有一部分参数传过去
解决:检查jsp里标签后面参数书写的格式,要在每一个参数后面加空格!
可以成功跳转之后我发现页面一直只跳到登录失败的界面,不跳到登录成功的界面(无论我输入的用户名、密码是正确与否)
由于我的表单没有做非空验证(以及其他的浏览器验证),所以我怀疑是因为传过去的参数可能是空的,所以导致一直跳到登录失败的界面。
我再F12查看后台信息,发现最下面的参数里只有用户名而没有密码,所以可以断定是密码的参数没有传过去了。【懂得看后台很重要!】
我再跳回去查看jsp页面源码,发现在密码这个input标签里面,name这个参数前面没有空格,我加了空格之后再试验,成功了。
终于TM的解决了。