A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

把退出功能,分类展示,分类展示缓存优化,及分类跳转功能用自己的话描述出来

23 个回复

倒序浏览
把退出功能,分类展示,分类展示缓存优化,及分类跳转功能用自己的话描述出来
答:

退出功能:
       用户点击退出按钮,跳转到UserServlet。在此,先销毁session,则销毁了session域中的user对象,再将请求重定向到登录界面。

分类展示:
       当页面加载后,header.html向CategoryServlet发送ajax请求分类数据。在此,findAll(HttpServletRequestrequest, HttpServletResponse response)方法调用service层的findAll()方法,获取所有的分类信息,最后将信息响应回前端。前端获取数据后将数据解析并展示。

分类展示缓存优化:
       在service层CategoryServiceImpl类中的findAll()方法内,先查询jedis服务器中的数据,如果数据不存在,则查询MySQL数据库中的数据,并将查到的数据保存到jedis中。否则将数据转化成List集合,最后返回该List集合。

分类跳转功能:
       用户点击某个分类,请求RouteServlet下的pageQuery()方法,并传入参数cid,pageSize和currentPage。在pageQuery()方法体内,先获取这3个参数,并将参数转换为int类型。之后调用service层的pageQuery()方法完成查询,并将查询结果响应回前端页面。前端页面根据返回的pageBean进行布局展示。
回复 使用道具 举报
把退出功能,分类展示,分类展示缓存优化,及分类跳转功能用自己的话描述出来
答:
        退出功能:
                前端:对退出按钮进行页面跳转设置,请求后台进行跳转;

                后台:收到前端请求后,先将登录用户存在session域的数据进行销毁,然后将页面跳转到首页去;



        分类展示和分类展示缓存优化:
                前端:请求服务器,获取导航栏要展示的数据,将获取的数据进行遍历,将每一种分类放进li元素中进行字符串的拼接,在拼接上其他(首页、收藏排行榜等)要展示的li元素,最后将拼接好的字符串,添加进导航栏的ul元素进行解析展示;

                后台:
                        分类展示:
                                servlet层:根据前端的请求,调用service层的方法,获取前端想要的数据,然后序列化成json对象,响应给前端;
                                service层:调用dao层查询数据库,获取导航栏的数据,并将数据返回给调用者;
                                dao层:定义sql语句,将相关数据封装成list集合返回给调用者;

                        分类展示缓存优化:
                                service层:获取redis客户端,使用有序集合获取获取数据(数据的id为分数值,数据的内容为键),先去缓存查询是否有相应的数据,如果没有则调用dao层的方法,获取数据库的数据,并将这些数据放入内存数据库中;如果有,则直接从内存数据库中获取数据,并将获取的数据返回给调用者;



        分类跳转:
                前端:获取所要查询的分类的具体id,然后将该id传递给服务器,获取相应的数据,将获取的数据拼接好,分页展示到页面上

                后台:
                        servlet层:获取分类的id和页面请求的每页记录数和页码,并为每页记录数和页码设置默认值;调用service层的方法,传递类别的id、每页记录数和当前页码,获取相应的数据,序列化成josn对象,并相应给前端页面进行展示;
                        service层:根据传递的数据设置好当前页码和每页记录数,在调用dao层的方法传递类别的id,获取总记录数,根据总记录数和每页记录数设置好总页码,根据当前页码和每页条数计算出每页展示的起始索引,再调用dao层方法传递类的id、起始索引和每页记录数,获取当前页要展示的数据,将需要展示的数据封装成PageBean对象传递给调用者;
                        dao层:先根据类别的id值,定义SQL语句获取该类别总的记录数,并将数据返回给调用者;在根据类别的id、起始索引和每页记录数,定义sal语句进行分页查询,获取当前页要展示的数据,封装成list集合返回给调用者;
