filter的介绍就不说了,直接上实例:
package com.topthinking.tel.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.HttpSession;
public class AuthorityFilter implements Filter {
//FilterConfig可用于访问Filter的配置信息
private FilterConfig config;
public void init(FilterConfig config) throws ServletException {
this.config = config;
}
public void destroy() {
this.config = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//獲取Filter配置參數
String loginPage = config.getInitParameter("loginPage");
HttpServletRequest requ = (HttpServletRequest)request;
HttpSession session = requ.getSession(true);
//获取客户请求的页面
// String requestPath = requ.getServletPath();
if(session.getAttribute("userInfo") == null){
// requ.setAttribute("tip" , "您还没有登录");
requ.getRequestDispatcher(loginPage).forward(request, response);
}else{ //放行
chain.doFilter(request, response);
}
}
}
(二)配置WEB.XML
<!-- 定义Filter -->
<filter>
<!-- Filter的名字 -->
<filter-name>authority</filter-name>
<!-- Filter的实现类 -->
<filter-class>com.topthinking.tel.filter.AuthorityFilter</filter-class>
<!-- 下面1个init-param元素配置了1个参数 -->
<init-param>
<param-name>loginPage</param-name>
<param-value>/28tel/Index.jsp</param-value>
</init-param>
</filter>
<!-- 定义Filter拦截的URL地址 -->
<filter-mapping>
<!-- Filter的名字 -->
<filter-name>authority</filter-name>
<!-- Filter负责拦截的URL: -->
<url-pattern>/28tel/My/*
</url-pattern>
</filter-mapping>
分享到:
相关推荐
这些文件名暗示了教程可能涵盖Struts2拦截器、Servlet和Filter的URL模式解析、监听器(`listener`)的使用,以及更多关于`Filter`的实例和教程。 `Struts2拦截器(Interceptor)`通常与`Filter`类似,用于增强MVC框架...
4. **测试与调试**:部署应用并尝试访问受保护的资源,观察Filter是否正常工作。如果用户未登录,应被重定向到登录页面;登录后,应能正常访问受保护的页面。 在实际开发中,Filter还可以与其他组件如...
这个工具基于Java Servlet Filter机制,能够帮助开发者对URL进行重写,从而实现多种功能,比如隐藏真实路径、实现动态URL静态化、控制访问权限等。在本案例中,它被用来处理视频文件的下载请求,可能包括限制访问、...
3. **效率优化**:对于性能敏感的场景,应尽量减少 Filter 的处理时间,例如,避免在 Filter 中进行耗时的操作,或者使用异步处理来提高效率。 总结,J2EE 中的 Filter 是一个强大的工具,它可以用来增强 Web 应用...
同时,登录页面应该有链接指向被保护的资源,这样用户登录后可以访问这些资源。 4. **处理登出**:在登出时,应清除session中的用户信息,以解除登录状态。这也可以通过调用`HttpServletRequest.getSession()....
标题“Java禁止直接URL访问图片”涉及到的是网络资源保护和权限控制的问题,主要知识点包括: 1. **HTTP请求与响应**: 当用户通过浏览器或其他客户端工具输入一个URL来访问图片时,实际上是发送了一个HTTP GET...
在这个示例中,我们展示了如何利用Filter来保护资源,确保只有已登录的用户才能访问特定的页面,从而提高应用的安全性。通过熟练掌握Filter的使用,开发者能够更好地控制Web应用的行为,提供更优质的用户体验。
1. **权限验证**: 在用户访问受保护的资源前,Filter可以检查用户的登录状态或权限。 2. **数据编码**: 对请求参数进行编码,防止XSS攻击。 3. **日志记录**: 在请求和响应之间记录相关信息,便于调试和监控。 4. **...
登录过滤器用于确保只有经过身份验证的用户才能访问某些受保护的资源。这个过滤器通常会检查每个请求是否携带了有效的session,如登录标识或者token。如果用户未登录,过滤器可以重定向到登录页面,或者返回错误信息...
`<filter>`元素定义Filter的类名,而`<filter-mapping>`则指定Filter应该拦截哪些URL模式。 3. **Filter链**: 当有多个Filter配置时,它们会形成一个Filter链。请求会按照配置的顺序依次通过每个Filter的`...
本话题主要关注如何使用Java Filter来限制用户的浏览权限,确保只有经过身份验证和授权的用户才能访问特定的资源。这在构建安全的Web应用程序时至关重要。 首先,我们需要了解Java Filter的基本概念。Filter是...
-- 需要保护的资源 --> </filter-mapping> ``` 这段代码实现了对未登录用户的访问限制。当用户尝试访问需要登录的资源时,过滤器会检查用户的会话(session),如果用户未登录,则将用户重定向到登录页面。 #### 三...
在用户尝试访问受保护的资源(如Servlet)之前,Filter会检查请求中是否携带了有效的session信息。如果没有,Filter会重定向用户到登录页面;如果存在有效session,Filter则允许请求继续传递给目标Servlet。 总结来...
### JAVA项目实践:URL存在的跨站漏洞与注入漏洞解决方案 ...通过以上配置和实现,可以有效地减少XSS攻击的风险,保护应用程序的安全性。同时,还可以根据具体的应用场景和需求调整过滤逻辑,增强安全性。
防止用户在没有登陆的情况下,访问受保护资源,在web.xml文件中添加! <filter> <filter-name>RightFilter</filter-name> <filter-class>org.com.filter.RightFilter</filter-class> </filter> <filter-...
同源策略是浏览器为了保护用户信息安全而设置的一项安全规定,它禁止了一个源(Origin)的文档或脚本请求另一个源的资源。然而,随着Web应用的发展,有时我们需要在不同源之间共享数据,例如,一个运行在...
在JSP中,实现URL重写可以借助如Apache的mod_rewrite模块或者使用Java的Filter接口。Filter可以在请求被实际处理之前拦截并修改它。例如,我们可以创建一个Filter,将请求中的参数转换为路径的一部分,然后再将请求...
`filter`在权限控制中的应用是Web开发中的常见实践,它能有效拦截非法请求,保护系统资源的安全。通过编写和配置Filter,开发者可以灵活地实现各种定制化的权限策略,确保只有合法用户才能访问特定的Web资源。在实际...
下面我们将深入探讨Spring Security的核心概念、功能以及它如何处理静态资源的保护。 1. **Spring Security简介** Spring Security 是Spring生态系统中的一个组件,用于提供认证(Authentication)和授权...