第一次小项目有感-contact

Posted okane

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一次小项目有感-contact相关的知识,希望对你有一定的参考价值。

其实也不算是第一次了,以出来之后为准吧.

项目要点包括联系人的CRUD,分页功能和带分页的查询.

技术图片

 

 

 1.CRUD

jsp页面表单提交数据,再跳转到controller,servlet负责接受数据,将其整理,打包发送给service,并把数据放到请求域上.service的接口创建抽象方法,由实现类去实现操作.实现类的操作包括获得SqlSession和dao对象,然后调用dao的方法,或将其返回值保存到实体类对象中.最后就是编写dao的sql语句了.项目启动后jsp就可以通过EL从后台获取动态的数据了.(有些实体类中的数据需要自己set,哪里可以拿到就在哪里set)

注意点:

1) ${pageContext.request.contextPath}表示该项目的虚拟路径,可以在项目跳转时加上这个把路径写死.

2)  可以在servlet中添加一个参数,用switch做分支,从而实现一个servlet有多个功能

3)  jsp里的动态数据遍历需要用到jstl的<c:foreach>

2.分页(难点)

首先,分页要实现的功能如下:

技术图片

 

 

 

我们需要新建一个分页的对象来管理这些数据,对象的属性有:1当前页数,2总数据量,3总页数,4当前页的数据量(默认为5),5当前页的数据(list集合,泛型为T,要从数据库中提取).

除此之外,我们还得提供一个方法,获得当前页第一个数据的索引(比如说每页5条的话,第一页的起始数据索引为0,二页为5.),获得方式为当前页数减去1之后乘当前页的数据量,获得当前页获得总页数的get方法也需要变一下.

回到查询显示的servlet,需要改变一下了,从jsp接到当前页和总页数之后做一点处理,然后set进分页对象中.请求域中的数据也要变成分页对象了.service/dao中的形式参数都得改变一下,(这里service还得再添加一个查询当前条件的总数据量的方法,以便于存到分页对象中),dao的SQL语句也要变成limit当前页第一个数据的索引和当前页的数据量最后来到jsp,动态数据和跳转的href都用分页对象的EL填充.这里要用到js,到了极页(首末)之后href变成#,再加个disabled属性.每页几条和跳到第几页这两个需要带上当前页数和当前页数数据量两个参数进行跳转页面,因为这两者相辅向依,一个变了另一个也得变.

注意点:

暂无

3.带分页的查询

要实现的功能如下

技术图片

 

 

 因为又得多提交几个参数了,所以我们得把查询的servlet再改一下.创建姓名/最小年龄/最大年龄的参数,将他们和分页对象存到一个Map集合里,再将他们分别存到请求域,转发到jsp(ps:这里才提到转发,不好意思).随后,改变相关方法里的形参.到了dao,因为得模糊查询了,所以要写动态SQL语句,查询的sql和算当前条件的总数据量的sql就得在xml映射文件里写了,(因为对象和关系的字段完全一样,所以用resultType即可)然后有三个条件:姓名/最小/最大分别为null和空字符串的情况(这里可能会有重复的代码,可以用到sql和include标签),最后jsp,改变value.

4.小结和感受

1) 细心,复制粘贴比手写好

2) 代码编写流程为:jsp-->servlet-->service-->dao

3)filter过滤器,request.setCharacterEncoding("utf-8");

4) 隐藏域的使用,比如在更新的jsp里加id的隐藏域,在模糊查询里加上当前页数数据量的隐藏域.

 

可能会有更新,未完待续~~~~~

 

以上是关于第一次小项目有感-contact的主要内容,如果未能解决你的问题,请参考以下文章

项目企业信息图谱分析有感——数据分析

获小黄衫有感

有感

给个理由走下去——读《我是一只IT小小鸟》有感

第一次接触稍大一点的项目有感——规范

2019-09-25,有感