javaweb登陆过滤器实现

在web.xml中配置登陆过滤器:

<!-- 配置登陆过滤器 -->
    <filter>
        <filter-name>loginFilter</filter-name>
        <filter-class>weijiabin.BBS.Utils.LoginFilter</filter-class>
        <init-param>
            <param-name>passUrl</param-name>
            <param-value>index;login;FunctionServlet</param-value>
           </init-param>
    </filter>

    <filter-mapping>
        <filter-name>loginFilter</filter-name>
           <url-pattern>/*</url-pattern>
    </filter-mapping>
上边代码中的param-value用来设置不进行拦截的地址关键字(以;作为分隔符),在下边过滤器代码中用passUrl表示

然后写过滤器代码:
public class LoginFilter implements Filter {

	@Override
	public void destroy() {
		// TODO Auto-generated method stub

	}
	String passUrl = "";
	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
			throws IOException, ServletException {
		 HttpServletRequest httpRequest=(HttpServletRequest)arg0;
	        HttpServletResponse httpResponse=(HttpServletResponse)arg1;
	        HttpSession session=httpRequest.getSession();
	        String[] strArray = passUrl.split(";");          //下边循环作用是依次检查访问的url中是否包含passurl中的关键字,如果包含则不进行拦截
	        for (String str : strArray) {
	            if (str.equals(""))//如果在上边配置中设置的url为空,则说明都需要进行拦截,跳过此循环
	                continue;
	            if (httpRequest.getRequestURL().indexOf(str) >= 0) {
	                arg2.doFilter(httpRequest, httpResponse);
	                return;
	            }
	        }

	        if(session.getAttribute("sessionUser")!=null){
	            arg2.doFilter(httpRequest, httpResponse);
	        }
	        else{
	            httpResponse.sendRedirect(httpRequest.getContextPath()+"/login.jsp");
	        }
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		 passUrl = arg0.getInitParameter("passUrl");
	}
}

  

原文地址:https://www.cnblogs.com/ITDreamer/p/9647981.html

时间: 2024-10-31 06:44:14

javaweb登陆过滤器实现的相关文章

设置常用的过滤器-不适用缓存、登陆过滤器

设置不使用缓存的过滤器 功能描述 将HTTP响应头信息中的缓存参数设置为不进行缓存. 使用方法 在 java web 项目的 web.xml 文件中添加如下代码. <!--设置不使用缓存的过滤器配置 开始 --> <filter> <filter-name>ClearCacheFilter</filter-name> <filter-class>com.hmw.filter.ClearCacheFilter</filter-class>

[javaweb]Java过滤器与包装设计模式的实用案例.

在filter中可以得到代表用户请求和响应的request.response对象,因此在编程中可以使用Decorator(装饰器)模式对request.response对象进行包装,再把包装对象传给目标资源,从而实现一些特殊需求. 一.Decorator设计模式 1.1.Decorator设计模式介绍 当某个对象的方法不适应业务需求时,通常有2种方式可以对方法进行增强: 编写子类,覆盖需增强的方法. 使用Decorator设计模式对方法进行增强. 在阎宏博士的<JAVA与模式>一书中开头是这样

JavaWeb之过滤器

时间: Talk is cheap  Show me the code JavaWeb三大组件:    Servlet.Listener.Filter    都需要在web.xml中进行配置,Listener中的两个感知监听器不需要配置. --过滤器概述 过滤器是JavaWeb的三大组件之一,它与Servlet很相似,不过过滤器是用来拦截请求的,而不是处理请求的. 当用户请求某个Servlet或其他资源(JSP.css.html)时,会先执行部署在这个请求上的Filter,如果Filter"放行

javaweb 登陆注册页面

视图的数据修改,表中也修改引用工具类用<%@ page import=""%> <%@ page import="java.util.Date" %> <%@ page import="java.text.SimpleDateFormat" %> 引入包可以一条一条分着写,也可以在一条内直接用逗号隔开写 <%@ page import="java.util.Date,java.text.Simp

JavaWeb servlet过滤器

一.Filter简介: *************************************************************************************** Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件 或静态 html 文件等进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.压缩响应信

深入分析JavaWeb Item36 -- 过滤器Filter高级应用

在filter中可以得到代表用户请求和响应的request.response对象,因此在编程中可以使用Decorator(装饰器)模式对request.response对象进行包装,再把包装对象传给目标资源,从而实现一些特殊需求. 一.Decorator设计模式 1.1.Decorator设计模式介绍 当某个对象的方法不适应业务需求时,通常有2种方式可以对方法进行增强: 编写子类,覆盖需增强的方法. 使用Decorator设计模式对方法进行增强. 使用代理 在阎宏博士的<JAVA与模式>一书中

JavaWeb的过滤器Filter

Filter的作用是在请求到达web资源(HTML.css.Servlet.Jsp)之前拦截,做一个预处理. 创建一个类实现Filter接口,在web.xml中对文件进行配置 1 <filter> 2 <filter-name>Filter的别名</filter-name> 3 <filter-class>Filter的全类名</filter-class> 4 </filter> 5 <filter-mapping> 6

一个登陆过滤器的小例子

1. 过滤的路径要有统一的可以表示的路径,以方便模块化过滤 例如:用户模块:/user/*,信息模块:/info/* 2. 过滤器要有能排除不过滤路径的功能: 3. 实现相关的业务需要: import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.s

JavaWeb过滤器验证登录(避免未经登录进入主页)

今天用ssh2写了个简单的系统,发现了一个问题,我这系统必须先登录成功才能进入主页,但我在浏览器里直接输入主页地址,发现也能进入,这个肯定不好,毫无安全性可言,后经查资料发现需要登录过滤器,就试了下,发现果然可以避免未经登录即可进入主页的危险,下面是我整理出的详细步骤: 1.首先写一个权限过滤filter类,实现Filter接口 import java.io.IOException; import javax.servlet.Filter; import javax.servlet.Filter