gpt4 book ai didi

java - servlet 中的页面生成时间

转载 作者:行者123 更新时间:2023-12-02 12:13:40 26 4
gpt4 key购买 nike

我有一个登录 servlet,它处理带有用户名和密码参数的 post 请求,并执行如下操作:

    Instant pageGenStart = Instant.now();

String username = req.getParameter("username");
String password = req.getParameter("password");

resp.setContentType("text/html;charset=utf-8");

User user = null;
try {
user = userService.getByUsername(username);
} catch (SQLException e) {
e.printStackTrace();
}
if (user == null && !password.equals("")) {
try {
user = new User(username, password);
user.setId(userService.addNewUser(username, password));

charactersService.addNewCharacter(user);
sessionsService.add(req.getSession().getId(), user.getId());
} catch (SQLException e) {
e.printStackTrace();
}
resp.setContentType("text/html;charset=utf-8");
resp.setStatus(HttpServletResponse.SC_OK);
Duration time = Duration.between(pageGenStart, Instant.now());

resp.sendRedirect("/main");
}

如果在数据库中找不到用户,则创建新用户并将其重定向到主页。通常我只是将这个“时间”变量放入页面中,但我将响应重定向到调用 doGet 方法的其他 servlet。我如何让其他 servlet 知道登录 servlet 处理 post 请求需要多长时间?

最佳答案

您可以通过多种方式将值从一个 servlet 传递到另一个 servlet,例如:

  1. 在 session 中存储值(您必须负责 session 管理)
  2. 创建具有静态 ConcurrentHashMap 的类并存储每个用户 session 的时间间隙并使用 session ID 获取它。 (清除缓存时也需要注意同样的问题)。
  3. 使用已定义的库(最好的选择,因为您无需担心 session 管理和缓存清除)。

我更喜欢 EH 缓存来实现这些目的,您可以从 Link 中看到一个很好的例子。 .

关于java - servlet 中的页面生成时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46358340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com