import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
import com.gvninc.utils.StringUtils;
/**
* 登录验证过滤器 <br>
* Author:BluesLee <br>
* CreateDate:2008-6-21 <br>
* Modifier:BluesLee <br>
* ModifyDate:2008-6-21 <br>
* Version:1.0 <br>
* Copyright(c)2008 深蓝工作室 <br>
* All right reserved. <br>
*
*/
public class LoginRightFilter implements Filter {
private Logger logger = Logger.getLogger(this.getClass());
/**
* 未登陆时跳转目标页面
*/
private static String FORWARD = "/login.jsp";
/**
* 登录验证过滤器初始化 <br>
* Author:BluesLee <br>
* CreateDate:2008-6-21 <br>
* Modifier:BluesLee <br>
* ModifyDate:2008-6-21 <br>
* Version:1.0 <br>
*
* @param filterConfig
* @throws ServletException
*/
public void init(FilterConfig filterConfig) throws ServletException {
String forward = filterConfig.getInitParameter("forward");
StringUtils util=new StringUtils();
if (util.isNotNullStr(forward)) {
LoginRightFilter.FORWARD = forward;
}
}
/**
* 登录验证过滤 <br>
* Author:BluesLee <br>
* CreateDate:2008-6-21 <br>
* Modifier:BluesLee <br>
* ModifyDate:2008-6-21 <br>
* Version:1.0 <br>
*
* @param servletRequest
* @param servletResponse
* @param filterChain
* @throws IOException
* @throws ServletException
*/
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
HttpSession session = request.getSession(true);
Object user = session.getAttribute("user");
if (user != null) {
filterChain.doFilter(servletRequest, servletResponse);
} else {
logger.warn("用户未登陆,请先登陆!");
String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort() + request.getContextPath() + LoginRightFilter.FORWARD;
StringBuffer scriptString=new StringBuffer();
scriptString.append(" <script>\n\r");
scriptString.append("self.top.location.href=\""+url+"\"\n\r");
scriptString.append(" </script>\n\r");
response.getOutputStream().print(scriptString.toString());
}
}
public void destroy() {
}
}
分享到:
相关推荐
在这个项目中,“jsp+servlet登录验证过滤器”涉及了用户登录验证的过程,以及使用过滤器(Filter)来实现这一功能。下面将详细介绍这个主题中的相关知识点。 1. **JSP**:JSP是一种服务器端的技术,允许开发者在...
在这个场景下,我们讨论的是如何使用过滤器来实现用户登录验证的功能。下面将详细解释这一过程。 首先,我们需要了解过滤器的基本概念。在Java Web应用中,过滤器是实现了javax.servlet.Filter接口的类。它们通过在...
在这个“servlet过滤器做的简单登陆demo”中,我们将探讨如何利用过滤器实现一个基础的登录验证系统。这个例子非常适合初学者理解和实践过滤器的用法。 1. **Servlet Filter原理**: Servlet过滤器遵循`Filter`...
以下是一个简单的登录验证过滤器示例: ```java public class LoginFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws...
SSM(Spring、SpringMVC、MyBatis)框架是Java Web开发中常见的技术栈,其在处理用户请求时,通常会用到过滤器(Filter)进行预处理,以实现如登录验证等功能。本篇文章将深入讲解如何在SSM项目中通过过滤器实现登录...
在本例中,要实现一个简单的登录验证过滤器,可以阻止未登录用户访问除了登录页面以外的其他后台管理页面。通过实现javax.servlet.Filter接口,我们创建了一个LoginFilter类。这个过滤器会在每个请求到达目标页面...
总的来说,.NET MVC的授权过滤器是实现用户登录验证的关键组件。通过自定义这个过滤器,我们可以灵活地控制应用程序的访问权限,保证系统的安全性。同时,结合不同的身份验证策略,可以满足各种应用场景的需求。
过滤器验证用户是否已经登录 在基于 JSP 页面系统设计开发中,经常有一批页面需要对用户的身份进行验证,只有合法的用户才可以访问这些页面。为了解决 JSP 页面用户身份验证的问题,可以使用 Servlet 过滤器对 JSP ...
在给定的代码示例中,我们看到了一个名为`RightFilter`的过滤器实现,其主要逻辑如下: 1. **初始化**:`RightFilter`实现了`Filter`接口,因此必须实现`init()`方法,但在这个例子中,`init()`方法为空,表明没有...
本示例讲解了如何使用JSP和Servlet来实现一个登录验证过滤器,确保只有已登录用户才能访问特定的受保护资源。 1. **创建项目结构** 首先,我们需要创建一个Dynamic Web Project,这是Java Web应用的基础。在这个...
在实现用户登录验证过滤器时,通常会涉及以下几个关键点: - **存储用户状态**:登录成功后,将用户信息(如token)存储在session或cookie中。 - **过滤器逻辑**:在每个受保护的路由前,检查请求头或请求体中是否...
总结,"jsp登录验证(含过滤器)"是一个常见但关键的Web应用安全实践。通过过滤器,我们可以确保只有经过验证的用户才能访问受保护的资源,同时利用会话管理来跟踪用户的登录状态。这不仅增强了安全性,也提供了更好...
首先,我们需要创建一个实现了`Filter`接口的类,并在`doFilter()`方法内实现用户登录验证的逻辑。 ```java public class LoginFilter implements Filter { @Override public void doFilter(ServletRequest ...
比如说:在一个学校的教育管理系统中,你想看到该学校的课程信息MyClassInfor.jsp,必须先登录验证通过才能访问站内的资源,如果你直接访问MyClassInfor.jsp这个页面,那么系统一般会跳转到登录页面让你去登录。...
Servlet 过滤器(Filter)是 Java Web 开发中的一个重要组成部分,主要用于实现预处理客户端请求或后处理响应对象的功能。过滤器可以拦截用户请求,并对请求进行预处理(如设置编码、登录验证等),也可以在服务器...
而`过滤器(Filter)`是Servlet API的一部分,它提供了一种机制来拦截请求和响应,实现诸如登录验证、字符编码转换、性能监控等功能。在这个场景中,我们关注的是使用过滤器进行登录验证,以及如何利用`session`来...
4. **过滤器链的传递**:在完成验证后,根据验证结果决定是否继续调用过滤器链中的下一个过滤器。如果用户合法,调用`FilterChain.doFilter(request, response)`,将请求传递给下一个过滤器或目标Servlet处理;如果...
本实例“包含过滤器的一个简单登录实例”将引导我们了解如何在实际项目中运用过滤器进行用户验证,确保只有合法用户才能访问受保护的资源。 过滤器在Java Web开发中被广泛应用,它们是Servlet规范的一部分,定义在`...
描述中提到的"实现一个登陆界面",表明了过滤器可能被用作验证用户登录状态的工具。 Servlet过滤器是基于Java的Servlet API实现的,主要通过实现`javax.servlet.Filter`接口来创建。`Filter`接口定义了三个核心方法...
这个压缩包可能包含了一个示例项目,展示了如何在SpringBoot中配置和使用过滤器或拦截器进行登录验证。你可能需要解压并导入到IDE中,按照提供的说明运行和测试,以便更好地理解和学习这个功能。 通过深入理解这些...