SpringMVC前端获取登陆用户姓名

来源:互联网 发布:外卖订餐系统源码 编辑:程序博客网 时间:2024/05/16 07:57

有时候用户登陆的时候,前端页面需要显示欢迎xx登陆,或者链接跳转的时候需要传过去用户的id等一系列的信息。


这时候我们需要在控制层(Controller)将用户信息放入session。


代码如下:

@RequestMapping("/login")    public String login(String username , String password,HttpSession httpSession){        System.out.println(username);        if(adminBiz.login(username, password)){        Admin admin = new Admin();        admin.setUsername(username);        httpSession.setAttribute("admin", admin);            return "/success";        }else{            return "/error";        }    }

以上代码放入session的只是登陆用户的姓名,登陆成功后会跳转到success.jsp页面,我们需要在页面上获取后台放入session中的username


success.jsp代码如下:


<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>提示页面</title></head><body>欢迎用户 ${admin.username}!</br>登陆成功!</body></html>
此页面代码需要注意的是,必须要在页面中加入

<%String path = request.getContextPath();String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()+ path + "/";%>
这里我们用到了EL表达式(${})来获取session中的username


运行后台程序,输入用户名(test)和密码(123),登陆成功后显示的效果如下:


-----------------------------------------------------------------------------------------------------------------------------

以上代码只是将登陆用户的username放入了session中,那么如果我们要获取登陆用户的全部信息怎么办呢?


首先修改Dao层代码,接口AdminDao代码如下:

//管理员登陆public Admin login(String username, String password);//将类型定义为Admin

AdminDaoImpl代码如下:

// 管理员登陆public Admin login(String username, String password) {      //查询结果用admin接收,并返回admin   Admin admin = (Admin) sessionFactory.getCurrentSession().createQuery("from Admin a where a.username=:i and a.password=:p").setParameter("i", username).setParameter("p", password).uniqueResult();return admin;}

AdminBiz接口代码如下:

//管理员登陆public  Admin login(String username,String password);

AdminBizImpl代码如下:

// 管理员登陆@Overridepublic Admin login(String username, String password) {Admin admin = adminDao.login(username, password);//接收数据层返回的adminreturn admin;//返回admin到控制层}
AdminController代码如下:

//管理员登陆    @RequestMapping("/login")    public String login(String username , String password,HttpSession httpSession){        Admin admin = adminBiz.login(username, password);//接收业务层返回的admin        httpSession.setAttribute("admin", admin);//将admin放入session        return "/success";//返回success.jsp           }

success.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>提示页面</title></head><body>用户名:${admin.username}</br>用户ID:${admin.id}</br>用户密码:${admin.password }登陆成功!</body></html>

输入用户名和密码之后登陆成功跳转到success.jsp页面,效果如下:


详细代码链接






0 0
原创粉丝点击