黑马程序员技术交流社区
标题: web阶段总结 [打印本页]
作者: 醉迹满青衫 时间: 2018-4-7 08:06
标题: web阶段总结
在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的配置即可.
有一种情况就是写代码逻辑都没错,在web层debug也能得到相应的数据,但是页面的数据就是显示不出来.者中情况就要检查在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。
可以发现我所举的这几种错误,都是因为少写或者写错而导致.但就是这种问题最让头疼.发现问题原因是因为少写返回值,错也一些东西时也是最为无奈的.所以大家在平时写的时候尽量细心.减少这种问题的出现.
作者: tom19970323 时间: 2018-4-7 12:10
作者: 小皖妹妹 时间: 2018-5-3 15:20
自己的总结的吗?棒!
作者: 奥斯托洛夫斯基 时间: 2018-5-3 15:48
作者: 项老师 时间: 2018-5-3 15:50
作者: O-limin 时间: 2018-5-3 15:50
作者: hguilin 时间: 2018-5-3 15:51
作者: 美美就是美 时间: 2018-5-3 16:03
不错哦
作者: 皖哥哥 时间: 2018-5-3 17:59
嗯 很赞
作者: 黑马啸西风 时间: 2018-5-3 17:59
作者: 朱浩 时间: 2018-5-3 18:02
6666666
作者: 骑着小猪看雪 时间: 2018-5-4 10:21
赞
作者: 鸟语花香 时间: 2018-5-4 11:09
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |