JavaWeb-旅游网-点击收藏

本文详细介绍了在JavaWeb旅游网站中实现用户线路收藏功能的方法,包括登录验证、收藏状态判断及前端展示更新等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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();
                })
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lpepsi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值