package com.tnt.web.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;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class LoginCheckFilter implements Filter {
//protected Log log = LogFactory.getLog(getClass());
/**
* 登陆页面
*/
private String loginPage = "";
@SuppressWarnings("unchecked")
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpSession session = httpServletRequest.getSession();
if (session == null || session.getAttribute("user") == null) {
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + loginPage);
// httpServletRequest.getRequestDispatcher(loginPage).forward(httpServletRequest, httpServletResponse);
} else {
chain.doFilter(request, response);
}
}
public void init(FilterConfig filterConfig) throws ServletException {
this.loginPage = filterConfig.getInitParameter("loginPage");
}
public void destroy() {
}
}
这是filter类。
在web.xml中配置filter。
<!-- 用户登录检测过滤器 -->
<filter>
<filter-name>LoginCheckFilter</filter-name>
<filter-class>
com.tnt.web.filter.LoginCheckFilter
</filter-class>
<init-param>
<param-name>loginPage</param-name>
<param-value>/logon.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>LoginCheckFilter</filter-name>
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginCheckFilter</filter-name>
<url-pattern>/indexadmin.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginCheckFilter</filter-name>
<url-pattern>/right.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginCheckFilter</filter-name>
<url-pattern>/main/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginCheckFilter</filter-name>
<url-pattern>/tree/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
### WebAPI登录验证的四种方式详解 #### 一、概述 在现代Web开发中,安全性是至关重要的。对于WebAPI而言,确保用户数据的安全性尤为关键。本文档将详细介绍WebAPI登录验证的四种常见方式:**FORM身份验证、集成...
### 实现登录验证Filter 1. **创建Filter类**:首先,我们需要创建一个实现了`Filter`接口的类。在这个类中,我们将实现`doFilter()`方法,这是`Filter`的核心,用于处理请求和响应。 ```java public class ...
本文将详细讲解如何利用Filter拦截用户登录,确保只有已登录的用户才能访问特定页面。 首先,我们需要了解`Filter`的基本概念。在Java Web中,Filter是Servlet API的一部分,它可以通过实现`javax.servlet.Filter`...
Java项目中的登录验证是Web应用开发中的一个关键环节,它确保只有合法的用户才能访问受保护的资源。在这个Java项目中,登录验证涉及到多个组件,包括Servlet、Filter、DAO(数据访问对象)以及数据库交互。下面我们...
在这个场景下,我们讨论的是如何使用过滤器来实现用户登录验证的功能。下面将详细解释这一过程。 首先,我们需要了解过滤器的基本概念。在Java Web应用中,过滤器是实现了javax.servlet.Filter接口的类。它们通过在...
本教程将详细讲解`Filter`的两个主要功能:字符编码过滤和登录验证。 首先,让我们深入理解字符编码过滤。在Web应用程序中,数据的编码一致性至关重要,特别是当用户通过表单提交非ASCII字符时。`Filter`可以用于...
本文将深入探讨如何在用户登录界面实现基于Servlet的验证码功能,并结合Filter进行验证。 首先,验证码的生成通常涉及到以下几个步骤: 1. **生成随机字符串**:验证码一般由4-6个随机字母或数字组成,可以通过...
在"使用过滤器完成用户登录验证"的场景中,我们将创建一个过滤器类,该类实现了Filter接口并重写了doFilter()方法。在这个方法里,我们可以检查请求中是否有有效的登录信息,例如通过检查请求头中的session或cookie...
标题中的“检验用户登录信息(使用Filter,最终版)”是指在Web开发中,通过使用Servlet Filter技术来验证用户登录状态的一种实现方式。Filter是Java Servlet API中的一部分,它允许我们在请求到达目标Servlet或JSP...
7. **com.web.filter**:过滤器包,包含实现了Filter接口的类,用于实现请求和响应的预处理和后处理,如字符编码过滤、登录验证等。 8. **com.web.servlet**:Servlet包,通过Web.xml配置文件,实现各种服务和功能...
在这个实验中,Filter将用于检查用户的Cookie,如果找到有效的登录信息,就自动为用户登录。 Cookie是一种小型文本文件,由服务器发送到用户的浏览器,并在后续的请求中返回给服务器。它可以用来存储用户的状态信息...
View-Controller(MVC)设计模式的Web应用程序,该程序主要用于用户身份验证,它使用Java Server Pages(JSP)作为视图层技术,并且可能与SQL Server 2000数据库进行交互以处理用户登录信息。 描述进一步补充了该...
这里假设用户登录后,其用户名会被存储到会话中。 - 如果 `username` 为空或者等于空字符串,表示用户未登录,重定向到登录页面;否则继续执行链中的下一个过滤器或目标资源。 3. **销毁方法 `destroy`**:当过滤器...
在Java Web开发中,Filter(过滤器)是一个非常重要的组件,...在实际项目中,Filter常用于处理全局性的问题,如统一字符编码、登录验证、日志记录等。了解并熟练掌握Filter的使用,对于提升Java Web开发能力至关重要。
在这个"Filter使用范例--登陆验证"的主题中,我们将深入探讨如何利用Filter进行用户登录验证,以确保只有经过身份验证的用户才能访问受保护的资源。 Filter接口在`javax.servlet`包中定义,它提供了`doFilter()`...
以下是一个简单的登录验证Filter的实现步骤: 1. **创建Filter类**:继承`javax.servlet.Filter`接口并实现`doFilter()`方法。在这个方法中,我们将进行登录状态的检查。 ```java public class LoginFilter ...
过滤器(Filter)和监听器(Listener)是Java Web的重要组成部分,它们可以用于数据预处理、用户会话管理等。案例将展示如何配置和使用这两个组件,以实现如登录验证、字符编码转换等功能。 7. **Ajax与JSON** ...
-- authc:该过滤器下的页面必须验证后才能访问,它是Shiro内置的一个拦截器org.apache.shiro.web.filter.authc.FormAuthenticationFilter --> <property name="filterChainDefinitions"> /statics/**=anon ...
在这个项目中,“jsp+servlet登录验证过滤器”涉及了用户登录验证的过程,以及使用过滤器(Filter)来实现这一功能。下面将详细介绍这个主题中的相关知识点。 1. **JSP**:JSP是一种服务器端的技术,允许开发者在...
在Java编程领域,"Java登录注册列表小项目和Filter测试代码"是一个常见的实践项目,它涵盖了Web应用程序开发中的基础功能,如用户身份验证、权限控制以及数据操作。在这个项目中,开发者通常会创建一个简单的用户...