在servlet中过滤器的使用,这个例子实现对用户登录的验证,当前用户的session为空的时候,不允许查看数据:
下面看具体的例子:
1.编写过滤器:
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 SessionFilter implements Filter{
@Override
public void init(FilterConfig config) throws ServletException {
// TODO Auto-generated method stub
String username = config.getInitParameter("sessionKey");
System.out.println(username);
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest req = (HttpServletRequest)request;
HttpSession session = req.getSession();
//由于web.xml中设置Filter过滤全部请求,可以排除不需要过滤的url
String requestURI = req.getRequestURI();
if(requestURI.endsWith("login.jsp")
|| requestURI.endsWith("error.jsp")
|| requestURI.endsWith("LoginServlet")
|| requestURI.endsWith("/")){
chain.doFilter(request, response);
return;
}
//判断用户是否登录,进行页面的处理
if(null == session.getAttribute("user")){
//未登录用户,重定向到登录页面
session.setAttribute("error", "当前用户未登录");
((HttpServletResponse)response).sendRedirect("error.jsp");
return;
} else {
//已登录用户,允许访问
chain.doFilter(request, response);
}
}
@Override
public void destroy() {
// TODO Auto-generated method stub
System.out.println("destory");
}
}
2.在web.xml中进行相应的配置:
<!-- 过滤器的使用 -->
<filter>
<filter-name>SessionFilter</filter-name>
<filter-class>com.filter.SessionFilter</filter-class>
<init-param>
<param-name>sessionKey</param-name>
<param-value>user</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 过滤器结束 -->
3.存放session对象,这里为user:
request.getSession().setAttribute("user", userItem);
4.这样在页面访问时,如果遇到session为空的情况就会自动跳转到登录页面
分享到:
相关推荐
在标题"Servlet过滤器的简单使用源码+文档"中,我们可以理解为这个压缩包包含了一个关于Servlet过滤器的基础应用示例,以及相关的源代码和文档资料。描述中提到的"实现一个登陆界面",表明了过滤器可能被用作验证...
Servlet过滤器是Java Web开发中的一个重要组件,它允许开发者在请求到达Servlet之前或者响应离开Servlet之后进行拦截处理。本教程将深入讲解如何配置和使用Servlet过滤器,以及介绍五个经典的过滤器实例。 首先,让...
Servlet过滤器是Java Web开发中的一个重要组件,它允许开发者在HTTP请求被Servlet处理之前或之后...通过学习和实践这样的小型项目,开发者可以更好地理解和掌握Servlet过滤器的使用,为更复杂的Web应用开发打下基础。
通过这个简单的登录demo,初学者可以学习到如何使用Servlet过滤器进行权限控制,以及session和cookie在用户管理中的应用。这有助于理解Web应用程序中的身份验证和会话管理机制,为更复杂的Web应用开发打下基础。
在本教程中,我们将深入探讨如何实现一个Servlet编码过滤器,并理解其工作原理。 首先,让我们了解为什么需要编码过滤器。在Web应用中,用户输入的数据可能包含非ASCII字符,如中文、日文等,这些字符在HTTP请求中...
在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数。 b、doFilter(ServletRequest,ServletResponse,FilterChain): 这个方法完成实际的过滤操作,当客户请求访问于过滤器关联的URL时,Servlet容器将先...
在某些场景下,我们可能需要对HTTP响应的内容进行特定的处理,比如过滤掉某些字符或者处理编码问题,这时就可以使用Servlet Filter(过滤器)。本文将深入探讨"java中servlet文字过滤器"的概念、实现及应用场景。 #...
如果输入是中文,后台servlet再次输出这个内容时,可能就会是乱码,这是因为serlvet中默认是以ISO-8859-1格式编码的,如果后台有多个Servlet,多个参数,这样就不合适,这个问题,我们可以通过一个过滤器统一解决,使...
在本实例中,我们将深入探讨Servlet过滤器(Filter)的使用和实现,以及它在实际应用中的重要性。 一、Servlet过滤器简介 Servlet过滤器遵循Java Servlet规范,通过实现`javax.servlet.Filter`接口来创建自定义过滤...
在IT领域,特别是Java Web开发中,Servlet过滤器(Filter)是实现用户权限管理、登录状态验证等关键功能的重要机制之一。本文将深入探讨如何利用Servlet过滤器来验证用户是否已登录,以及如何配置过滤器以针对特定的...
使用Servlet过滤器时应注意,尽管`Filter`、`FilterConfig`和`FilterChain`位于`javax.servlet`包下,但实际操作中涉及的请求和响应对象通常需转换为HTTP特定类型,即`HttpServletRequest`和`HttpServletResponse`,...
Java Servlet过滤器是Java Web应用程序中的重要组件,它在请求被Servlet处理之前和响应返回给客户端之后进行拦截,可以用于实现各种功能,如字符编码转换、URL重写、权限控制等。本篇将深入讲解Java Servlet过滤器的...
Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在请求到达Servlet之前或者响应离开Servlet之后进行拦截处理。本教程将详细介绍如何在Eclipse环境中创建并实现一个Servlet过滤器。 一、Servlet过滤器...
在这个项目中,“jsp+servlet登录验证过滤器”涉及了用户登录验证的过程,以及使用过滤器(Filter)来实现这一功能。下面将详细介绍这个主题中的相关知识点。 1. **JSP**:JSP是一种服务器端的技术,允许开发者在...
因此,使用Servlet过滤器(Filter)来处理这类问题成为了一种更加优雅的解决方案。 #### 实例目标 本实例的目标是设计并实现一个简单的Servlet过滤器,用于检查用户的登录状态。具体来说,当用户通过正常的登录...
根据提供的信息,我们可以总结出以下关于servlet过滤器的相关知识点: ### 一、Servlet过滤器简介 在Java Web开发中,`Servlet`过滤器是一种特殊的功能组件,可以在请求到达目标资源(如Servlet或JSP页面)之前...
使用servlet和jsp技术时,我们可以通过过滤器(Filter)来实现这样的安全防护机制。过滤器是一种服务器端的组件,它能够对请求和响应进行拦截,执行一些预处理或者后处理操作。它常用于进行登录验证、权限检查、字符...
通过JokerDemo这样的示例项目,你可以更深入地了解Servlet过滤器的使用和原理。在实践中,你可以尝试创建一个简单的过滤器,观察其在请求处理流程中的行为,逐步掌握这个强大的工具。 总的来说,Servlet过滤器是...
本篇文章将深入探讨在Tomcat容器中如何使用servlet过滤器,并通过实例进行讲解。 首先,了解过滤器的基本概念。Servlet过滤器遵循Servlet规范中的Filter接口,该接口定义了三个关键方法:`doFilter()`, `init()` 和...
#### 二、解决方案:使用Servlet过滤器 Servlet过滤器是一种可以拦截请求和响应的组件,它可以在请求到达目标资源之前或响应返回客户端之前进行预处理。通过配置过滤器来统一处理字符编码问题,可以有效避免乱码的...