增删改查

  1. 1. 前台
  2. 2. 后台
  3. 3. 传输数据时记得一定要设置
  4. 4. 遗留问题
  5. 5. 分页
  6. 6. 一个数据传输错误的隐藏抛出
  7. 7. 页码显示
  8. 8. el分界

前台

不需要权限检查就可以访问的资源,功能都必须进行的功能

后台

后台是给管理员使用的一般都需要权限检查才可以访问到的页面和功能

传输数据时记得一定要设置

1
2
req.setCharacterEncoding("UTF-8");//一定要设置字符集
resp.setContentType("text/html,charset=utf-8");

遗留问题

id不规范

分页

pageNo 当前页码
pageTotal 总页码
pageTotalCount 总记录数
pageSize 每页显示总量
item 当前页数据

pageNo 当前页码显示时由客户端进行传输
pageSize 每页的显示数量由两种因素决定
pageTotaiCount 总记录数可以由sql语句球的
sql语句时:select count() form 表名
items是当前页数,也可以由sql语句求得
sql语句是:select * from 表名 limit begin ,pageSize
begin可以由公式求得 (pageNo-1)pageSize;
假设,当前是第一页,每页四条记录则begin=(1-1)
4 得0
假设,当前是第二页,每页四条记录则begin=(2-1)
4 得4
假设,当前是第三页,每页四条记录则begin=(3-1)*4 得8

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//web层
public void page{
//处理分页
1.获取请求的参数pageNo和pageSize
2.调用ByueService.page(pageNo,pageSize):Page对象
3.保存到request域中
4.转发到页面
}
//service层
public Page page(pageNo,pageSize){
//处理分页业务
求三个属性即可
总记录数,总页码,当前页数据
总记录数:select count(*) form 表名
总页码:总记录除页码
当前页数据:select * from表面 limit begin, pageSize
}
//dao层
ByueDap
querForPageTotalCount()总记录数
select count(*) from 表名
querForltems()求当前页数据
select * from 表名 limit begin ,pageSize ;

一个数据传输错误的隐藏抛出

1
2
3
4
5
6
7
8
public static int parseInt(String strIng,int defaultValue){
try {
return Integer.parseInt(strIng);//不能将默认值放入这里
}catch (NumberFormatException e){
// e.printStackTrace();这个异常抛出的问题代解决
}
return defaultValue;
}

页码显示

多显示一页的bug尚未得到有效解决,在第二轮时寻求更改办法

通过debug方法寻找到bug问题,发现是求余时变量应用错误,已经修改

在修改分页数目时遇到数据量不足仍然会,数组越界

已经解决 在前端加了个1

el分界

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<div>
<a href="pages/addbyue.jsp?method=add&pageNo=${requestScope.page.pageTotal}">添加</a>
<c:if test="${requestScope.page.pageNo > 1}">
<a href="byueServlet?action=page&pageNo=1">首页</a>
<a href="byueServlet?action=page&pageNo=${requestScope.page.pageNo-1}">上一页</a>
</c:if>

<%--页码输出的开始--%>
<c:choose>
<%--情况1:如果总页码小于等于5的情况,页码的范围是:1-总页码--%>
<c:when test="${ requestScope.page.pageTotal <= 5 }">
<c:set var="begin" value="1"/>
<c:set var="end" value="${requestScope.page.pageTotal}"/>
</c:when>
<%--情况2:总页码大于5的情况--%>
<c:when test="${requestScope.page.pageTotal > 5}">
<c:choose>
<%--小情况1:当前页码为前面3个:1,2,3的情况,页码范围是:1-5.--%>
<c:when test="${requestScope.page.pageNo <= 3}">
<c:set var="begin" value="1"/>
<c:set var="end" value="5"/>
</c:when>
<%--小情况2:当前页码为最后3个,8,9,10,页码范围是:总页码减4 - 总页码--%>
<c:when test="${requestScope.page.pageNo > requestScope.page.pageTotal-3}">
<c:set var="begin" value="${requestScope.page.pageTotal-4}"/>
<c:set var="end" value="${requestScope.page.pageTotal}"/>
</c:when>
<%--小情况3:4,5,6,7,页码范围是:当前页码减2 - 当前页码加2--%>
<c:otherwise>
<c:set var="begin" value="${requestScope.page.pageNo-2}"/>
<c:set var="end" value="${requestScope.page.pageNo+2}"/>
</c:otherwise>
</c:choose>
</c:when>
</c:choose>

<c:forEach begin="${begin}" end="${end}" var="i">
<c:if test="${i == requestScope.page.pageNo}">
【${i}】
</c:if>
<c:if test="${i != requestScope.page.pageNo}">
<a href="byueServlet?action=page&pageNo=${i}">${i}</a>
</c:if>
</c:forEach>
<%--页码输出的结束--%>

<c:if test="${requestScope.page.pageNo < requestScope.page.pageTotal}">
<a href="byueServlet?action=page&pageNo=${requestScope.page.pageNo+1}">下一页</a>
<a href="byueServlet?action=page&pageNo=${requestScope.page.pageTotal}">末页</a>
</c:if>
共${requestScope.page.pageTotal}页,${requestScope.page.pageTotalCount}条记录
跳转到第<input value="1" name="pn" id="pn_input" style="width:15px ;background-color: transparent">页
<input id="searchpageBtn" type="button" value="确定">

</div>