package com.dm.filter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.FilterChain;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import javax.servlet.FilterConfig;
public class LoginFilter implements Filter {
String LOGIN_PAGE = "login.jsp";
protected FilterConfig filterConfig;
public void doFilter(final ServletRequest req, final ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
//
boolean isValid = true;
String uriStr = request.getRequestURI();
if (uriStr.indexOf("login.jsp") == -1
&& uriStr.indexOf("login.do") == -1
&& request.getSession().getAttribute("name") == null) {
isValid = false;
}
if (isValid) {
chain.doFilter(request, response);
} else {
response.sendRedirect(request.getContextPath()+"/login.jsp");
}
}
public void destroy() {
this.filterConfig = null;
}
public void init(FilterConfig config) {
this.filterConfig = config;
}
public void setFilterConfig(final FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
}
web.xml
<filter>
<filter-name>login</filter-name>
<filter-class>com.dm.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>login</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
在这个“servlet过滤器做的简单登陆demo”中,我们将探讨如何利用过滤器实现一个基础的登录验证系统。这个例子非常适合初学者理解和实践过滤器的用法。 1. **Servlet Filter原理**: Servlet过滤器遵循`Filter`...
总结起来,这个例子展示了如何使用`Servlet`过滤器进行登录验证,以及如何利用`session`来跟踪用户状态。`session`对象允许我们在多个请求之间持久化用户数据,这对于实现登录功能至关重要。同时,过滤器提供了一种...
在IT领域,特别是Java Web开发中,Servlet过滤器(Filter)是实现用户权限管理、登录状态验证等关键功能的重要机制之一。本文将深入探讨如何利用Servlet过滤器来验证用户是否已登录,以及如何配置过滤器以针对特定的...
本实例的目标是设计并实现一个简单的Servlet过滤器,用于检查用户的登录状态。具体来说,当用户通过正常的登录流程进入系统后,服务器会在用户的会话(Session)中存储一个表示已登录用户的对象(命名为"user")。...
在Java Web开发中,Servlet过滤器(Filter)是不可或缺的一部分,它允许开发者在请求到达Servlet之前或响应离开Servlet之后对其进行处理。Servlet过滤器是按照指定的配置顺序进行调用的,能够实现数据的预处理、后...
Servlet过滤器是Java Web开发中的一个重要组件,它在Servlet生命周期中扮演着预处理和后处理的角色。在Tomcat这样的Servlet容器中,过滤器允许开发者在请求到达Servlet之前或Servlet响应发送回客户端之后对请求和...
Servlet过滤器API是Java Servlet技术中的一个重要组成部分,它允许开发者在HTTP请求被Servlet处理之前或之后进行拦截和处理。过滤器可以用来实现多种功能,包括数据验证、安全控制、性能优化等。在这个主题中,我们...
Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在请求到达Servlet之前或者响应离开Servlet之后进行拦截处理。Servlet过滤器是基于Java的Servlet API实现的,通过实现`javax.servlet.Filter`接口并重写...
#### 二、Servlet过滤器的概念 Servlet 过滤器是一种可以在请求到达目标资源之前或响应离开目标资源之后进行处理的组件。它可以用来实现诸如登录验证、编码转换、压缩、加解密等功能。过滤器可以通过web.xml文件...
Servlet过滤器经常用于执行跨请求的公共任务,比如验证用户登录、中文乱码处理、访问地址过滤等。 在开发中,过滤器的生命周期包括实例化、初始化、过滤和销毁四个阶段。Servlet容器创建过滤器的实例,并调用其init...
Servlet过滤器是Java Web开发中的一个重要概念,它在Servlet请求处理生命周期中扮演着关键角色。过滤器(Filter)允许开发者在请求被实际处理到Servlet之前或之后进行拦截,执行一些预处理或后处理任务。本篇文章将...
这里,我们定义了一个名为`CharacterEncodingFilter`的过滤器,并将其映射到所有URL(`/*`),意味着任何请求都会经过这个过滤器。 3. 最后,部署应用并测试。现在,无论用户发送什么请求,服务器都会自动将字符...
### 用过滤器验证 #### 知识点一:Servlet过滤器的概念与作用 Servlet 过滤器(Filter)是 Java Web 开发中的一个重要组成部分,主要用于实现预处理客户端请求或后处理响应对象的功能。过滤器可以拦截用户请求,并...
如果一个过滤器决定不传递请求(比如因为验证失败),那么后续的过滤器都不会被执行。 ### 使用示例 以下是一个简单的登录检查过滤器的示例: ```java import javax.servlet.*; import java.io.IOException; ...
本实例将探讨如何使用Servlet实现一个简单的登录注册系统,而不涉及过滤器(Filter)的使用。 Servlet是Java API的一部分,它提供了一种方式来扩展Web服务器的功能,处理来自客户端(如浏览器)的HTTP请求,并返回...
1. **Servlet**:Servlet是Java编程语言中的一个接口,由Java EE规范定义,用于扩展服务器的功能。Servlet可以处理HTTP请求,并向客户端返回响应。在给定的源码中,可能包含了实现Servlet接口的类,通过`doGet`和`...
本实例“包含过滤器的一个简单登录实例”将引导我们了解如何在实际项目中运用过滤器进行用户验证,确保只有合法用户才能访问受保护的资源。 过滤器在Java Web开发中被广泛应用,它们是Servlet规范的一部分,定义在`...
我们创建一个过滤器,重写doFilter方法,在请求进入Servlet之前设置合适的字符编码。例如,对于POST请求,可以使用HttpServletRequest的setCharacterEncoding方法设置UTF-8编码,对于GET请求,可能需要修改request的...
过滤器链(Filter Chain)则是多个过滤器按照特定顺序组织起来,共同处理同一个请求或响应。本篇文章将通过一个名为"FilterChainDemo"的小型示例来探讨过滤器链的工作原理及其应用。 首先,我们来理解过滤器的基本...
// 继续传递请求到下一个过滤器或目标Servlet chain.doFilter(request, response); // 在请求离开目标Servlet之后执行的操作 System.out.println("Filter After"); } @Override public void destroy() { /...