我有一个servlet来处理/Login
。
String tempUsername = request.getParameter("username").trim();
String tempPassword = request.getParameter("password").trim();
String message = null;
if(tempUsername != null && tempPassword != null) {
String username = tempUsername;
String password = tempPassword;
Staff staff = new Staff();
try {
Facade facade = new Facade();
Staff result = facade.getStaff(username, password);
if(result != null) {
// response.sendRedirect(request.getContextPath()+"/Home"); // Success but didn't redirect to `/Home`
System.out.println("Success");
}
else {
// request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);
System.out.println("Fail");
}
}
catch(SQLException | NamingException e) {
// SQL Error
}
finally {
request.setAttribute("message", message);
}
}
else {
// Empty field(s)
}
我有另一个servlet来处理/Home
,如果登录成功,将显示index.jsp
。
但是,目前如果登录成功,页面仍然只有/Login
,只有一个空白页面,而不是重定向到/Home
。
如何在登录成功后重定向到/Home
?
我是使用Servlet和Eclipse的新手。我刚开始学习J2EE和Eclipse。还在探索。
forward()
和sendRedirect()
更改为println()
。当我使用错误的用户名和密码时,"失败"打印出来。但是当我使用正确的细节时,没有任何打印出来。答案 0 :(得分:0)
不要使用sendRedirect()
- forward()
更合适,因为您在同一服务器上重定向请求(使用相对路径)。如果您坚持使用sendRedirect()
- 请使用提取网址。
答案 1 :(得分:0)
如果你想要在web.xml中重定向的servlet的url映射,或者作为注释这个简单的行应该完成工作,为什么你需要那个absolutePath呢?
RequestDispatcher requestDispatcher=servletContext.getRequestDispatcher("/Home");
requestDispatcher.forward(request, response);
或者这个
response.sendRedirect("/Home");