回复 使用道具 举报
把退出功能,分类展示,分类展示缓存优化,及分类跳转功能用自己的话描述出来
登录功能:
       用户点击登录按钮,提交数据到后台。
       UserServlet接收数据。先进行验证码的校验,校验通过后再获取用户名和密码,调用service层的findByUsernameAndPassword(username,password)方法查询用户是否存在。若用户不存在则设置ResultInfo的flag为false,并提示“用户名或密码错误”。否则判断用户是否激活,若未激活则设置flag为false,并提示尚未激活。否则用户登录成功,设置flag为true,将user对象存入session。最后响应登录成功的信息。
退出功能:
       用户点击退出按钮,跳转到UserServlet。在此,先销毁session,则销毁了session域中的user对象,再将请求重定向到登录界面。
分类展示:
       当页面加载后,header.html向CategoryServlet发送ajax请求分类数据。在此,findAll(HttpServletRequestrequest, HttpServletResponse response)方法调用service层的findAll()方法,获取所有的分类信息,最后将信息响应回前端。前端获取数据后将数据解析并展示。
分类展示缓存优化:
       在service层CategoryServiceImpl类中的findAll()方法内,先查询jedis服务器中的数据,如果数据不存在,则查询MySQL数据库中的数据,并将查到的数据保存到jedis中。否则将数据转化成List集合,最后返回该List集合。
分类跳转功能:
       用户点击某个分类,请求RouteServlet下的pageQuery()方法,并传入参数cid,pageSize和currentPage。在pageQuery()方法体内,先获取这3个参数,并将参数转换为int类型。之后调用service层的pageQuery()方法完成查询,并将查询结果响应回前端页面。前端页面根据返回的pageBean进行布局展示。
回复 使用道具 举报
退出功能:
1.客户端:A标签发送请求至服务端
2.服务器端:销毁session域,跳转页面

分类展示:
1.客户端:heard.html入口函数中发送异步请求,获取响应数据,分类展示至页面
2.服务器端:
        1)CategoryServlet类:
                调用CategoryService方法
        2)CategoryService接口(分类展示缓存优化):
                判断redis数据库中是否有数据,有数据的话提取数据放入集合返回,没数据的话调用dao层的方法获取集合,将集合                存入redis中,并返回该集合
        3)CategoryDao接口:
                调用方法获取Category表的数据,封装成集合并返回

分页展示:
1.客户端:获取分类信息传递过来的cid参数,发送异步请求,传递cid参数,获取pagebean封装的数据,将分页展示至页面
2.服务器端:
        1.创建pagebean标准类
        2.创建RouteServlet类:
                获取 cid,pageSize(每页行数),currentPage(当前页码),调用RouteService方法并传递
        3.创建RouteService接口
                创建一个pagebean对象,并封装pageSize(每页行数),currentPage(当前页码),totalCount(总记录数),
                totalPage(总页码),list(每页显示的数据集合)。其中list和totalCount需要调用dao方法从数据库中获取
        4.RouteDao接口
                调用list和totalCount方法获取值并返回给service
回复 使用道具 举报
把退出功能,分类展示,分类展示缓存优化,及分类跳转功能用自己的话描述出来

退出功能:①在前端给退出按钮添加单击事件,设置跳转路径,②在servlet层调用session的invalidate()方法,删除session对象结束对象③会话结束后重定向跳转路径,回到首页

分类展示:①创建PageBean类封装分类所需要的变量,②接收参数,处理参数,然后将参数封装,传递到RouteServlet层 ③ RouteServiceImpl来设置参数,调用RouteDaoImpl来查询所需要的参数并赋值 ④RouteServiceImpl赋值完成后,封装对象,传递给RouteServlet,RouteServlet封装为json对象给前端解析,前端解析后获取所需参数cid currentPage ⑤参数获取完成继续发送异步请求,调用GategoryServlet方法findAll(),⑥findAll方法继续调用CategoryServlceImp的方法,CategoryServlceImpl调用CategoryDaoImpl查询数据,CategoryServlceImpl将结果返回给GategoryServlet,GategoryServlet又将结果封装为json对象返回前端,前端对结果进行处理,达到分类展示的目的

缓存优化:就是在service层调用数据库方法得到数据后,将数据进行处理,保存到Redis缓存中

