`
zhangbaoming815
  • 浏览: 149360 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

servlet中过滤器的使用

    博客分类:
  • J2EE
阅读更多

在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过滤器的基础应用示例,以及相关的源代码和文档资料。描述中提到的"实现一个登陆界面",表明了过滤器可能被用作验证...

    servlet过滤器实例经典过滤器

    Servlet过滤器是Java Web开发中的一个重要组件,它允许开发者在请求到达Servlet之前或者响应离开Servlet之后进行拦截处理。本教程将深入讲解如何配置和使用Servlet过滤器,以及介绍五个经典的过滤器实例。 首先,让...

    基于servlet的过滤器

    Servlet过滤器是Java Web开发中的一个重要组件,它允许开发者在HTTP请求被Servlet处理之前或之后...通过学习和实践这样的小型项目,开发者可以更好地理解和掌握Servlet过滤器的使用,为更复杂的Web应用开发打下基础。

    servlet 过滤器做的简单登陆demo

    通过这个简单的登录demo,初学者可以学习到如何使用Servlet过滤器进行权限控制,以及session和cookie在用户管理中的应用。这有助于理解Web应用程序中的身份验证和会话管理机制,为更复杂的Web应用开发打下基础。

    Servlet编码过滤器的实现

    在本教程中,我们将深入探讨如何实现一个Servlet编码过滤器,并理解其工作原理。 首先,让我们了解为什么需要编码过滤器。在Web应用中,用户输入的数据可能包含非ASCII字符,如中文、日文等,这些字符在HTTP请求中...

    Servlet过滤器使用

    在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数。 b、doFilter(ServletRequest,ServletResponse,FilterChain): 这个方法完成实际的过滤操作,当客户请求访问于过滤器关联的URL时,Servlet容器将先...

    java中servlet文字过滤器

    在某些场景下,我们可能需要对HTTP响应的内容进行特定的处理,比如过滤掉某些字符或者处理编码问题,这时就可以使用Servlet Filter(过滤器)。本文将深入探讨"java中servlet文字过滤器"的概念、实现及应用场景。 #...

    Servlet转码过滤器.rar

    如果输入是中文,后台servlet再次输出这个内容时,可能就会是乱码,这是因为serlvet中默认是以ISO-8859-1格式编码的,如果后台有多个Servlet,多个参数,这样就不合适,这个问题,我们可以通过一个过滤器统一解决,使...

    servlet过滤器技术实例,

    在本实例中,我们将深入探讨Servlet过滤器(Filter)的使用和实现,以及它在实际应用中的重要性。 一、Servlet过滤器简介 Servlet过滤器遵循Java Servlet规范,通过实现`javax.servlet.Filter`接口来创建自定义过滤...

    servlet过滤器验证用户登录

    在IT领域,特别是Java Web开发中,Servlet过滤器(Filter)是实现用户权限管理、登录状态验证等关键功能的重要机制之一。本文将深入探讨如何利用Servlet过滤器来验证用户是否已登录,以及如何配置过滤器以针对特定的...

    servlet过滤器详解

    使用Servlet过滤器时应注意,尽管`Filter`、`FilterConfig`和`FilterChain`位于`javax.servlet`包下,但实际操作中涉及的请求和响应对象通常需转换为HTTP特定类型,即`HttpServletRequest`和`HttpServletResponse`,...

    Java servlet过滤器配置详解

    Java Servlet过滤器是Java Web应用程序中的重要组件,它在请求被Servlet处理之前和响应返回给客户端之后进行拦截,可以用于实现各种功能,如字符编码转换、URL重写、权限控制等。本篇将深入讲解Java Servlet过滤器的...

    servlet过滤器实现(Eclipse工程)

    Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在请求到达Servlet之前或者响应离开Servlet之后进行拦截处理。本教程将详细介绍如何在Eclipse环境中创建并实现一个Servlet过滤器。 一、Servlet过滤器...

    jsp+servlet登录验证过滤器

    在这个项目中,“jsp+servlet登录验证过滤器”涉及了用户登录验证的过程,以及使用过滤器(Filter)来实现这一功能。下面将详细介绍这个主题中的相关知识点。 1. **JSP**:JSP是一种服务器端的技术,允许开发者在...

    Servlet过滤器小实例

    因此,使用Servlet过滤器(Filter)来处理这类问题成为了一种更加优雅的解决方案。 #### 实例目标 本实例的目标是设计并实现一个简单的Servlet过滤器,用于检查用户的登录状态。具体来说,当用户通过正常的登录...

    servlet四个有用的过滤器

    根据提供的信息,我们可以总结出以下关于servlet过滤器的相关知识点: ### 一、Servlet过滤器简介 在Java Web开发中,`Servlet`过滤器是一种特殊的功能组件,可以在请求到达目标资源(如Servlet或JSP页面)之前...

    servlet+jsp实现过滤器 防止用户未登录访问

    使用servlet和jsp技术时,我们可以通过过滤器(Filter)来实现这样的安全防护机制。过滤器是一种服务器端的组件,它能够对请求和响应进行拦截,执行一些预处理或者后处理操作。它常用于进行登录验证、权限检查、字符...

    JAVA WEB中的Servlet过滤器

    通过JokerDemo这样的示例项目,你可以更深入地了解Servlet过滤器的使用和原理。在实践中,你可以尝试创建一个简单的过滤器,观察其在请求处理流程中的行为,逐步掌握这个强大的工具。 总的来说,Servlet过滤器是...

    servlet过滤器

    本篇文章将深入探讨在Tomcat容器中如何使用servlet过滤器,并通过实例进行讲解。 首先,了解过滤器的基本概念。Servlet过滤器遵循Servlet规范中的Filter接口,该接口定义了三个关键方法:`doFilter()`, `init()` 和...

    servlet过滤器解决乱码问题

    #### 二、解决方案:使用Servlet过滤器 Servlet过滤器是一种可以拦截请求和响应的组件,它可以在请求到达目标资源之前或响应返回客户端之前进行预处理。通过配置过滤器来统一处理字符编码问题,可以有效避免乱码的...

Global site tag (gtag.js) - Google Analytics