请教,当LoginServlet跳转到成功登陆页面后,如何将当前的登录用户名传递过去?

来源:1-14 阶段案例

小羊爱主

2015-09-21 12:26

想使用session对象,但是貌似它是jsp的内置对象,写入doPost后不能被resolved。有什么好的办法呢?谢谢

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		Users user=new Users();
		user.setUsername(request.getParameter("username"));
		user.setPassword(request.getParameter("password"));
		if ("admin".equals(user.getUsername()) && "password".equals(user.getPassword())){
			response.sendRedirect(request.getContextPath()+"/login_success.jsp");
			//session不能被resolved
			//session.setAttribute("username",request.getParameter("username"));
		}else{
			request.getRequestDispatcher("/login_failure.jsp").forward(request, response);
		}
	}


写回答 关注

4回答

  • _潇潇暮雨
    2015-09-22 15:17:36
    已采纳

    在Servlet中无法使用jsp内置对象,但是可以通过request.getSession()取得session啊。在jsp页面中可以使用EL表达式或者session.getAttribute()取得用户名。

    小羊爱主

    谢谢回答,request.getSession()解决了我的问题。 弱弱问下,啥是EL表达式?

    2015-09-22 15:28:49

    共 2 条回复 >

  • 鲜衣
    2015-10-14 21:13:50

    你好,我在servlet中保存session,在jsp中怎么取出呢?我是将Users的实例保存在session中:

    String username=request.getParameter("username");String password=request.getParameter("password");

    Users u=new Users();u.setUsername(username);u.setPassword(password); request.getSession().setAttribute("loginUser", u);在jsp页面中:session.getAttribute("loginUser")只能得到com.po.Users@1f1d2ce。请问题主是如何实现的?


    连宏伟HW 回复小羊爱主

    为何我使用这个,找不到这个定义的方法呢,我知道Users类中有这个方法

    2016-07-16 12:15:21

    共 4 条回复 >

  • 小羊爱主
    2015-09-22 16:27:24

    谢谢解答

  • _潇潇暮雨
    2015-09-22 15:42:30

    Jsp2.0之后提供了表达式语言(Expression Language,简称EL),可以访问标志位page(pageContext)、request、session、application中的属性内容,这样就可以在jsp页面中有很少的script代码,可以避免null的问题语。如果使用JSP的4中属性范围对应的内容,就需要使用xxx.getAttribute(属性名)来取得4种范围内的属性值,但是我们如果使用EL表达式就可以使用"{属性名}"的方式取得属性值,并且不会报错。详见http://blog.csdn.net/u010102951/article/details/45285977


JAVA遇见HTML——Servlet篇

本门课程在JSP课程的基础上,深入介绍Servlet的基础知识

160615 学习 · 1029 问题

查看课程

相似问题