开发步骤:
创建表——>创建表对应的实体类User——>创建web工程——>
导入jar包——>创建JDBC工具类——>Dao层——>Service层——>
Servlet层——>导入写好的页面
疑问:如果先写Dao层,没有servlet层提供的需求,怎么知道需要dao层如何去调用数据库
一、BaseServlet
前端向后台可以传递方法名,后台通过java反射机制将获取到的String字符串调用方法
//获取当前类的Class对象
①Class testclass=this.getClass();
//获取方法对象
②Method method = methodclass.getDeclaredMethod(methodName, HttpServletRequest.class,HttpServletResponse.class);
③method.invoke(this,request,response);//用于调用方法
method.setAccessible(true);用来修改访问方法的权限,如果不设置,只允许访问public修饰的方法
二、表单回显
是通过传回方法名并携带参数,在后台查询数据库再将数据传回另一张页面
在添加或者修改页面提交数据的时候尽量避免转发
三、后台分页
1.将初始当前页面号和页面大小初始化设定在BaseServlet中,设为protected,因为其子类Servlet需要访问;
2.声明一个类存放有List<T>数据、当前页码、页面允许显示的数据量(可以通过计算得索引以及总页数);
3.在service层相应的select方法中需要先将总记录数先计算出来,再去取数据放在List中;
四、前端分页
1.如果数据总页数过多时,需要限制显示页码---------------->>需要动态设置c:forEach中的begin和end
①如果总页数小于等于限制页码:全部显示;
②如果当前页码小于等于限制页码/2+1;
③pageNum-2 ~pageNum+2 要进行一次判断,如果pageNum+2>end需要将end设置为最大页码