@Controller
@SessionAttributes( {"user"})
@RequestMapping("/")
public class Logincontroller {
@Autowired
public Loginservice loginservice;
@RequestMapping(method = RequestMethod.GET)
public ModelAndView getPage1() {
ModelAndView view = new ModelAndView("login");
return view;
}
@Autowired(required = true)
@Qualifier(value="Userprofileservice")
public Userprofileservice userprofile;
@RequestMapping(value = "/processLogin", method = RequestMethod.POST)
public ModelAndView processLogin(HttpServletRequest request,
HttpServletResponse response) {
String userName=request.getParameter("username");
String password=request.getParameter("password");
if (loginservice.checklogin(userName,password)) {
/* ModelAndView success = new ModelAndView("success");*/
ModelAndView success = new ModelAndView("success");
List<Users_main> user = userprofile.userdetails(userName);
success.addObject("username", userName);
success.addObject("user",user);
return success;
} else {
ModelAndView error = new ModelAndView("error");
return error;
}
}
}
这是我的控制器代码。我的想法是在成功登录后保持success.jsp页面&amp;即使刷新后仍然保持登录状态。但是当我点击“/”时它会登录。即使在同一会话中刷新后,如何将其重定向到success.jsp页面?我尝试在控制器中使用session属性,但它似乎没有工作
答案 0 :(得分:0)
您可以直接使用来自javax.servlet
api。
要创建新会话,您可以致电
HttpSession session = request.getSession(true);
这将返回一个新的会话对象。因此,在会话中放置任何对象或值,
session.setAttribute("user", user);
假设您的user
对象是从服务层返回的。
现在您可以通过
随时访问整个项目中的用户对象(如果没有发生会话超时)HttpSession session = request.getSession(false);
这里我们设置boolean false
确认如果任何会话在请求的应用程序上下文中仍然存在,则返回它。现在通过
User user = (User)session.getAttribute("user");
所以用那个修改你的控制器并再试一次下面的代码,
@RequestMapping(value = "/processLogin", method = RequestMethod.POST)
public ModelAndView processLogin(HttpServletRequest request,HttpServletResponse response) {
String userName=request.getParameter("username");
String password=request.getParameter("password");
if (loginservice.checklogin(userName,password)) {
/* ModelAndView success = new ModelAndView("success");*/
HttpSession session = request.getSession(true);
ModelAndView success = new ModelAndView("success");
List<Users_main> user = userprofile.userdetails(userName);
success.addObject("username", userName);
success.addObject("user",user);
session.setAttribute("user",user);
return success;
} else {
ModelAndView error = new ModelAndView("error");
return error;
}
}
让我知道状态。