【已解决】项目出现的几个问题

博主在JavaWeb项目中遇到登录和注册功能的问题。登录时浏览器未提示记住密码,而使用不存在的元组登录引发反射错误。注册功能中路径错误导致404,并且在执行PreparedStatement时遇到Connection已关闭的异常。通过调试,发现关闭数据库连接可能导致此问题。此外,尝试注册时还出现序列化异常。解决方案已记录在个人技术笔记中。

背景:

  1. 我用BaseDaoImpl类写了通用的增删改操作,然后使用CustomerDaoImpl类继承BaseDaoImpl类,想要通过这种方式避免相似代码重复书写。
  2. 我用BaseServlet继承于HttpServlet,作为自定义Servlet基类,其他Servlet类均继承于它,实现请求分发,这样不需要针对每个功能都写一个Servlet。

问题:

登录功能

启动项目后,使用数据库已有元组登录没有问题,但是不像以前的项目那样浏览器会询问是否记住密码

如果使用数据库中没有的元组登录,报错:反射目标不对?

java.lang.reflect.InvocationTargetException

注册功能

点击注册后,首先是路径不对:路径变成了👇,明显错误

http://localhost:8080/BankWebMaven_war/CustomerServlet/logregCustomer

我上网查询了一篇关于路径的博文,但是问题没能得到结局,我觉得是我没看懂:

重定向和转发中的路径问题_yinbucheng的博客-优快云博客_重定向路径怎么写

同时,控制台报错:

 java.sql.SQLNonTransientConnectionException: No operations allowed after connection closed.

这条报错经上网查询,原因大概是Connection对象被关闭了,经过手动调试,问题锁定在
在这里插入图片描述

PreparedStatement pstmt=conn.prepareStatement(sql);

这条语句执行不通过,导致报错。于是我删除了注册功能使用到的findAll()方法和addCustomer()方法这两个方法各自的关闭数据库连接语句,发现这条错误不再出现。但是我不明白为什么会出现Connection对象被关闭

之后再次运行项目,又出现新的错误:没有序列化?

java.sql.SQLException: Invalid argument value: java.io.NotSerializableException

我上网查询,这篇提问和我的问题大体一致,网友提供的方案是不要这么写,老老实实针对每个JavaBean都写各自的方法😭

java.sql.SQLException: Invalid argument value: java.io.NotSerializableException |易学教程 (e-learn.cn)

附录:

项目结构

在这里插入图片描述
在这里插入图片描述

已解决

解决方案已记录在Java Web技术笔记内

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值