servlet与jsp的使用

文章目录

    • 一:servlet无法使用的问题
    • 二:右键找不到servlet的问题
    • 三:找不到jsp的页面
    • 四:src目录下的java文件无法直接被servlet导入
    • 五:cataline日志乱码问题:
    • 六,如何直接对servlet进行传参
    • 七:如何存储数组
    • 八:报错http状态500

一:servlet无法使用的问题

我在路径中输入servlet的映射地址,发现出现了500错误

servlet与jsp的使用_第1张图片

然后我观察了Tomcat日志,发现出现Tomcat8.0

servlet与jsp的使用_第2张图片

但是我实际配置的是Tomcat10.0版本

servlet与jsp的使用_第3张图片

我的电脑既有tomcat10,也有Tomcat8,但是我的环境变量配置的是Tomcat10,所以一定是Tomcat部署的时候出现了问题.找到Tomcat部署:

servlet与jsp的使用_第4张图片

发现果然配置出现问题

servlet与jsp的使用_第5张图片

servlet与jsp的使用_第6张图片

改成10就好了

servlet与jsp的使用_第7张图片

servlet与jsp的使用_第8张图片

二:右键找不到servlet的问题

查找CSDN给出了几种方法,第一种是将src改成source文件:

servlet与jsp的使用_第9张图片

当然没什么卵用,右键还是找不到.

servlet与jsp的使用_第10张图片

第二种是找到Modules中的web项目并进行勾选

servlet与jsp的使用_第11张图片

这次成功:

servlet与jsp的使用_第12张图片

我导入servlet-api是通过在项目结构里添加类库的方式

servlet与jsp的使用_第13张图片

servlet与jsp的使用_第14张图片

servlet与jsp的使用_第15张图片

这种方式普遍右键都会找不到servlet

然后我发现视频中学姐是新建lib目录,在lib目录下导入api包:

servlet与jsp的使用_第16张图片

右键成功出现servlet类

上面第一二种方式即使找不到servlet.如果我复制粘贴一个新的servlet进去依然可以使用,不会报红.

三:找不到jsp的页面

servlet与jsp的使用_第17张图片

查找csdn都说的是,将jsp文件创建在了web-inf目录下了,所以无法访问,但是我设置的本来就不在web-inf目录下呢

servlet与jsp的使用_第18张图片

但是可以在浏览器输入网址来进行访问:

servlet与jsp的使用_第19张图片

所以应该不是配置的问题,应该是路径无法连接浏览器

CSDN没有明确的解释,查询日志也没有看懂.

但是,非常幸运的是,此问题在我一系列的操作之下莫名的得到解决.

我的操作是:

1:删掉web.xml文件(其实我觉得这个文件真的很鸡肋,我观看的视频要么用的maven框架,要么用MVC,博客关于xml的配置也是含糊不清)

2:在jsp的文件中加上这样一句话


servlet与jsp的使用_第20张图片

四:src目录下的java文件无法直接被servlet导入

servlet与jsp的使用_第21张图片

servlet与jsp的使用_第22张图片

无法在servlet01中导入Aaa类

解决:将Aaa类移入java包就好了.

五:cataline日志乱码问题:

servlet与jsp的使用_第23张图片

查过CSDN种的第一种方法是修改catalina.sh

servlet与jsp的使用_第24张图片

修改为:

servlet与jsp的使用_第25张图片

但是我的catalina文件长这样:

servlet与jsp的使用_第26张图片

与建议的方法不太相同,所以我觉得应该不是修改catalina.

事实上我不是第一次碰见Tomcat中文乱码,最开始启动汤姆猫的时候,出现了setup的乱码,我记得修改方案是将logging.properties中的UTF-8修改为GBK,所以我觉得应该也是与properties文件有关.

于是查看相应的博文求证,发现确实有这个建议:

servlet与jsp的使用_第27张图片

在conf目录下修改了我的logging文件的所有UTF-8

servlet与jsp的使用_第28张图片

最后查看我的Tomcat日志,修改成功

servlet与jsp的使用_第29张图片

六,如何直接对servlet进行传参

这个我是看学姐的视频学到的,也是我以前的一个疑惑

servlet与jsp的使用_第30张图片

servlet与jsp的使用_第31张图片

servlet与jsp的使用_第32张图片

七:如何存储数组

在用户名登入时,需要寻找匹配的用户名和密码来确定用户是否存在.这就需要二维数组,但是普通的二维数组是静态的,而且无法实现传参

普通数组:

 //二维数组
    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进行增加

servlet与jsp的使用_第33张图片

servlet与jsp的使用_第34张图片

八:报错http状态500

servlet与jsp的使用_第35张图片

不是运行Tomcat就开始报错,idea也没有爆红,所以首先排除代码的格式错误.

servlet与jsp的使用_第36张图片

点击注册页面中的登录出现500报错

servlet与jsp的使用_第37张图片

而我的提交按钮连接的是servlet,所以大概率是servlet的路径出现问题;

servlet与jsp的使用_第38张图片

servlet与jsp的使用_第39张图片

查看本地日志发现:

servlet与jsp的使用_第40张图片

所以是代码的问题,日志中锁定在代码的35行与27行

servlet与jsp的使用_第41张图片

应该是checkLogin类有问题,但是检查了很多遍,依然觉得自己很对

servlet与jsp的使用_第42张图片

(img-DP6Pk140-1627396604711)]

查看本地日志发现:

[外链图片转存中…(img-XAv5OIYF-1627396604711)]

所以是代码的问题,日志中锁定在代码的35行与27行

[外链图片转存中…(img-zcWOidj5-1627396604712)]

应该是checkLogin类有问题,但是检查了很多遍,依然觉得自己很对

[外链图片转存中…(img-KMMsAIsm-1627396604713)]

你可能感兴趣的:(javaweb,tomcat,servlet,web,java)