1、实现用户登录功能;
通过session来实现用户登录功能。在用户登录时,将用户的相关信息放在HttpSession对象用,其中HttpSession对象可以通过HttpServletRequest的getSession方法获得。同时,HttpSession对象对应Jsp内置对象session,在jsp页面中也可以通过session来访问,如通过jstl标签库来访问session中的内容:
<c:if test="${sessionScope.username == null}"> <p class="navbar-text navbar-right"> <a href="./getLoginPage" class="navbar-link">登录</a></p> </c:if>
通过判断session中的username是否为null,来决定是否显示标签p。
登录功能实现代码;
@RequestMapping(value="/login", method=RequestMethod.POST) public String login(HttpServletRequest request, User user){ if(userService.validateUser(user)){ //验证用户名、密码是否匹配 request.getSession().setAttribute(CrazySnailConstants.USER, user.getEmail()); //若匹配,则存放到session中 return "index"; } request.getSession().setAttribute("errormsg", "邮箱、密码不匹配,请重新输入"); return "login"; //登录失败,返回登录页面 }
注:session数据是放在服务器上的,因而每次重新启动Tomcat时,session数据会被清空,需要重新登录。
2、通过Filter实现用户权限控制;
通过在web.xml中配置Filter来对特定的用户请求进行过滤,判断当前session中是否存在用户登录的相关数据,若存在相关数据,则允许访问;否则提示用户登录。
另外,tomcat默认配置中,session的默认有效期为30分钟,可通过查看apache-tomcat-7.0.53\conf\web.xml进行查看。也可以通过在web.xml中通过<session-config>来配置session的有效期。
<session-config> <session-timeout>30</session-timeout> <!-- 时间单位为分钟 --> </session-config>
tomcat的会话超时可以在多个级别上设置:tomcat实例级别、Web应 用级别、servlet级别以及运行时Context代码级别。较低级别的设定会覆盖较高级别的设定。一般常用的是在前面两个级别上设置,分别在 /conf/web.xml和/webapps/yourapp/WEB-INF/web.xml。
权限控制实现:
首先,过滤器类的实现;
package com.crazysnail.filter; public class AuthenFilter implements Filter{ private static Logger logger = Logger.getLogger(AuthenFilter.class); @Override public void destroy() { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpServletRequest = (HttpServletRequest) request; if(httpServletRequest.getSession().getAttribute(CrazySnailConstants.USER)!=null){ //判断session中是否存在用户登录的相关数据 chain.doFilter(request, response); }else{ httpServletRequest.getRequestDispatcher("./loginfail").forward(request, response); //若不存在,则提示用户登录失败 } } @Override public void init(FilterConfig arg0) throws ServletException { } }
自定义过滤器类时,需要实现Filter接口,其中过滤机制的实现是在doFilter方法中。
其次,在web.xml中添加过滤器配置;
<!-- 用户权限控制 --> <filter> <filter-name>authenFilter</filter-name> <filter-class>com.crazysnail.filter.AuthenFilter</filter-class> </filter> <filter-mapping> <filter-name>authenFilter</filter-name> <url-pattern>/user/*</url-pattern> </filter-mapping>
该过滤器,对URL路径中包含/user/的路径进行了过滤,进行权限验证,进而实现简单的权限控制功能。
相关推荐
【权限管理系统SpringMvc+Spring+Mybatis整合升级版】是一个基于三大主流Java技术栈——SpringMVC、Spring和MyBatis构建的企业级权限管理系统的升级版本。这个系统旨在提供高效、安全、可扩展的用户权限控制,适用于...
同时,安全方面可能采用Spring Security进行权限控制,保护用户数据的安全。 总的来说,"基于Spring Boot+MyBatis的CRM客户管理系统"是一个全面的实践案例,它涵盖了后端开发的多个重要方面,包括框架集成、数据库...
本系统采用主流的Java开发框架——Spring、SpringMVC和MyBatis,结合MySQL数据库,构建了一个功能完善的OA考勤管理系统。 首先,Spring作为核心框架,负责管理应用中的对象,提供了依赖注入(DI)和面向切面编程...
本文将深入探讨如何使用Spring和Mybatis这两个强大的Java框架,结合MySQL数据库,构建一个完整的图书管理系统——ssm.zip。这个系统不仅展示了Spring和Mybatis的集成应用,还体现了数据库设计和业务逻辑处理的实践。...
在本项目中,我们使用了经典的Java Web开发框架——Spring、SpringMVC和MyBatis,结合MySQL数据库,构建了一个完整的酒店管理系统。这个系统旨在帮助酒店进行日常运营,包括客房管理、预订管理、客户信息管理等多个...
本项目——“基于Servlet+Spring+Mybatis的客户关系管理系统”是一个完整的解决方案,适用于毕业设计、课程设计或个人学习提升。下面将详细解析这个系统的架构和关键技术。 首先,让我们关注核心技术栈。Servlet是...
在这个“apache shiro整合struts2+spring+mybatis简单demo”中,我们将探讨如何将Shiro与三个流行的Java开发框架——Struts2、Spring和MyBatis进行集成,构建一个完整的安全管理体系。 首先,Struts2是一个基于MVC...
本系统——“基于Spring+Mybatis+AmazeUI+MySQL实现的毕业设计论文管理系统”就是这样一套高效、实用的解决方案。该系统充分利用了Spring的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)特性,...
在这个项目中,我们探讨的是如何利用三大主流Java Web开发框架——SpringMVC、Spring和MyBatis,来构建一个完整的网络电影投票系统。这个系统允许用户浏览电影信息,对喜欢的电影进行投票,并查看实时的电影投票排名...
【SpringMVC精品资源——基于SpringMVC+Spring+MyBatis构建的Java博客系统】 在Java Web开发领域,SpringMVC、Spring和MyBatis是三个非常重要的框架,它们一起构建了强大的后端开发解决方案。SpringMVC作为Spring...
《SpringMVC精品资源——深度解析spring+springmvc+mybatis+shiro整合DEMO》 在现代Web应用开发中,Spring框架以其强大的功能和高度的灵活性,成为了Java开发者首选的后端技术栈。本资源包是针对SpringMVC、Spring...
SSM框架,即Spring、SpringMVC和...这个"SpringMVC精品资源-- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)"压缩包可能包含了从基础概念到实战示例的全面教程,对于学习和提升SSM框架的整合应用大有裨益。
本项目“基于Spring+SpringMVC+MyBatis搭建的学生信息管理系统”采用Java技术栈,集成了三大主流框架——Spring、SpringMVC和MyBatis,提供了稳定且高效的解决方案。 首先,Spring框架作为基础,其核心功能包括依赖...
SSM框架是Java Web开发中常用的三大组件——SpringMVC、Spring和Mybatis的集成,它们各自负责不同的职责,共同构建了一个高效、灵活的后端架构。Maven作为项目管理和构建工具,使得SSM项目的构建和依赖管理变得更加...
这个项目的核心在于将三个主要的Java框架——Spring、Mybatis和Struts2——有效地集成在一起,以提供稳定、高效的服务。 1. **Spring框架**:Spring是Java企业级应用的基石,它提供了一个全面的编程和配置模型,...
Java基于SSM(Spring+SpringMVC+MyBatis)在线租房系统是一个综合性的Web应用程序,它利用了Java生态系统中最流行的三大框架——Spring、SpringMVC和MyBatis,为用户提供了一个便捷的在线房源查找、发布和管理平台。...
本项目实例——"spring3 mvc + mybatis + jquery easyui例子",就是这样一个典型的案例,它利用Spring3 MVC作为后端MVC框架,MyBatis作为持久层解决方案,jQuery EasyUI作为前端界面库,共同打造了一个基础的用户、...
例如,Spring Security可以用于实现用户的登录验证和权限控制;全局异常处理器可以统一处理系统运行时抛出的异常;而日志库如Log4j或Logback则用于记录系统运行情况,便于后期排查问题。 总之,这个工厂新闻管理...
《OA协同办公与管理系统开发详解——基于Spring+SpringMVC+Mybatis+Shiro+JqueryEasyUI》 协同办公系统是现代企业信息化建设的重要组成部分,它能够提高工作效率,优化工作流程,实现信息共享。本项目以“OA协同...
《校内点餐系统——基于Spring、SpringMVC、Mybatis和Shiro的实现》 在信息化时代,校园生活中的方方面面都在逐步实现数字化,其中,校内点餐系统的出现极大地便利了师生们的用餐体验。本项目名为“校内点餐系统”...