A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 醉迹满青衫 初级黑马   /  2018-4-7 08:06  /  1049 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

web阶段中,我们不在是完全的java代码,而是结合jsp网页,实现了一些简单的具体的网站的功能.代码量也随之增高.有了jsp的加入,控制台报的错误又更加丰富了.感觉web阶段的错误.并不是简单的debug能够解决的.有时更觉得想要debug却无从下手.而且因为配置文件等问题.即使是复制昨天的代码也会因为各种小问题.而现实不出效果.在这里我就分享一些我在web阶段所遇到的控制台报错和可能产生的原因.
首先,页面出现404相信大家都遇到过.错误信息404带表的就是找不到页面.一般这种信息出现的时候当排除你是浏览器的地址路径名写错后.可以看下是表单提交的路径写错了
file:///C:\Users\sjw\AppData\Local\Temp\ksohtml\wpsDB91.tmp.jpg 图片1...
form表单中提交的地址前面加上了/,这样就造成访问的路径是tomcat根目录找myweb1路径,但实际上servlet的网址是tomcat地址加上项目的root名称和myweb1
问题解决方发,去掉form表单中action属性的中的/解决。
页面报错误代码500,这也是个经常出现的错误.
file:///C:\Users\sjw\AppData\Local\Temp\ksohtml\wpsDB92.tmp.jpg 图片2
这类错误往往是复制servlet之后servlet的配置文件没写或者写错了,检查web.xml的该servlet的配置即可.
有一种情况就是写代码逻辑都没错,webdebug也能得到相应的数据,但是页面的数据就是显示不出来.者中情况就要检查在jsp中接收的参数是否是正确的.一般早web层接收jsp中的参数都不会写错.但经常会在jsp中调用往往就会写错.尤其是在双重foreach 循环遍历时的el表达时
<c:forEach var="order" items="${ pageBean.list }">
总金额:${ order.total }
<c:forEach var="orderItem" items="${ order.orderItems }">
<td width="20%">
${ orderItem.product.shop_price }
</td>
<td width="10%">
${ orderItem.count }
</td>
</c:forEach>
</c:forEach>
虽然内层的orderItems是外层的list中的属性但既然外层的var中写的是order内层就应写如上的order.order.Items而不是pageBean.list.orderItems.还有一种查询不到商品信息的情况,servlet里面有集合List<Product>,打印一下集合,结果是null。说明没查询到商品信息集合,那就是service层或者dao层写错了。
发现dao层的代码,query方法查询后,没有对result重新复制,导致return返回的结果为null
可以发现我所举的这几种错误,都是因为少写或者写错而导致.但就是这种问题最让头疼.发现问题原因是因为少写返回值,错也一些东西时也是最为无奈的.所以大家在平时写的时候尽量细心.减少这种问题的出现.

评分

参与人数 2技术分 +3 黑马币 +16 收起 理由
皖哥哥 + 3 + 4 赞一个!
合肥就业部 + 12 赞一个!

查看全部评分

12 个回复

倒序浏览
回复 使用道具 举报
自己的总结的吗?棒!
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
不错哦
回复 使用道具 举报
嗯 很赞
回复 使用道具 举报
回复 使用道具 举报
朱浩 来自手机 黑马粉丝团 2018-5-3 18:02:57
11#
6666666
回复 使用道具 举报
骑着小猪看雪 来自手机 黑马粉丝团 2018-5-4 10:21:42
12#
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马