【发布时间】:2016-09-02 11:37:01
【问题描述】:
@Controller
public class LoginController {
@RequestMapping(value = "showLogin", method = RequestMethod.GET)
public ModelAndView showLogin(HttpServletRequest request, HttpSession session) {
return new ModelAndView("login");
}
@RequestMapping(value = "login", method = RequestMethod.POST)
public String login(HttpServletRequest request, HttpSession session) {
String page = "login";
String loginId = request.getParameter("loginId");
String password = request.getParameter("password");
// HttpSession session = request.getSession();
session.setAttribute("USERNAME", loginId);
if(loginId.equals("admin") && password.equals("admin")){
session.setAttribute("loginId", "admin");
session.setAttribute("userName", "admin");
session.setAttribute("userDetails", "System Administrator");
session.setAttribute("USERNAME", "admin");
page = "home";
return page;
}
@RequestMapping(value = "projdet", method = RequestMethod.GET)
public String project(
@ModelAttribute("projMaster") ProjectMaster projMaster,
Model model, HttpServletRequest request, HttpSession session) {
List<ProjectMaster> allProjectlist =getMasterDaoService().getAllProjList();
model.addAttribute("Projlist", allProjectlist);
String page = "project";
return page;
}
会话只工作一次spring mvc,一旦登录返回主页但从主页到下一个屏幕没有用户详细信息和会话在任何其他控制器中都找不到
【问题讨论】:
-
不可能。 Httpsession 在整个应用程序中都可用。你可能在某个地方做了会话失效
-
我知道这个 Httpsession 在整个应用程序中都可用。只使用一次... @RequestMapping("logout") public String logout(HttpServletRequest request) { try { HttpSession session = request.getSession(); session.invalidate(); } 捕捉(异常前){ ex.printStackTrace(); } 返回“索引”; }
-
当你说没有找到会话时,你的意思是
HttpSession是null吗? -
是的会话为空...登录后在主页上可用..但是..在下一个屏幕/页面上它变为空
标签: java spring spring-mvc servlets