分类跳转就是在分类展示的时候,根据查询的结果按照PageBean对象中的参数,进行分类展示,分类跳转
回复 使用道具 举报
把退出功能,分类展示,分类展示缓存优化,及分类跳转功能用自己的话描述出来。
分类展示:
1.创建一个CategoryServlet类继承BaseServlet,类中写一个findAll方法,注解“/category/*”。header.html发送一个异步请求,请求路径为/category/findAll,参数
为空,将来返回一个data对象。请求访问了CategoryServlet,service调用findAll方法,执行方法内代码。
2.三层架构阶段:
servlet层:调用service层中的findAll方法,返回值类型为List<Category>。service层中调用dao层中findAll方法,方法内创建sql语句查询tab_category表中的所有数据
封装为List<Category>返回到service层。service层直接再返回servlet层。servlet层将list转为json,设置响应头contenttype后响应给前端。
3.前端获得一个json集合。获得页面中首页导航部分的ui标签对象,遍历json集合,每遍历一个,拼接一个li标签字符串,标签内容为json对象的cname值。将字符串写进ui标签。

分类展示缓存优化:
1.缓存优化功能是指第一次读取数据从数据库取,并存入缓存,下次再取就直接从缓存取。
2.直接修改service层代码:获得操作redis数据库工具,通过工具获取redis里面的数据,返回一个Set<Tuple> categorys。判断set集合是否为空,如果为空说明redis数据库没有,
就调用dao层的findAll方法,即从mysql数据库里找。将返回的 List<Category>,遍历并存入redis数据库。如果set集合不为空,则直接从redis里面取。因为方法返回值是List集合
所以需要将set集合里面数据取出,存入List集合返回。

分类跳转功能:
1.前端设置:在做分类展示的时候,header.html中设置li标签超链接的href属性可以拼接一个“?cid=”和json对象的cid值。这样在点击超链接时跳转route_list.html,会传递
cid值。在route_list.html页面接收cid,异步请求发送给RouteServlet。
2.创建一个RouteServlet类继承BaseServlet,类中写一个pageQuery方法,注解“/route/*”。route_list.html发送的异步请求请求路径为route/pageQuery,参数传入cid,将来返回一个
data。该异步请求访问了RouteServlet,service方法调用了子类的pageQuery方法,执行方法内代码。
3.三层架构阶段:
servlet层:获取cid,currentPage,pageSize三个参数,判断是否为空,为空设置默认值。调用service层的pageQuery方法,传入这三个参数,返回值是一个PageBean<Route>。service层
service层:先创建一个PageBean<Route>对象,这个对象将来要设置5个属性。先将两个方法参数currentPage,pageSize设置进PageBean<Route>。然后调用dao层获得totalCount,再通过totalCount和
pageSize计算获得totalPage,将这两个参数设置进PageBean<Route>对象。计算展示页面其实索引值,和cid,pageSize传入dao层方法查询获得list<route>。将返回值设置进PageBean<Route>对象。
5个参数都设置好了返回给servlet层。servlet层将PageBean<Route>对象响应回前端。前端根据PageBean<Route>展示数据。
回复 使用道具 举报
把退出功能,分类展示,分类展示缓存优化,及分类跳转功能用自己的话描述出来
退出:
前端绑定退出的单击事件,发送异步请求至userServlet,userServlet继承BaseSevlet,写上exit方法,方法中注销session;调用时使用baseServlet中的service方法通过反射的方法获得user中的对应方法并执行。
分类展示:
前端绑定入口函数发送ajax请求发送给分类servlet,调用service层,service查询dao层获取数据库中的分类对象并返回,servlet拿到返回的对象并转成json格式写回响应头,前端解析数据。
缓存优化:
在service层中的查询分类方法中添加一个条件判断,判断redis中是否已有分类数据,没有则调用dao从数据库中获取,并记录到redis中;有则直接转为json返回前端。
回复 使用道具 举报
把退出功能,分类展示,分类展示缓存优化,及分类跳转功能用自己的话描述出来
退出:页面请求exitServlet  ->  注销session  ->  跳转到登录页
分类展示:请求categoryServlet  ->  获取数据库表tab_category所有记录
分类展示缓存优化:请求categoryServlet  ->  先从redis中取数据,取不到再从数据库中取,然后存到redis,下次从redis中取
分类跳转:header.html页面点击具体分类跳转到route_list.html  ->  route_list.html请求routeServlet传递cid、currentPage、pageSize  ->  查询数据库封装pageBean对象返回
回复 使用道具 举报
退出功能:

在前端中做一件事,点击退出按钮的跳转路径修改为这个servlet路径.

在servlet中做两件事:

1/手动销毁session,因为session中含有登录的user对象

2/直接转发到login.html登录页面

分类展示:

准备工作:创建CateGoryServlet继承BaseServlet进行servlet的抽取,

CateGoryServlet注解上写任意名称/*,意思是可以执行到这个任意名称下的所有文件及方法.

BaseServlet中做了三件事:1.截取到访问的uri路径后面的方法名2.获取到子类的方法执行对象3.利用反射机制执行子类中的方法.

分类展示流程:

1/前端页面:1.发送ajax请求,访问服务器的分页数据,获得一组数据 2.遍历数组,获取分页数据内容

2/servlet中直接调用service中的finAll()方法,返回 list集合对象,将list对象转换为json对象,响应到客户端

3.service层调用dao层的findall()方法,返回分页数据

4.dao层执行findall()方法,在数据库查询所有分页数据信息,返回一个集合给service层.

分页展示缓存优化流程:

在分页展示的基础上,在service层的实现类中进行redis缓存优化;

1/创建jedis客户端,使用java操作reids,使用zset中的zrangeWithScores获取到redis中的所有数据.

2/对获取到的数据集合进行判断,如果为null或者长度为0,说明redis中没有缓存,则从数据库中进行读取数据,然后将数据存入redis中进行缓存.

3/如果不为null或者长度不为0说明redis中有缓存,则直接从缓存中读取数据进行展示.

4/因为我们返回的是一个list集合对象,所有为了防止返回的对象不能是空的对象,在有缓存的情况下,我们要创建一个arraylist集合进行存储redis中已经缓存的数据,防止返回的是空的对象.



分类跳转功能:

创建一个PegeBean对象

public class PageBean<T>{

private int totalCount 总记录数   -->查询数据库,获取所有数据的次数 count(*)

private int totalPage总页码  -->  总记录数 % 每页显示的条目 == 0 ?  总记录数 / 每页显示的条目 : (总记录数 / 每页显示的条目)+1;

private int currentPage 当前页码  -->  前端传递的

private int pageSize 每页显示的条目  --> 前端传递的

private list<T> list 每页显示的数据集合  --> 获取到start索引 参数传递 start , currentPage , pageSize

}

servlet层:

创建一个RouteServlet 继承BaseServlet,执行pageQuery方法,注解上面写route/*执行route下的所有文件及方法.

获取三个参数currentPage,pageSize和cid作为pageQuery方法的主要参数传递到后端服务器进行查询,返回一个PageBean对象,然后使用json数据格式响应到浏览器客户端.

service层:

创建PageBean对象,封装PageBean中的各个参数到对象中,其中调用了dao层中的两个方法,然后返回PageBean对象到servlet层

dao层:

在数据库中对总记录数和每页显示的数据list集合两个方法进行查询操作,然后返回结果给service层,再传递到servlet.

前端页面:

发送ajax请求,请求路径写route/方法名,参数写{"cid":cid},回调函数,后面基本上都是一些字符串的拼接,注意" "里面嵌套' ', 用 '  ' 进行字符串的拼接即可.

点评

文化水平不够只能一句卧槽  发表于 2019-5-19 11:59
回复 使用道具 举报

把退出功能,分类展示,分类展示缓存优化,及分类跳转功能用自己的话描述出来
退出:前端绑定退出的单击事件,发送异步请求至Servlet,这个Servlet我们选择一个表建立一个servlet,而不是一个功能一个servlet,继承BaseSevlet,exit方法,方法中删除session;调用时使用baseServlet中的service方法,this就是谁调用service方法,然后通过反射的方法获得user中的对应方法并执行。
分类展示:
前端绑定入口函数发送ajax请求发送给分类servlet,调用service层,service查询dao层获取数据库中的分类对象并返回,servlet拿到返回的对象并转成json格式写回响应头,前端接收响应成功的回调函数并解析。
缓存优化:
在service层中的查询分类方法中添加一个条件判断,判断redis中是否已有分类数据,没有则调用dao从数据库中获取,并记录到redis中;有则直接转为json返回前端,返回之间要将set转为list
回复 使用道具 举报
陈鹏涛
出功能:
1.客户端:A标签发送请求至服务端
2.服务器端:销毁session域,跳转页面

分类展示:
1.客户端:heard.html入口函数中发送异步请求,获取响应数据,分类展示至页面
2.服务器端:
        1)CategoryServlet类:
                调用CategoryService方法
        2)CategoryService接口(分类展示缓存优化):
                判断redis数据库中是否有数据,有数据的话提取数据放入集合返回,没数据的话调用dao层的方法获取集合,将集合                存入redis中,并返回该集合
        3)CategoryDao接口:
                调用方法获取Category表的数据,封装成集合并返回

分页展示:
1.客户端:获取分类信息传递过来的cid参数,发送异步请求,传递cid参数,获取pagebean封装的数据,将分页展示至页面
2.服务器端:
        1.创建pagebean标准类
        2.创建RouteServlet类:
                获取 cid,pageSize(每页行数),currentPage(当前页码),调用RouteService方法并传递
        3.创建RouteService接口
                创建一个pagebean对象,并封装pageSize(每页行数),currentPage(当前页码),totalCount(总记录数),
                totalPage(总页码),list(每页显示的数据集合)。其中list和totalCount需要调用dao方法从数据库中获取
        4.RouteDao接口
                调用list和totalCount方法获取值并返回给service
回复 使用道具 举报
退出功能:通过点击首页的退出按钮,跳转到UserServlet,通过BaseServlet中的service方法反射调用UserServlet下的exist方法,销毁本次会话的session,并将网页重定向至登录页面。

分类展示:header.html中,通过发送异步请求,获取数据库中的线路分类信息,展示到导航条上。具体的异步请求对象为categoryServlet中的findAll方法,Servlet层再向Service层中请求数据,通过Service层调用Dao层的方法,拿到数据库中tab_category表中的所有数据。

分类展示缓存优化:在CategoryServiceImpl中,通过JedisUtil中的getJedis()方法得到Jedis对象,通过Jedis对象将第一次数据库查到的数据存入redis缓存中,之后再查询此数据,都通过redis缓存中读取。

分类跳转功能:通过点击首页的分类子项目后,跳转到route_list.html,并在页面中通过location.search方法获得网页链接“?”后面的参数内容:cid,currentPage,pageSize,通过异步请求将这些参数发送到RouteServlet中,以获取封装好参数的pageBean对象的Json格式返回值。RouteServlet获得参数后,对参数进行非空和赋予默认值的处理后,传递给routeService层进行pageBean对象的封装,RouteServiceImpl获取参数后,对pageBean的五个参数进行封装,其中:currentPage和pageSize参数直接由传递过来的参数赋值,totalCount参数通过调用Dao层的方法获取总记录数,totalPage通过totalCount/pageSize计算得出,最后通过Dao层的findByPage方法,传入cid,strat=(currentPage - 1 )*pageSize,pageSize三个参数获得分类页面的内容list。
回复 使用道具 举报
李伟斌

把退出功能,分类展示,分类展示缓存优化,及分类跳转功能用自己的话描述出来




综合案例2.png (108.21 KB, 下载次数: 3)

综合案例2.png
回复 使用道具 举报
把退出功能,分类展示,分类展示缓存优化,及分类跳转功能用自己的话描述出来
      退出功能:在header.html中,对退出按钮进行设置:<a href="javascript:location.href='exitServlet';">退出</a>
              在servlet中,销毁session,并设置跳转到login.html

分类展示:在前台,发送ajax请求查询分类数据,对字符串进行拼接。在后台定义sql查询语句,对数据库进行查询。调用service查询,将结果序列化返回。

分类展示缓存优化:在 service中,获取Jedis客户端,使用sortedset排序查询,对查询的集合进行判断,如果是空,从数据库查询,并存入redis;如不为空,将set的数据存入list中

分类跳转:header.html页面点击具体分类跳转到route_list.html ,route_list.html请求routeServlet传递cid、currentPage、pageSize,  查询数据库封装pageBean对象返回
回复 使用道具 举报
把退出功能,分类展示,分类展示缓存优化,及分类跳转功能用自己的话描述出来
1).退出功能:前端点击退出组件跳转到exitServlet中,在servlet中进行session对象的销毁和跳转到登录页面login.htm操作
2).分类展示缓存优化:
        分类展示:前端通过ajax异步请求数据库中category的数据并通过三层架构思想调用findAll方法查询所有分类信息保存为list对象响应回前端,前端获取数据遍历数据,拼接字符串展示获取的分类数据
        分类展示缓存优化:在CategoryServiceImpl实现类中查询redis数据,判断到的集合是否为空,是空的就需要从数据库查询,再将数据遍历存入redis中
        不为空就将获取的数据遍历存入list集合中
3).分类跳转功能:前端点击导航条的分页组件跳转到route_list.html,页面通过location.search获取请求的id值,通过切割字符串获取值,再根据ajax异步请求route/pageQuery传递数据,在route/pageQuery中接收传递的参数currentPage,pageSize,cid,分别处理参数判断不为null和长度>0时候默认为什么调用service中的pageQuery方法查询PageBean对象转化为Json对象返回客户端。
回复 使用道具 举报
把退出功能,分类展示,分类展示缓存优化,及分类跳转功能用自己的话描述出来
退出功能:
①给退出绑定一个单击事件,用户在页面点击退出按钮,跳转到后台servlet层。
②servlet先对session进行销毁,再重定向到首页。
分类展示:
①当用户访问主页时,会加载header.html,使用ajax跳转到后台servlet层。
②servlet层直接调用service层中的方法。service层调用dao层中的方法查询数据中的所有的分类进行封装返回。
③servlet将返回的数据序列化为json串,响应给页面,页面展示数据。
分类展示缓存优化:
①在service层中创建一个java的redis数据库客户端,使用zset查询数据库,返回一个set集合。
②判断set集合是否为空和长度是否为0,如果为空则说明redis中没有数据库,调用dao层中的方法查询mysql数据库的数据,并将数据存入redis数据库中,反之则说明redis中已经有数据,直接使用redis中的数据。
分类跳转功能:
①当用户点击首页的分类的时候,会跳转到后台servlet层,并传递一个cid值。
②servlet层中获取页面传递过来的参数,并进行判断处理,然后调用service层中的方法。
③service层中新建一个pagebean对象,将servlet传递的数据设置pagebean参数,调用dao层中的方法进行查询并返回一个list集合,将集合存入pagebean中,将pagebean返回给servlet。
④servlet层将pagebean对象进行序列化json串响应给页面,页面展示数据。

回复 使用道具 举报
把退出功能,分类展示,分类展示缓存优化,及分类跳转功能用自己的话描述出来

退出功能:
给退出按钮跳转到exitServlet,在exitServlet里获取session后将其销毁,通过重定向跳转到登录页面。

分类展示:header.html中,通过发送异步请求,获取数据库中的线路分类信息,展示到导航条上。具体的异步请求对象为categoryServlet中的findAll方法,Servlet层再向Service层中请求数据,通过Service层调用Dao层的方法,拿到数据库中tab_category表中的所有数据。

分类优化缓存:在findAll方法里进行优化,把从数据库查询修改为先从redis中查询,判断集合是否为null,如果是,说明是第一次访问,则查询数据库,并将数据存入redis中,如果不是,那么说明不是第一次访问,直接从redis获取。返回集合。

分类跳转:header.html页面点击具体分类跳转到route_list.html  ->  route_list.html请求routeServlet传递cid、currentPage、pageSize  ->  查询数据库封装pageBean对象返回


回复 使用道具 举报
把退出功能,分类展示,分类展示缓存优化,及分类跳转功能用自己的话描述出来
退出功能:
       用户点击退出按钮,跳转到UserServlet。在此,先销毁session,则销毁了session域中的user对象,再将请求重定向到登录界面。

分类和分类展示缓冲优化:
  header.html中,通过发送异步请求,获取数据库中的线路分类信息,展示到导航条上。具体的异步请求对象为categoryServlet中的findAll方法,Servlet层再向Service层中请求数据,通过Service层调用Dao层的方法,拿到数据库中tab_category表中的所有数据。
  在CategoryServiceImpl中,通过JedisUtil中的getJedis()方法得到Jedis对象,先通过Jedis对象去redis中查询判断是否有值,没有就去数据中查再将查到的结果存入Redis中,之后再查询此数据,都通过redis缓存中读取。

分类跳转:
点击首页导航条的分类项跳转到route_list.html,并在页面中通过location.search方法获得网页链接“?”后面的参数内容:cid,currentPage,pageSize,通过异步请求将这些参数发送到RouteServlet中,调用service层中方法再去dao层中查询获得totalCount(总记录数),totalPage(总页码),list(每页显示的数据集合)然后与pageSize(每页行数),currentPage(当前页码)一起封装进PageBean对象中返回servlet层中转化为json对象写回客户端
回复 使用道具 举报
陈开明:
退出功能:
前端页面:
在“退出”按钮链接上面绑定javascript,设置为location.href='user/exitSevlet',跳转到exitSevlet。

后端处理:
○1servlet层:
1.        通过request获取session,调用session的invalidate()方法,将session销毁。
2.        重定向到登录页面。


                        分类展示
前端页面:
○1写入口函数,header.html中,通过ajax发送异步请求。
○2获取数据库表中的分类信息,展示到导航条目上面。
后端处理:
○1servlet层:
1.        创建CategoryServiceImpl对象。
2.        categoryService.findAll(),返回分类的集合信息
3.        将集合对象序列化为json对象,方便前端页面解析。
○2service层:
1.        创建CategoryDaoImpl对象,重写findAll方法。
2.        findAll方法,里面调用CategoryDaoImpl的findAll方法,返回一个分类集合对象
○3dao层:
1.定义findAll方法,通过sql查询语句,返回分类信息的list集合。
               
                        分类缓存
前端都和分类展示一样,只是在后端service层,使用Jedis技术来缓存数据。
1.        创建jedis对象,连接jedis服务器。
2.        通过jedis对象的键来判断所要查询的数据,是否有存储到jedis服务器中,若有,则直接从jedis中获取所需数据,没有则从数据库中查询,并将查询到的数据第一次写入缓存中。       

                        分类跳转
前端页面:
○1写入口函数,做分类展示的时候,header.html中设置li标签超链接的href属性可以拼接一个“?cid=”和json对象的cid值。
○2点击上面设置的超链接后,会将cid的数据传送出去,浏览器会跳转到route_list.html页面。
○3route_list.html页面加载完成后,接收了cid参数,并通过异步请求ajax方式发送给了后台服务器,后台服务器返回一个PageBean对象。
○4前端解析PageBean对象,将解析的数据加载到页面中,实现分类展示。


后端处理:
○1servlet层:
1.        获取用户输入的cid,pageSize,currentPage参数。
2.        创建RouteServiceImpl对象,调用pageQuery方法,封装PageBean对象
3.        将PageBean对象序列化为json对象。
○2service层:
1.        创建RouteDaoImpl对象,重写pageQuery方法。
2.        将前端传送的数据和后端数据库查询的数据封装PageBean对象。
3.        返回PageBean对象。
○3dao层:
1.        定义两个方法,一个是findTotalCount,通过cid查询这类的旅游线路总共有多少条。
2.        一个是pageQuery方法,返回这类全部路线的信息集合。







回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马