Java servlet中的页面生成时间
我有一个登录servlet,它使用用户名和密码参数处理post请求,并执行如下操作:Java servlet中的页面生成时间,java,servlets,Java,Servlets,我有一个登录servlet,它使用用户名和密码参数处理post请求,并执行如下操作: Instant pageGenStart = Instant.now(); String username = req.getParameter("username"); String password = req.getParameter("password"); resp.setContentType("text/html;charset=utf-8"); Us
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:
我建议使用EH缓存处理此类问题。您可以从中看到一个很好的示例。将其添加到您的请求或session@ScaryWombat有什么方法可以包括它吗?或者我只是像resp.sendRedirect(“/main”+time.toMillis())那样将其添加为字符串?因为如果我这样做,它就不会被包括在参数中。你想用时间做什么?一般来说,如果您执行外部重定向,您需要将其存储在会话中,或者将其包含在重定向的请求参数中(但是您必须接受,它可能会被用户操纵,除非您对数据进行签名)@ErwinBolwidt一般来说,我只想显示每个页面的页面生成时间
resp.sendRedirect(“/main?generationTime=“+time.toMillis())
谢谢你的建议!呃,缓存不是我在这个项目中想要的,但我稍后会研究它。