JavaWeb-旅游网-点击收藏

JavaWeb-旅游网-注册和登录
JavaWeb-旅游网-导航条和分页展示
JavaWeb-旅游网-详情展示
JavaWeb-旅游网-线路搜索
功能: 用户登录后,在线路详情页面中,可以点击收藏进行收藏,如果用户没有登录,则会跳转到登录页面,如果已经收藏过了就不可再收藏
在这里插入图片描述
在这里插入图片描述
加载详情页面的时候,前端会发送ajax判断该用户在该线路是否已经收藏,如果已经收藏就按钮置为不可点击的状态

   $(function () {
        var rid = getParameter("rid");
        //判断用户是否收藏过该rid
       $.get("route/isCollect",{rid:rid},function (data) {
            if (data){
                //如果用户已经收藏
                $("#collect").addClass("already");
                $("#collect").attr("disabled","disabled");
                $("#collect").removeAttr("onclick");
            } else {
                //如果用户未收藏
            }
       });
    });
    public void isCollect(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取线路的rid和用户的uid
        int rid = Integer.parseInt(request.getParameter("rid"));
        User user = (User) request.getSession().getAttribute("user");
        int uid ;
        if(null == user){
            uid = 0;
        }else {
            uid = user.getUid();
        }

		//true为收藏,false为未收藏
        Boolean flag = routeService.isCollect(rid,uid);

        response.setContentType("application/json;charset=utf-8");
        response.getWriter().write(getJson(flag));
    }

在点击收藏时,会先去判断当前用户是否登录,如登录则进行收藏,没有登录就跳转到登录页面

    function Collect() {
        var rid = getParameter("rid");
        //先判断用户是否登录
        $.get("user/findUser",{},function (data) {
            if (data){
                //用户登录,进行收藏
                $.get("route/collect",{rid:rid},function (data) {
                        location.reload();
                })
            } else {
                //用户未登录
                alert("请先登录")
                location.href = "login.html";
            }
        })

    }
 public void collect(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取线路的rid和用户的uid
        int rid = Integer.parseInt(request.getParameter("rid"));
        User user = (User) request.getSession().getAttribute("user");
        int uid ;
        if(null == user){
            return;
        }else {
            uid = user.getUid();
        }
        routeService.collect(rid,uid);
    }

当收藏成功时,页面会重新加载,即location.reload(),刷新当前的收藏次数,提升用户的体验

 $.get("route/collect",{rid:rid},function (data) {
                        location.reload();
                })
发布了65 篇原创文章 · 获赞 74 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_40866897/article/details/92091096