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.这次是真的想不起来了。。。

以上是我个人遇到的部分问题,概括可能不太准确,不过我相信广大的同袍们肯定看得懂,嘿嘿