我在登录后,用servlet存储登录信息,为什么在jsp页面中取不到呢?请各位大虾帮帮忙!
Servlet主要代码:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
//获取参数名称
String stateName = request.getParameter("stateType");
String userName = request.getParameter("userName");
String userPass = request.getParameter("userPass");
if(userName == null || userName.equals("")){
out.println(" <script>alert('请输入用户名!');history.go(-1); </script>");
}else if(userPass == null || userPass.equals("")){
out.println(" <script>alert('请输入密码!');history.go(-1); </script>");
}else{
Dao dao = new DaoImpl();
int result = dao.getLoginUser(stateName, userName, userPass);
if(result > 0){
UserEntity user = new UserEntity();
user.setStateManager(stateName);
user.setUserName(userName);
//给session赋值
session.setAttribute("user", user);
//System.out.println(user.getStateManager());
request.getRequestDispatcher("/Report/index.jsp").forward(request, response);
}else{
out.println(" <script>alert('用户名或密码错误,请重新输入!');history.go(-1); </script>");
}
}
}
jsp页面代码:
//获取session值
UserEntity managerType = (UserEntity)session.getAttribute("user");
String manager = managerType.getStateManager();
没有执行 怎么forward到index.jsp页面。
UserEntity managerType = (UserEntity)session.getAttribute("user");
String manager = managerType.getStateManager();
应该可以获取到值吧 你在放入session的时候并没有给statemanager字段赋值 这里抛NullPointer异常了吗貌似是url重写问题,应该将session附加到url中
将request.getRequestDispatcher("/Report/index.jsp").forward(request, response);改成下面的代码试试:
String encodedURL=response.encodeRedirectURL("/Report/index.jsp");
request.getRequestDispatcher(encodedURL).forward(request, response);