-
为了做链接点击上报,后端简单了实现了一个接口
@GetMapping("redirect") public void redirect(HttpServletRequest request, HttpServletResponse response) throws IOException { String url = request.getParameter("url"); // 模拟某些业务逻辑开始 String userId = request.getParameter("user_id"); System.out.println(userId); // 模拟某些业务逻辑结束 response.sendRedirect(url); }
-
后来发现如果业务逻辑处理太慢,影响跳转,用户体验不好,于是把业务逻辑改成异步
@GetMapping("redirect") public void redirect(HttpServletRequest request, HttpServletResponse response) throws IOException { String url = request.getParameter("url"); new Thread(() -> { // 模拟某些业务逻辑开始 String userId = request.getParameter("user_id"); System.out.println(userId); // 模拟某些业务逻辑结束 }).start(); response.sendRedirect(url); }
-
发现在处理业务逻辑时,会偶尔出现取不到参数的情况,原来HttpServletRequest在请求结束后会回收复用....
不要异步使用HttpServletRequest
最新推荐文章于 2024-07-26 12:28:02 发布