`

filter完成统一验证

    博客分类:
  • jsp
阅读更多
web.xml配置
<filter>
		<filter-name>AuthFilter</filter-name>
		<filter-class>com.hugui.drp.util.filter.AuthFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>AuthFilter</filter-name>
		<url-pattern>*.jsp</url-pattern>
	</filter-mapping>
	
	<filter-mapping>
		<filter-name>AuthFilter</filter-name>
		<url-pattern>/servlet/*</url-pattern>
	</filter-mapping>


AuthFilter.java

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() {
		// TODO Auto-generated method stub

	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		HttpServletRequest req = (HttpServletRequest)request;
		HttpServletResponse  resp = (HttpServletResponse)response;
		System.out.println(req.getRequestURI());
		System.out.println(req.getRequestURL());
		String requestURI = req.getRequestURI().substring(req.getRequestURI().indexOf("/", 1), req.getRequestURI().length());
		if(!"/login.jsp".equals(requestURI)){
			//如果session没登录
			HttpSession session = req.getSession(false);
			if(session == null || session.getAttribute("user_info") == null){
				resp.sendRedirect(req.getContextPath() + "/login.jsp");
				return ;
			}
		}
		//继续访问其他资源
		chain.doFilter(req, resp);
		

	}

	public void init(FilterConfig filterConfig) throws ServletException {
		// TODO Auto-generated method stub

	}

}

分享到:
评论

相关推荐

    MVC3 Filter 验证 AOP 实例

    在MVC3中,验证通常是通过数据注解(Data Annotations)或者使用IValidatableObject接口来完成的。数据注解允许你直接在模型属性上添加验证规则,例如`Required`、`StringLength`等。IValidatableObject接口则允许你...

    MVC使用Controller代替Filter完成登录验证(Session校验)学习笔记5

    然而,随着技术的发展,出现了一种更为简单和高效的方法,即利用Controller的生命周期来完成登录验证。 在介绍使用Controller替代Filter之前,我们先简要了解下Filter的使用方式。在MVC中,可以创建一个继承自`...

    Servlet之Filter深入讲解及实例研究

    Filter(过滤器)允许开发者在请求到达目标Servlet之前或之后对请求和响应进行处理,提供了诸如数据验证、日志记录、字符编码转换等实用功能。本篇深入讲解将探讨Filter的工作原理、配置方式以及实际应用。 1. **...

    Filter过滤器的概念和使用

    Filter还可以在请求完成后对响应进行处理。 ### Filter过滤器的使用 下面详细介绍几种典型的Filter应用场景: #### 1. 统一全站资源编码 为了确保所有页面使用相同的字符集编码,可以通过Filter来统一设置。这样...

    servlet filter

    这意味着,你可以创建多个Filter,每个Filter都有不同的职责,共同协作完成复杂的功能。 在实际开发中,Filter常常用于实现以下功能: 1. **安全控制**:过滤非法请求,进行身份验证和权限检查。 2. **日志记录**:...

    过滤器验证用户是否已经登录

    用户首次登录系统后会在 session 对象中留下它的标识,可以利用这个标识来完成各个 JSP 页面的用户身份验证。 知识点2: 实现用户身份验证的技术要点 使用 Servlet 过滤器实现 JSP 页面中用户身份验证,需要实现 ...

    统一身份认证对外文档

    当用户通过统一身份认证系统完成认证后,CAS会返回一个票据(Ticket),客户端需要正确处理并利用这个票据进行后续的认证验证操作。具体可以通过以下方式获取CAS返回的信息: 1. **监听登录成功事件**:在应用程序...

    tomcat、struts2、servlet Filter(过滤器) 工作原理

    Action执行完业务逻辑后,可能需要通过Filter来格式化响应数据,比如添加统一的头部信息。整个过程中,Filter起到了拦截、转换和修饰请求和响应的重要作用。 总的来说,理解Tomcat、Struts2和Servlet Filter的工作...

    Filter 作为控制器的 MVC

    完成预处理后,Filter会将请求传递给下一个Filter或直接转发到控制器。控制器处理完请求后,Filter还可以对响应进行修改,比如添加统一的响应头信息。 7. **Filter在安全控制中的应用** - Filter常用于实现登录...

    Java EE中Filter技术的研究与应用.pdf

    总结来说,Java EE中的Filter技术是处理Web请求和响应的重要工具,它通过提供一种统一的拦截机制来增强和优化Web应用的性能和安全性。掌握好Filter技术的使用,不仅可以减少重复编码的工作,还可以提升开发效率,...

    Java EE中Filter技术的研究与应用.zip

    Filter的配置通常在web.xml文件中完成,包括定义Filter类、设置过滤路径和Filter链的顺序。也可以使用Java-based配置或者注解方式来配置Filter。 5. **Filter的应用场景** - **权限控制**:Filter可以检查用户...

    jsp中Filter类实现过滤器功能

    在Java Web开发中,`Filter`是一种常用的技术,它可以对请求和响应进行预处理或后处理,常用于执行一些通用的操作,例如权限验证、编码统一设置、敏感词过滤等。本文主要探讨如何使用`Filter`来实现敏感词过滤功能。...

    Java实训教程 Java软件开发实战 web开发技术 第5章 filter 共23页.pptx

    - **统一身份验证**:在所有请求进入系统前进行身份验证。 - **日志记录**:记录用户的请求细节,方便后续分析。 - **数据过滤**:过滤用户提交的数据,防止SQL注入等安全问题。 - **格式转换**:如将上传的图片转换...

    filter相关资料

    Filter的主要工作是通过实现`javax.servlet.Filter`接口或继承`javax.servlet.Filter`类来完成的。Filter可以配置在web.xml文件中,并且可以通过`@WebFilter`注解来指定其拦截的URL模式。 #### 三、Filter的应用...

    Java的Filter的使用

    一般用于完成的功能有登录验证、统一编码处理、敏感字符过滤等等。 2、Filter的定义 定义步骤: 定义一个类,实现接口Filter 复写方法 配置拦截路径:在 web.xml 中配置 或者 使用注解(推荐) 使用注解方式 @Web...

    AOP_Filter

    在这个示例中,`DemoActionAttributeFilter`继承自`ActionFilterAttribute`,并通过覆盖`OnActionExecuted`方法,在Action执行完成后执行自定义的逻辑。同时,还可以通过覆盖`OnActionExecuting`方法来在Action执行...

    Automated Electronic Filter Design

    标题“Automated Electronic Filter Design”暗示了本书的内容集中在如何利用自动化工具和编程方法实现电子滤波器设计的过程。自动化设计不仅能够简化复杂的设计流程,提高设计效率,而且能够帮助设计师快速迭代设计...

    shiro 单点登录.docx

    它实现了 `AuthenticationToken` 接口,其中 `getPrincipal()` 返回用户名,`getCredentials()` 返回 null,因为 CAS 已经完成了身份验证。 ```java public class TrustedSsoAuthenticationToken implements ...

    SpringCloud-使用路由网关统一访问接口示例代码.zip

    4. 安全与认证:Zuul也可以用于实现权限验证,例如,你可以集成Spring Security来实现基于OAuth2的认证,只允许经过身份验证的用户访问特定的微服务。 5. 测试与运行:完成以上配置后,启动Spring Boot应用,通过`...

    spring-gateway实现登录验证码校验的代码,百分百可用

    这个方案不仅提高了系统的安全性,还保证了用户体验,因为所有验证都在网关层完成,无需向各个微服务传递额外的验证负担。通过这种方式,我们可以更好地保护微服务架构中的关键资源,防止未授权访问。

Global site tag (gtag.js) - Google Analytics