登录用户信息存session中

登录接口
将用户输入的用户名和密码进行验证,查询不为空,存到session中

    /**
     * 登录方法
     */
    @PostMapping("login")
    public String login(User user, HttpSession session){
        User userDB = userService.login(user);
        if(userDB!=null){
            session.setAttribute("user",userDB);
            return "redirect:/file/showAll";
        }else{
            return "redirect:/index";
        }
    }

登录进来用存在session中的值查id展示所有数据

    /**
     * 展示所有文件信息
     */
    @GetMapping("showAll")
    public String findAll(HttpSession session, Model model) {
        //在登录的session中获取用户的id
        User user = (User) session.getAttribute("user");

        //根据用户id查询有的文件信息
        List<UserFile> userFiles = userFileService.findByUserId(user.getId());
        //存入作用域中
        model.addAttribute("files", userFiles);
        return "showAll";
    }

UserService

package com.baizhi.service;

import com.baizhi.entity.User;

public interface UserService {

    User login(User user);
}

UserServciceImpl

package com.baizhi.service;

import com.baizhi.dao.UserDaO;
import com.baizhi.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@Service
@Transactional
public class UserServciceImpl  implements  UserService{

    @Autowired
    private UserDao userDao;

    @Override
    @Transactional(propagation = Propagation.SUPPORTS)
    public User login(User user) {
        return userDao.login(user);
    }
}

UserDao

package com.baizhi.dao;

import com.baizhi.entity.User;

public interface UserDao {

    User login(User user);
}

UserDaoMapper.xml

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.baizhi.dao.UserDAO">

    <!--login-->
    <select id="login" parameterType="User" resultType="User">
        select id,username,password
        from t_user
        where username=#{username}
        and password = #{password}
    </select>

</mapper>
  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: ,可以通过在服务器端设置Session来实现。在用户登录成功后,服务器会生成一个Session ID,作为该用户的唯一标识,并将该ID储在Session。接下来,每次用户请求服务器时,服务器都会检查用户请求是否包含Session ID,如果有,则从Session获取该用户信息进行处理。在用户退出登录Session过期时,服务器会删除对应的Session信息。在Java,可以使用HttpSession类来实现Session管理。 ### 回答2: Session是一种在服务器端用户信息的机制。在用户成功登录后,服务器会在内创建一个唯一的Session对象,并为该用户分配一个唯一的Session ID。用户登录信息会被储在该Session对象Session通过使用Cookie来维护与用户的关联,当用户登录成功后,服务器会将Session ID以Cookie的形式发送到客户端的浏览器。浏览器在下次请求服务器时,会自动将该Cookie带上,从而服务器可以根据Session ID来找到对应的Session对象,从而获取用户登录信息储在Session用户信息可以包括用户的身份标识、用户名、权限等。这些信息用户每次发送请求时都可以被服务器获取和使用,从而实现对用户的身份认证和权限控制。比如,在用户访问某个需要登录权限的页面时,服务器可以通过Session用户信息判断用户是否具有访问权限。 Session的数据储在服务器端,相对于客户端的Cookie来说,更加安全。因为用户无法直接修改Session的数据,只能通过与服务器的交互来操作。 需要注意的是,Session用户退出登录后会被销毁,或者在一定时间内没有活动时会被服务器自动清理。因此,Session具有一定的时效性和安全性,可以有效地保护用户登录信息。 ### 回答3: Session 是一种在服务器端用户信息的机制。当用户在网站登录成功后,服务器会为该用户创建一个对应的 Session 对象,并在该对象用户的相关信息。这些信息可以包括用户用户名、角色、权限等。 Session储方式可以是内、数据库或者文件,具体使用哪种方式取决于服务器的配置。当用户进行其他操作时,如访问其他页面或提交表单,服务器会通过 session ID 来识别该用户,并从 Session 储的位置获取相应的用户信息。 由于 Session储在服务器端的,相比于储在客户端的 Cookie,它更加安全,因为用户无法直接修改其信息。而且,由于储在服务器端的 Session 是通过 session ID 来识别用户的,因此浏览器即使被关闭,用户下次重新访问网站时仍然可以保持登录状态,不需要重新进行登录操作。 然而,使用 Session在一些问题。首先,如果网站访问量很大,Session 对服务器的内消耗是比较大的,因为每个登录用户对应都有一个 Session 对象。此外,如果用户在某些情况下没有主动退出,并且 Session 超时时间较长,那么在这段时间内,即使用户已经离线,服务器仍然需要维护用户Session 对象,增加了服务器的负担。 为了解决这些问题,可以采用一些方法,如定期清理过期的 Session、将 Session 储到数据库、使用集群部署等措施,来提高系统的性能和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值