要对后台管理文件夹下的所有管理页面进行过滤,阻止未登录的用户访问这些页面,在操作中出现了重定向死循环,经过思考,最终找到了解决办法,现在把代码贴出来。
Filter过滤器类
package dsh.bikegis.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
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 LoginCheckFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
HttpSession session = req.getSession(true);
// 从session里取的用户名信息
String username = (String) session.getAttribute("userName");
String uri = ((HttpServletRequest) request).getRequestURI();
// 判断如果没有取到用户信息,就跳转到登陆页面
if (username != null || !("".equals(username))|| uri.endsWith("index.html") ) {
chain.doFilter(request, response);
} else {
// 跳转到登陆页面
RequestDispatcher dispatcher = request.getRequestDispatcher("index.html");
dispatcher.forward(request, response);
}
}
public void destroy() {
}
}
web.xml配置过滤器:
<filter>
<filter-name>yes</filter-name>
<filter-class>dsh.bikegis.filter.LoginCheckFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>yes</filter-name>
<url-pattern>/manage/*</url-pattern>
</filter-mapping>
//登錄驗證
public String loginUser(){
if(this.us.getUser(user)!=null){
ActionContext.getContext().getSession().put("userName",user.getUsername());
return ActionSupport.SUCCESS;
}
this.errMesg="密碼或者用戶名錯誤,請重新輸入!";
return ActionSupport.ERROR;
}
其中登录验证为 struts2中的Action,前台登录页面访问这个Action,成功的话就把用户名放入session中;在Filter中获得session中存放的字符串,如果不为空,或者是登录页面(此处为index.html)的话则验证成功,就放行,让其具有访问manage目录下的所有文件。否则跳转到index.html
分享到:
相关推荐
在Web开发中,验证登录是确保用户安全性的重要环节。这里我们关注的是如何使用`Filter`来实现这个功能。`Filter`是Java Servlet API中的一个重要组件,它允许我们在请求到达目标Servlet之前或之后对请求和响应进行...
本文将详细讲解如何利用Filter拦截用户登录,确保只有已登录的用户才能访问特定页面。 首先,我们需要了解`Filter`的基本概念。在Java Web中,Filter是Servlet API的一部分,它可以通过实现`javax.servlet.Filter`...
在这个场景下,我们讨论的是如何使用过滤器来实现用户登录验证的功能。下面将详细解释这一过程。 首先,我们需要了解过滤器的基本概念。在Java Web应用中,过滤器是实现了javax.servlet.Filter接口的类。它们通过在...
在这个实验中,Filter将用于检查用户的Cookie,如果找到有效的登录信息,就自动为用户登录。 Cookie是一种小型文本文件,由服务器发送到用户的浏览器,并在后续的请求中返回给服务器。它可以用来存储用户的状态信息...
标题中的“检验用户登录信息(使用Filter,最终版)”是指在Web开发中,通过使用Servlet Filter技术来验证用户登录状态的一种实现方式。Filter是Java Servlet API中的一部分,它允许我们在请求到达目标Servlet或JSP...
在"使用过滤器完成用户登录验证"的场景中,我们将创建一个过滤器类,该类实现了Filter接口并重写了doFilter()方法。在这个方法里,我们可以检查请求中是否有有效的登录信息,例如通过检查请求头中的session或cookie...
本文将深入探讨如何在用户登录界面实现基于Servlet的验证码功能,并结合Filter进行验证。 首先,验证码的生成通常涉及到以下几个步骤: 1. **生成随机字符串**:验证码一般由4-6个随机字母或数字组成,可以通过...
本文将深入探讨如何使用Filter实现登录权限验证,确保只有已登录的用户才能访问特定的受保护资源。 首先,我们来看一下标题和描述中提到的核心概念——Filter登录权限验证。这是通过Filter来检查用户是否已经登录,...
在这个"Filter使用范例--登陆验证"的主题中,我们将深入探讨如何利用Filter进行用户登录验证,以确保只有经过身份验证的用户才能访问受保护的资源。 Filter接口在`javax.servlet`包中定义,它提供了`doFilter()`...
为了能够使用 Servlet 过滤器实现用户对 JSP 页面访问的合法性验证,需要根据用户登录号和密码等与数据库中的信息相比较,若能匹配成功,则是用户登录成功,就用 session 对象存储该用户的标识。 知识点4: Servlet ...
通过使用过滤器(Filter),可以在请求到达目标资源(如Servlet或JSP页面)之前进行处理,例如实现登录状态检查、权限验证等功能。下面我们就通过分析一个具体的示例代码来详细了解如何使用JSP Filter过滤器来判断...
这个项目展示了如何结合Servlet、Filter和DAO模式来实现一个安全的登录验证系统,同时利用Cookie和Session管理用户状态。理解并掌握这些组件和流程对于构建任何Web应用程序的安全基础至关重要。
在登录验证的场景下,Filter的主要任务是在用户访问受保护的页面之前检查用户是否已经登录。如果用户未登录,我们可以重定向他们到登录页面;反之,如果用户已登录,允许他们访问受保护的资源。 以下是一个简单的...
为了解决这个问题,我们可以利用Servlet的Filter机制来拦截和验证用户的请求。Filter是一个在请求被实际处理之前运行的组件,它可以在请求到达目标Servlet之前进行预处理,或者在响应返回给客户端之后进行后处理。在...
`filter_var`允许你对单一变量进行过滤和验证,而`filter_var_array`则用于处理数组中的多个变量,`filter_input`则专门用于处理HTTP输入变量。 ### `filter_var`的基本用法 `filter_var`函数的基本语法是: ```...
在这个项目中,“jsp+servlet登录验证过滤器”涉及了用户登录验证的过程,以及使用过滤器(Filter)来实现这一功能。下面将详细介绍这个主题中的相关知识点。 1. **JSP**:JSP是一种服务器端的技术,允许开发者在...
本话题主要关注如何使用Java Filter来限制用户的浏览权限,确保只有经过身份验证和授权的用户才能访问特定的资源。这在构建安全的Web应用程序时至关重要。 首先,我们需要了解Java Filter的基本概念。Filter是...
当用户在登录中心成功验证身份后,服务器会设置一个包含用户信息的特殊Cookie,并将其发送给浏览器。这个Cookie在后续请求中被发送到所有相关应用,以此来判断用户是否已授权登录。 **二、Filter原理** Filter是...
在这个"过滤器验证用户登录"项目中,我们关注的是如何利用过滤器来实现用户身份的验证,确保只有已登录的用户才能访问特定的Web资源。这个项目结合了IntelliJ IDEA这一强大的Java开发工具,为开发者提供了高效且专业...