解决JSP无法使用session.getAttribute()

概述,IDEA项目JSP页面无法使用内置session对象的getAttribute()方法。

项目中已经导入了jsp-api.jar和servlet-api.jar,用户在登录页面当中登录成功之后将用户对象存入session中,方便后面展示用户的相关信息。但是遇到一个问题,无法直接调用JSP内置的session对象的getAttribute()方法获取用户。具体是什么原因也不知道,但是解决方法如下:

1. 登录页面,当用户登录成功之后会跳转到list.jsp页面中。

// 获取用户名
String username = request.getParameter("username");
String password = request.getParameter("password");
String sql = "select id, username, password from t_user where username = ? and password = ?";
// 执行sql并查询用户
User user = DBUtils.query(User.class, sql, username, password);
if (user != null){
    // 获取或者创建用户session,这里要求一定要获取到用户的session,如果没有会自动创建一个session对象。
    HttpSession session = request.getSession();
    // 将用户信息存储到session当中
    session.setAttribute("user", user);
    // 成功查询到用户时跳转到用户列表页面
    response.sendRedirect(request.getContextPath()+"/dept/list");
} else {
    // 没有查询到用户,让用户重写输入用户名与密码
    response.sendRedirect(request.getContextPath()+"/login_fail.jsp");
}

2. 在jsp中展示登录显示“欢迎:xxx”用户,代码如下:

<body>
    <h3>欢迎:<%=session.getAttribute("user")%></h3>
</body>

这里并不能直接通过内置对象session.getAttribute()方法取出在登录页面中存入session域中的用户。

3. 解决以上问题

在list.jsp页面中使用request.getSession()方法获取一个session对象;然后在取出session域当中的数据。

<%--从session中取出user--%>
<%
    User user = (User)request.getSession().getAttribute("user");
%>
<body>
    <h3>欢迎:<%=user.getUsername()%></h3>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值