Javaweb项目开发过程中的一些小问题
学习的时间过去了一半,我们开始做简单java项目,在项目开发过程中,我遇到了不少问题,下面是我的一些问题总结:
1.单词别写错 单词别写错 单词别写错
项目开发过程中,问题最多的就是写错单词了,这个问题的表现一般就是控制台会报NullPointerException
一两个字母位置写错了,咱也没注意啊,咋办嘞?这个没办法,测试的时候自然就出来了,根据控制台异常就可以找到相应位置。2.需要上传文件时记住在form表单中加入
enctype
属性,并且在servlet中加入@MultipartConfig
项目开发不可避免会遇到文件上传下载,这时候如果不在form表单中加enctype属性,就会出现InvocationTargetException
,而@MultipartConfig
注解同样也是不可或缺的,不然依然没法上传成功。3.forEach用法问题
在对List对象调用forEach方法时,需要注意,forEach中的方法属于匿名内部类的方法,因此我们没法使用方法外的局部变量,除非该局部变量用final修饰,这时候该变量也不能被改变。
还有需要先对List对象做不为空判断,一旦该List对象是空对象,调用forEach方法就会出现NullPointerException
。4.多表查询问题
多表查询是需要新建一个数据传输对象,找一个主表然后根据表和表之间的关联查询。5.form表单中的action属性中不要带数据,需要带数据用隐藏域传值
6.关闭数据库连接很重要 关闭数据库连接很重要 关闭数据库连接很重要
没关闭会导致连接池溢出,页面无法完成跳转等问题。7.做敏感操作的时候需要询问
嗯,这是小提示8.输入框等等注意写name值
在servlet中拿页面输入的值进行处理,是根据name值取的,别忘了,不然以后改代码改到死,这是小习惯 这是小习惯 这是小习惯。9.额,暂时想不到了,,,诶,有了,页面可能会涉及到对数据的删除等操作,这时候最好使用a标签通过href跳转,不要用button通过隐藏域传值,唉,我说不清楚,还是上代码吧:::
1.隐藏域传值,最后会使每次删除的都是表中的第一条数据,是不可取的
<form action="user" method="post">
<input type="hidden" name="method" value="delete">
<table class="table table-striped table-hover">
<tr>
<th>序号</th>
<th>用户名</th>
<th>操作</th>
</tr>
<c:forEach items="${list }" var="u" varStatus="stat">
<tr>
<td>${stat.count }</td>
<td>${u.username }</td>
<td>
<a href="#">详情</a>
<input type="hidden" name="uid" value="${u.uid }">
<button type="submit" class="btn btn-link">删除</button>
</td>
</tr>
</c:forEach>
</table>
</form>
2.a标签直接通过链接地址进入
<table class="table table-striped table-hover">
<tr>
<th>序号</th>
<th>用户名</th>
<th>操作</th>
</tr>
<c:forEach items="${list }" var="u" varStatus="stat">
<tr>
<td>${stat.count }</td>
<td>${u.username }</td>
<td>
<a href="#">详情</a>
<a herf="user?method=delete&uid=${u.uid }">删除</a>
</td>
</tr>
</c:forEach>
</table>
10.这次是真的想不起来了。。。
以上是我个人遇到的部分问题,概括可能不太准确,不过我相信广大的同袍们肯定看得懂,嘿嘿