搭建Javaweb图书管理系统---遇到问题总结
问题1:HTTP状态404 - 未找到
报错信息:
原因:在进行表单提交的时候,路径出现问题:
这里要特别注意,action部分不能有斜杠,同时action和method中不能有空格!!!!
问题2:从数据库中拉取数据进行展示的时候发现都是汉字全部变为“???”
报错信息:从数据库中拉取数据进行展示的时候发现都是???
错误原因: 由于自己的粗心大意,在对post请求方式设置编码方式的时候书写不正确导致出错
错误写法:
正确写法:添加charset
// 设置编码方式, post请求方式,严格按照下面两行进行书写。
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
问题3:HTTP状态 500 - 内部服务器错误
问题描述: 在做到书籍查询servlet&&前端展示的时候, 查询不存在的书籍报500错误,通过F12进行查询,报错信息如下:
错误原因:经过定位发现是BookBiz类中的getByName方法存在问题, 这里存在一个特别容易忽略的安全问题,当要查询的bookName不存在的时候, bookDao.getByName(bookName)返回的是空指针,即book == null, 然后用null调用getTypeId方法肯定要报出空指针异常的错误信息。
解决方式:在bookDao.getByName(bookName)调用之后对book进行判断,如果book不为null,才可以继续下一步的操作即可。这也给自己一个警示,在进行测试的一定要考虑正反面,这样程序的健壮性才会进一步提高。
问题4:无法启动组件[StandardEngine[Catalina].StandardHost[localhost]
错误信息展示:
格式错误,注解后的路径 @WebServlet(“record.let”) 为错误书写
解决方式:把注解的路径改为 @WebServlet(“record.let”)
问题5:数据库表中有值,但是取到确是空???
问题描述: 今天从record表中取借出图书的日期时间,但是发现取出来的确实空???导致后续的程序报错!!!
报错原因: 自己建的record类的rentDate属性名字出现问题,和数据库中的对应不上;
视频教程:https://www.bilibili.com/video/BV1xh41147MZ?p=27&vd_source=9347e8db47a9db0be4bd60d35ae947d8