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...
《基于JSP的考试系统——整合Spring+MyBatis(MySQL)+Struts2的实践解析》 在IT行业中,开发一款功能完善的考试系统是许多初学者和专业开发者都会遇到的挑战。本项目“基于JSP的考试系统”采用的是业界广泛应用的...
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协同...