背景:
- 我用BaseDaoImpl类写了通用的增删改操作,然后使用CustomerDaoImpl类继承BaseDaoImpl类,想要通过这种方式避免相似代码重复书写。
- 我用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技术笔记内
博主在JavaWeb项目中遇到登录和注册功能的问题。登录时浏览器未提示记住密码,而使用不存在的元组登录引发反射错误。注册功能中路径错误导致404,并且在执行PreparedStatement时遇到Connection已关闭的异常。通过调试,发现关闭数据库连接可能导致此问题。此外,尝试注册时还出现序列化异常。解决方案已记录在个人技术笔记中。

被折叠的 条评论
为什么被折叠?



