旅游网站(分页展示)

旅游网站(分页展示)
因为页面的导航条不是真正的数据,是我们加上去的静态数据,所以我们需要通过访问数据库来抽取出实施的数据,具体逻辑如上图所示,十分简单
旅游网站(分页展示)

这个是DaoImpl的编写,JDBCUtils是我们自己写的,就是连接数据库
查询步骤和前面所说差不多,不赘言
旅游网站(分页展示)
然后Service 调用DaoImpl的findAll方法并返回查到的信息,之后被servlet调用

旅游网站(分页展示)
这里先对序列化json(因为重复率很高) 进行了封装 到baseServlet类中,之后直接调用即可,这里没有response也是直接传入参数即可
还写了一个AsString方法,是直接返回给调用者的
旅游网站(分页展示)

————————————————————————————————————————
旅游网站(分页展示)
这是页面加载后取数据的过程,首先向对应路径发请求,得到data信息后,进行信息的注入。这里的方法是var一个lis变量(因为首页和排行榜认为是不变的),然后根据查询到的data数组大小来插入

  • ,最后设置到id为category的html页面中
    旅游网站(分页展示)
    但是很明显,每一次都是从数据库中查询category信息的话十分的繁琐,效率也不高,所以采用redis来对经常查询的信息进行缓存。
    首先获取jedis客户端,之后通过zrange(能够进行范围内查询!)来查询key为category的信息(set集合能够排序,是为了实现顺序注入信息[根据数据库中的cid大小])
    List集合是存储查询结果的(因为最开始从数据库查询的时候就是用list存储的,这里是为了保持一致性)
    如果没查询到,则是第一次进行查询,那么就调用Dao的findAll方法来查询,之后通过zadd方法插入category信息
    如果redis查询到了(即不是第一次查询,第一次一定是从数据库中查询)
    就new一个ArrayList(因为开始list为null),之后遍历set集合,一个个插入到List集合中
    最后记得要返回List集合。
    旅游网站(分页展示)