我在路径中输入servlet的映射地址,发现出现了500错误
然后我观察了Tomcat日志,发现出现Tomcat8.0
但是我实际配置的是Tomcat10.0版本
我的电脑既有tomcat10,也有Tomcat8,但是我的环境变量配置的是Tomcat10,所以一定是Tomcat部署的时候出现了问题.找到Tomcat部署:
发现果然配置出现问题
改成10就好了
查找CSDN给出了几种方法,第一种是将src改成source文件:
当然没什么卵用,右键还是找不到.
第二种是找到Modules中的web项目并进行勾选
这次成功:
我导入servlet-api是通过在项目结构里添加类库的方式
这种方式普遍右键都会找不到servlet
然后我发现视频中学姐是新建lib目录,在lib目录下导入api包:
右键成功出现servlet类
上面第一二种方式即使找不到servlet.如果我复制粘贴一个新的servlet进去依然可以使用,不会报红.
查找csdn都说的是,将jsp文件创建在了web-inf目录下了,所以无法访问,但是我设置的本来就不在web-inf目录下呢
但是可以在浏览器输入网址来进行访问:
所以应该不是配置的问题,应该是路径无法连接浏览器
CSDN没有明确的解释,查询日志也没有看懂.
但是,非常幸运的是,此问题在我一系列的操作之下莫名的得到解决.
我的操作是:
1:删掉web.xml文件(其实我觉得这个文件真的很鸡肋,我观看的视频要么用的maven框架,要么用MVC,博客关于xml的配置也是含糊不清)
2:在jsp的文件中加上这样一句话
无法在servlet01中导入Aaa类
解决:将Aaa类移入java包就好了.
查过CSDN种的第一种方法是修改catalina.sh
修改为:
但是我的catalina文件长这样:
与建议的方法不太相同,所以我觉得应该不是修改catalina.
事实上我不是第一次碰见Tomcat中文乱码,最开始启动汤姆猫的时候,出现了setup的乱码,我记得修改方案是将logging.properties中的UTF-8修改为GBK,所以我觉得应该也是与properties文件有关.
于是查看相应的博文求证,发现确实有这个建议:
在conf目录下修改了我的logging文件的所有UTF-8
最后查看我的Tomcat日志,修改成功
这个我是看学姐的视频学到的,也是我以前的一个疑惑
在用户名登入时,需要寻找匹配的用户名和密码来确定用户是否存在.这就需要二维数组,但是普通的二维数组是静态的,而且无法实现传参
普通数组:
//二维数组
public static void main(String[] args) {
int[][] arrays = {{1,2},{2,3},{4,7},{9,1},{5,6},{3,2}};
for (int i = 0; i <arrays.length ; i++) {
for (int j = 0; j < arrays[i].length; j++) {//i的长度为2
System.out.print(arrays[i][j]+" ");
}
}
}
我参考了jsp登录界面的博文,发现hashmap可以完美实现:
定义一个hashmap数组:
private Map<String,String> table = new HashMap<String,String>();
流程是:
1:定义一个HashMap数组
2:声明一个HashMap类,返回值为普通类
3:声明一个普通类,普通类中存在我们想要的数据
4:接收用户传进来的参数,与普通类中的数据相比较
5:对于注册页面来说,如果用户名规范,则需要增加一段数据,通过HashMap进行增加
不是运行Tomcat就开始报错,idea也没有爆红,所以首先排除代码的格式错误.
点击注册页面中的登录出现500报错
而我的提交按钮连接的是servlet,所以大概率是servlet的路径出现问题;
查看本地日志发现:
所以是代码的问题,日志中锁定在代码的35行与27行
应该是checkLogin类有问题,但是检查了很多遍,依然觉得自己很对
(img-DP6Pk140-1627396604711)]
查看本地日志发现:
[外链图片转存中…(img-XAv5OIYF-1627396604711)]
所以是代码的问题,日志中锁定在代码的35行与27行
[外链图片转存中…(img-zcWOidj5-1627396604712)]
应该是checkLogin类有问题,但是检查了很多遍,依然觉得自己很对
[外链图片转存中…(img-KMMsAIsm-1627396604713)]