用Filter防止用户访问一些未被授权的资源,比如一个用户未登录就不允许访问网站的某些页面,并将页面重定向到需要用户登录的页面,下面是一个相关的例子:
java 代码
- package
com.drp.util.filter;
-
- import
java.io.IOException;
-
- import
javax.servlet.Filter;
- import
javax.servlet.FilterChain;
- import
javax.servlet.FilterConfig;
- import
javax.servlet.ServletException;
- import
javax.servlet.ServletRequest;
- import
javax.servlet.ServletResponse;
- import
javax.servlet.http.HttpServletRequest;
- import
javax.servlet.http.HttpServletResponse;
- import
javax.servlet.http.HttpSession;
-
- public
class
AuthFilter
implements
Filter {
-
- public
void
destroy() {
-
- }
-
- public
void
doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
- FilterChain filterChain) throws
IOException, ServletException {
-
- HttpServletRequest request = (HttpServletRequest)servletRequest;
- HttpServletResponse response = (HttpServletResponse)servletResponse。
-
- String currentURL = request.getRequestURI();
-
- String targetURL = currentURL.substring(currentURL.indexOf("/"
,
1
), currentURL.length());
-
- HttpSession session = request.getSession(false
);
-
- if
(!
"/login.jsp"
.equals(targetURL)) {
- if
(session ==
null
|| session.getAttribute(
"user"
) ==
null
) {
- System.out.println("request.getContextPath()="
+ request.getContextPath());
- response.sendRedirect(request.getContextPath() + "/login.jsp"
);
- return
;
- }
- }
-
- filterChain.doFilter(request, response);
-
- }
-
- public
void
init(FilterConfig filterConfig)
throws
ServletException {
}
- }
然后在配置文件web.xml里添加: (请注意,过滤是在serlvet规范2.3版中初次引入的。因此,web.xml文件必须使用DTD的2.3以上版本。)
xml 代码
- <
filter
>
- <
filter-name
>
AuthFilter
</
filter-name
>
- <
filter-class
>
com.drp.util.filter.AuthFilter
</
filter-class
>
- </
filter
>
-
- <
filter-mapping
>
- <
filter-name
>
AuthFilter
</
filter-name
>
- <
url-pattern
>
*.jsp
</
url-pattern
>
//表示对所有jsp文件有效
- </
filter-mapping
>
这样用户没有登录的情况下就会转到登录页面。
分享到:
相关推荐
在这个场景中,"Filter进行权限控制"指的是使用`Filter`来实现用户访问权限的管理,确保只有登录后的用户才能访问特定的资源。下面我们将深入探讨`Filter`的工作原理以及如何实现登录控制。 `Filter`是Java Servlet...
通过以上步骤,我们可以实现一个基于RBAC的权限控制系统,利用`Filter`对用户请求进行拦截,确保只有拥有相应角色的用户才能访问特定的页面或功能。这种方式既提高了系统的安全性,也简化了权限管理的复杂度。 在...
总结来说,实现OSGi环境下的Session共享涉及了对OSGi、Karaf、Spring MVC以及Filter机制的理解和应用。通过编写并配置Filter,我们可以跨Bundle共享Session,从而使多个服务能够协同工作,保持用户状态的一致性。...
Struts2:利用 Filter 和 Session 实现访问控制和身份认证 Struts2 是一个基于 Java 语言的 Web 应用程序框架,它提供了许多功能强大且灵活的组件来帮助开发者快速构建 Web 应用程序。在 Web 应用程序中,身份认证...
【Filter控制页面的访问权限】是指在Web应用中,通过Filter(过滤器)技术来实现对用户访问特定页面的权限管理。Filter是Java Servlet API的一部分,它可以拦截HTTP请求,在请求到达目标Servlet或JSP之前进行预处理...
在本文中,我们将深入探讨如何在Spring Boot应用中使用拦截器(Interceptor)和过滤器(Filter)来处理用户的登录session。这两个组件都是Spring框架的重要部分,它们在处理HTTP请求和响应时发挥着关键作用。 首先...
Filter可以在Servlet执行前后进行预处理和后处理,从而实现数据过滤、登录验证、权限控制等多种功能。 在“javaweb实现的访问权限控制示例”中,我们主要关注的是如何利用Filter进行权限校验。通常,我们会创建一个...
总结,SpringBoot与Shiro的整合,提供了从数据库加载权限、权限动态更新和Session共享的能力,实现了安全控制与业务逻辑的解耦,提高了开发效率和系统的安全性。在具体实践中,开发者需根据项目需求进行定制化配置,...
`Filter`过滤器是Java Servlet技术中的一种机制,用于对HTTP请求和响应进行预处理和后处理,从而实现诸如权限验证、数据转换、日志记录等功能。在这个场景中,我们将探讨如何使用`Filter`来实现权限访问控制,以及...
本话题主要关注如何使用Java Filter来限制用户的浏览权限,确保只有经过身份验证和授权的用户才能访问特定的资源。这在构建安全的Web应用程序时至关重要。 首先,我们需要了解Java Filter的基本概念。Filter是...
本篇将详细探讨`filter`如何用于过滤非登录用户的权限控制,以及相关的源码实例。 一、Filter基本概念 在Java Servlet规范中,Filter是一个接口,它允许开发者在请求到达Servlet之前对其进行拦截和处理,也可以在...
Java 后台权限控制是构建安全的Web应用中不可或缺的一部分,它确保了用户只能访问他们被授权的操作和数据。在Java开发中,Apache Shiro是一个非常流行的安全框架,用于实现身份验证、授权(权限控制)、会话管理和...
本话题将详细探讨如何利用Filter来限制用户浏览特定的页面,以实现用户权限控制。 一、Filter概述 Filter是Servlet规范的一部分,它允许开发者在请求到达目标资源(如Servlet或JSP)之前和之后对请求和响应进行拦截...
在IT行业中,权限控制是系统安全的重要组成部分,尤其是在企业级应用和网站开发中。过滤器(Filter)技术常被用来实现多层权限控制,确保只有合法的用户才能访问特定的资源。本文将深入探讨如何利用过滤器实现多层...
Servlet Filter 是Java Web开发中的一个重要...通过以上讲解,你应该对使用Servlet Filter实现权限拦截有了清晰的理解。在实际项目中,结合`testServlet`等示例文件,你可以进一步实践这些概念,以加深理解并灵活应用。
"filter_权限过滤器"指的是利用过滤器来控制用户访问特定资源的权限,确保只有具有相应权限的用户才能访问敏感数据或执行特定操作。这是一种最佳实践,能够提供全面且安全的权限管理。 过滤器是Servlet规范的一部分...
通过以上分析,我们可以看出WEB应用数据权限控制是一个多层次、多技术融合的领域,它要求开发人员和系统架构师不仅要熟悉WEB技术栈和数据库操作,还要精通权限控制和安全管理。在实际开发过程中,还需要考虑到性能...
在实际集成过程中,我们需要配置Shiro的 Realm(认证和授权),SessionManager(管理session),CacheManager(使用Redis作为缓存),以及Filter Chain定义,确保请求经过正确的过滤器链。同时,需要在每个节点...
这个“Spring Security 权限控制中文API”很可能是对Spring Security框架的中文文档或指南,帮助开发者理解和使用权限控制功能。 Spring Security的核心在于保护资源、进行身份验证(Authentication)和授权...
同时,前端也可以根据Shiro返回的权限信息,动态控制页面元素的显示和隐藏,实现权限控制的前后端分离。 总的来说,Shiro为Java开发者提供了强大且易用的安全管理工具,解决了Session共享问题,并能有效地进行权限...