计科web常见错误排错【HTTP状态404、导航栏无法点开、字符乱码及前后端数据传输呈现、jsp填写的数据传到数据库显示null、HTTP状态500】

5 篇文章 0 订阅
2 篇文章 0 订阅

=======web排错记录======

在使用javaweb的过程中会出现的一些错误请在下方目录查找。

目录

错误1:HTTP状态404——未找到

错误2:导航栏下拉菜单无法点开的问题

错误3:字符乱码问题

错误4:jsp网页全部都是???

错误5:修改数据库后网页呈现无变化 

错误6:jsp填写的数据传到数据库显示null

错误7:HTTP状态500-内部服务器错误——javax.servlet.ServletException: Servlet执行抛出一个异常  org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)    filter.EncodeFilter.doFilter(EncodeFilter.java:14)

错误8:HTTP状态500-内部服务器错误——类【???】不是Servlet

错误9:数据库的错误日志Error Code: 1136 - Column count doesn't match value count at row 1

错误10:运行tomcat时java.sql.SQLSyntaxErrorException: Unknown database 'cookieshop'

错误11:jsp进行 增删改查 的改即update时部分数据无法修改,貌似被锁定一般

错误12:QueryRunner报红处理


错误1:HTTP状态404——未找到

点击功能后登录404错误

一般是这里出错,也就是登录login的servlet,文件是UserLoginServlet

 如图,改为这样就行

错误2:导航栏下拉菜单无法点开的问题

如图,点了导航栏,下拉菜单没弹出,好像被什么挡住

经过一番排查,发现是我之前用了一个jQuery图片轮播插件,引入了它需要的css和js,应该是造成了和原来css和js的冲突

然后我再排查了一下,不是js的问题,就是css冲突,才最终造成我的导航栏弹不开,

我将自己引入的jQuerycss文件夹删了导航栏就可以点开了。

错误3:字符乱码问题

如图,现实菜单栏file→setting→Editour→File Encodings,这里箭头所指的三个地方都改一改

然后我发现还无效

于是我发现了一个新地方,就是File→File Properties→File Encoding,点开后有可能我之前选的是GBK,然后我换成了utf-8,然后乱码问题就解决了

错误4:jsp网页全部都是???

等一下,我的是经过了30分钟,然后就自动恢复了

错误5:修改数据库后网页呈现无变化 

如图,我这里写了7个类别,之前本来有8个类别,被我减掉一个,可是网页还是呈现8个类别,我也不清楚怎么回事,重新新建数据库重新导入sql语句后还会是这样,后面好像过了十分钟左右就变过来了,应该是有延迟,如下图,已变为7个类别

错误6:jsp填写的数据传到数据库显示null

如图,jsp随便填写

 然后我点击提交保存,接着查看数据库这边:

 可以看到这里最后一行,数据全部是null

那么我们来开始排除:

第一步排错:

你找到你对应的那个Dao类,用System.out.print()随便打印出几个,发现箭头所指的方向那里为null,换句话说也就是还没传入数据库的时候你这里就是null

第二步排错:这里sql语句要和数据库列名要对应好

 数据库的列名要对应,例如我后来发现我这里的vehicleowner由于之前自己复制粘贴的缘故,少些了一个r,导致它出问题,什么unknown "vehicleowner"什么的,其实就是这里单词没写全

第三步排错【最重要】:

兜兜转转几个小时,才发现是Servlet类那边的数据没有复制过来的问题,即在这里加上这段话就行:也就是下图中try catch那段

 之前参考代码是有这段代码的,中途出了错我就把它注释掉,后来以为没什么用就删掉了,后来复查了几个小时查看原本的资料,才发现最重要的是里面这句

BeanUtils.copyProperties(vehicle, request.getParameterMap());

这句就是把你在jsp填的数据扔到Dao类那边,Dao类是直接面向数据库操作,Dao类会再负责将数据添加进数据库,所以我就缺少了这句代码,导出Dao类一直数据为null,收不到数据

然后发现只用上面这句代码玩不转,还是得外面套上try catch才行,即如下:

try {
            BeanUtils.copyProperties(vehicle, request.getParameterMap());
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

你加这段然后去运行,Dao类那边就有数据,数据库就能正常添加,正确显示数据。

如图,随便写点数据

我的jsp显示登记成功,那么我们去数据库看看

 如图,刚才的数据不再是null,已成功添加进数据库。

错误7:HTTP状态500-内部服务器错误——javax.servlet.ServletException: Servlet执行抛出一个异常  org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
    filter.EncodeFilter.doFilter(EncodeFilter.java:14)

很有可能是总共三个地方名称不对应的问题,哪三个地方?

你要注意你的jsp普通类【就是你生成构造函数啊get和set方法那个】Dao类

如下:

比如你jsp的name=ownername,我之前是name=username,然后我改成name=ownername了,但其他两个地方忘了改,造成了网页状态500

所以说比如我这里jsp的这里写的是name=ownername的话,那么你得检查一下你数据库那里是不是一样也是ownername,要一致

然后比如我的ProblemFeedback.java这里面不要忘了改,一样也要是ownername

get和set方法最好重新弄,保持一致

 ProblemFeedback.java其余地方也改成一样

 最后看Dao类,你看我之前说过我原本是name,然后改成ownername,这里忘记改了还是name,那么这里就会显示白色,你看我改为ownername了后

你看就不是白色了,然后你还是看上面那张图,箭头所指,之前由于你根据新建的String ownername重新生成那个getOwnername()方法,那么你这里也要是getOwnername(),我这里是已经改过来的,之前是getName(),现在改成了getOwnername()。

只要这几个地方能对应,就不会出现HTTP状态500-内部服务器错误

另:

我这几天在写别的还是出现了HTTP状态500的错误,还是根据我上面的方法进行排查,先去查jsp里面的value和name有没有对应,结果还真的是

 就是这里,本来是applicant的,name那里不小心多写了一个r

 我将这个r删掉后网页就正常,数据库也能添加了,所以说多多遇到这种问题,多排查,多练几次就会了。

错误8:HTTP状态500-内部服务器错误——类【???】不是Servlet

解决:有可能你相对应Servlet差了一个extends HttpServlet,如图,补上extends HttpServlet这两个单词就行

错误9:数据库的错误日志Error Code: 1136 - Column count doesn't match value count at row 1

在sql语句编写里,箭头所指这两个地方的数量要一致,如下图,一个指左边的箭头那里写25个,另一个指下面的箭头那里我写了26个,写多出了一个,删掉一个,是两边数量对应就行。

错误10:运行tomcat时java.sql.SQLSyntaxErrorException: Unknown database 'cookieshop'

解决运行tomcat时java.sql.SQLSyntaxErrorException: Unknown database ‘cookieshop‘的问题并快速弹出网页_ZYT_庄彦涛的博客-CSDN博客

错误11:jsp进行 增删改查 的改即update时部分数据无法修改,貌似被锁定一般

检查<input>是不是忘了修改,name和value要保持一致

错误12:QueryRunner报红处理

QueryRunner报红处理-CSDN博客

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZYT_庄彦涛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值