公司动态

springMVC定义拦截器判断用户是否为管理员

📅 2026/7/28 17:16:06
springMVC定义拦截器判断用户是否为管理员
首先是数据库的设计CREATE table tb_user( uId int(11) primary key auto_increment, uName varchar(20) not null, uPassword varchar(20) not null, uPhone varchar(30) not null, uAddress VARCHAR(100) not null, isManager int(1) default 0 -- 1:为管理员 0不为管理员 ) 我们需要一个字段来判断用户是否为管理员当数据库设计玩成后就是我们的代码了 首先创建一个类在类中定义一个根据用户名查询数据的方法 /** * 根据用户名查询数据库信息 */ RequestMapping(selectUser) public String user(Map map,String uName,String uPassword) { User user userService.findUserByName(uName); map.put(user, user); //全查 ListStudent liStudents studentService.liStudents(); map.put(liStudents, liStudents); return user/userList; } 其次我们要先定义一个自己的拦截器其中**preHandle方法**是在进入你的方法名之前进行拦截我们可以在里面处理提交乱码问题 它默认的返回值为fales我们需要把他改为truepostHandle方法是在返回页面之前执行的方法在这里写我们的主要逻辑public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView view) throws Exception { //创建map对象 MapString, Object map view.getModel(); //接收map中user的值 User user (User) map.get(user); //判断IsManager是否为1 如果时跳转到管理员界面 不是回到UserController.java中的selectUser方法中 if (user.getIsManager()1) { //跳转到管理员界面view.setViewName要跳转的页面) view.setViewName(manager/userList); } }最后我们需要在Spring.xml中定义一个拦截器!-- 配置springMVC拦截器 -- mvc:interceptors mvc:interceptor !--拦截登入请求 -- mvc:mapping path/user/selectUser/ bean classcom.hp.interceptor.LoginInter你要进那个拦截器 包名类名/bean /mvc:interceptor /mvc:interceptors其中mvc:mapping path“写的是你要拦截的方法名”/这样就成功了2019/8/26 19:32:36