servlet与jsp的使用

一:servlet无法使用的问题

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

image-20210726085219344

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

image-20210726085331968

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

image-20210726085553182

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

image-20210726090055041

发现果然配置出现问题

image-20210726090138489

image-20210726090230686

改成10就好了

image-20210726090823777

image-20210726090846135

二:右键找不到servlet的问题

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

img

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

image-20210726094301517

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

image-20210726100053922

这次成功:

image-20210726100400785

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

image-20210726095011879

image-20210726095114703

image-20210726100608249

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

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

image-20210726100823250

右键成功出现servlet类

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

三:找不到jsp的页面

image-20210726105309916

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

image-20210726111002631

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

image-20210726110513558

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

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

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

我的操作是:

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

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

<!DOCTYPE html PUBLIC"-//W3C//DTD.HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

image-20210727155017634

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

image-20210726175738953

image-20210726175838497

无法在servlet01中导入Aaa类

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

五:cataline日志乱码问题:

image-20210727085145874

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

image-20210727090742401

修改为:

image-20210727090814845

但是我的catalina文件长这样:

image-20210727091811927

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

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

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

image-20210727092445059

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

image-20210727092839676

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

image-20210727093027779

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

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

image-20210726102921910

image-20210726102813477

image-20210726103005241

七:如何存储数组

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

普通数组:

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

image-20210727222921119

image-20210727223303554

八:报错http状态500

image-20210727093651851

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

image-20210727094123505

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

image-20210727094401593

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

image-20210727094748404

image-20210727094835506

查看本地日志发现:

image-20210727095748240

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

image-20210727213331540

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

image-20210727213426181

(img-DP6Pk140-1627396604711)]

查看本地日志发现:

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值