MVC设计模式
MVC:模型-视图-控制器
分层;
模型:对应组件是JavaBean,实现业务逻辑层,代表应用程序的数据以及用于访问、控制和修改这些数据的业务规则
视图:对应的组件是JSP或者html,负责数据显示
控制器:对应的组件是Servlet ,控制程序流程
优点:
层次关系清晰,各组件分工更加明确
缺点:
增加了编写的复杂度
MVC执行流程:
1、客户端向服务端发送请求
2、服务器把请求分发Servlet控制器
3、Servlet 控制器获取用户输出的数据,并调用JavaBean进行处理
4、Servlet 根据处理的结果选择一个JSP视图来响应客户
5、JSP视图显示处理的数据
JSP分页和上传
上传
1、SmartUpload组件
SmartUpload组件:专门用于实现文件上传及下载的免费组件
特点:
使用简单、能够控制上传内容、文件的大小和类型,但是已经停止更新服务
2、Commons-FileUpload组件
分页
ShowProductServlet
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
List lst = new BaseDao().selectAll();
// 接收分页页面传递过来的页面数
String strNum = request.getParameter(“pageNum”);
int pageNum = 0;// 表示当前要显示的页面数
int maxPage = 0;// 最大页
int pageCount = lst.size();// 得到查询出来的所有数据的总数目
// 如果是第一次执行,就会接收不到数据
if (strNum == null) {
strNum = “0”;
} else {// 接收到了用户点击的第几(pageNum)页
pageNum = Integer.parseInt(strNum);
}
// 计算出要分多少页(每页显示4条信息)
if (pageCount % 4 == 0) {
maxPage = pageCount / 4;
} else {
maxPage = pageCount / 4 + 1;
}
request.setAttribute(“maxPage”, maxPage);// 存储最大页数
request.setAttribute(“pageNum”, pageNum);// 将当前页面存储起来,给分页页面使用
request.setAttribute(“goods”, lst);// 存储要显示的数据
request.getRequestDispatcher("/showProduct.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
showProduct.jsp
产品编号 | 产品名称 | 产品价格 |
${g.id } | ${g.name } | ${g.price } |
[首页] [上一页] [上一页] [下一页] [下一页] [尾页] |