旅游路线收藏功能-分析、后台代码
分析
当页面加载完成后,发送ajax请求,获取用户是否收藏的标记
根据标记,展示不同的按钮样式
后台代码
RouteServlet类:
/** * 判断当前登录用户是否收藏过该线路 */ public void isFavorite(HttpServletRequest request, HttpServletResponse response){ // 1.获取线路id String rid = request.getParameter("rid"); // 2.获取当前登录用户 user User user =(User) request.getSession().getAttribute("user"); // 用户id int uid; if (user == null){ // 用户已经登录 uid = user.getUid(); } // 3.调用FavoriteService查询是否收藏 boolean flag =favoriteService.isFavorite(rid,uid); // 4.写回客户端 writeValue(flag,request);
FavoriteService接口:
public interface FavoriteService { /** * 判断是否收藏 * @param rid * @param uid * @return */ public boolean isFavorite(String rid,int uid); }
FavoriteServiceImpl实现类:
private FavoriteDao favoriteDao = new FavoriteDaoImpl(); @Override public boolean isFavorite(String rid, int uid) { Favorite favorite = favoriteDao.findByRidAndUid(Integer.parseInt(rid), uid);
// 如果对象有值,则为true,反之则为false
return favorite != null;
} }
FavoriteDao接口:
public interface FavoriteDao { /** * 根据rid和uid查询收藏信息 * @param rid * @param uid * @return */ public Favorite findByRidAndUid(int rid,int uid); }
FavoriteDaoImpl实现类:
public class FavoriteDaoImpl implements FavoriteDao { private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource()); @Override public Favorite findByRidAndUid(int rid, int uid) { Favorite favorite = null; try { String sql = "select * from tab_favorite where rid = ? and uid = ?"; favorite = template.queryForObject(sql, new BeanPropertyRowMapper<>(Favorite.class), rid, uid); } catch (DataAccessException e) { // e.printStackTrace(); } return favorite; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】