利用Filter实现session拦截

1、在web.xml中配置

    <!-- Session监听器 -->
    <filter>
        <filter-name>sessionValidateFilter</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>sessionValidateFilter</filter-name>
        <url-pattern>/admin/*</url-pattern>
    </filter-mapping>

2、在applicationContent.xml中配置

    <!-- 配置登录验证拦截器 -->
    <bean id="sessionValidateFilter" class="cn.jxufe.core.filter.SessionValidateFilter"></bean>
    

3、创建自定义过滤器类

public class SessionValidateFilter implements Filter {
    public void destroy() {}

    public void doFilter(ServletRequest servletRequest,
            ServletResponse servletResponse, FilterChain chain)
            throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        HttpSession session = request.getSession();
        if ((session == null) || (session.getAttribute("username") == null)) {
            String PATH=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";
            response.sendRedirect(PATH+"login.jsp");
        }
        chain.doFilter(request, response);
    }

    public void init(FilterConfig filterConfig) throws ServletException {}

}
时间: 2024-10-29 04:34:04

利用Filter实现session拦截的相关文章

JAVA–利用Filter和session防止页面重复提交

JAVA–利用Filter和session防止页面重复提交解决思路:1 用户访问表单页面,先经过过滤器,过滤器设置一个随机id作为token令牌, 并将该token放入表单隐藏域中.2 表单响应到浏览器,用户填充数据后提交请求;3 请求经过过滤器,过滤器获取表单中的令牌进行验证,如果和之前生成的令牌一致,则将请求放行,并且清空令牌;4 如果用户重复提交表单,请求经过过滤器,过滤器进行验证.因为第一次放行后令牌已经清空失效,令牌不一致,不放行.跳转到提醒界面. 需用知识:1 过滤器基础知识2 se

过滤器(Filter)和拦截器(Interceptor)

之前总是弄混这两者,今天看了几篇文章,小结一下在这里. Filter介绍 Filter可以认为是Servlet的一种"加强版",它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链.Filter也可以对用户请求生成响应,这一点与Servlet相同,但实际上很少会使用Filter向用户请求生成响应.使用Filter完整的流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行预处理并生成响应,最后Filter再对服务

过滤器(Filter)与拦截器(Interceptor )区别

目录 过滤器(Filter) 拦截器(Interceptor) 拦截器(Interceptor)和过滤器(Filter)的区别 拦截器(Interceptor)和过滤器(Filter)的执行顺序 拦截器(Interceptor)使用 过滤器(Filter)使用 拦截器(Interceptor)和过滤器(Filter)的一些用途 demo 总结 参考资料 正文 回到顶部 过滤器(Filter) Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,

[转]Android中Xposed框架篇—利用Xposed框架实现拦截系统方法

一.前言 关于Xposed框架相信大家应该不陌生了,他是Android中Hook技术的一个著名的框架,还有一个框架是CydiaSubstrate,但是这个框架是收费的,而且个人觉得不怎么好用,而Xposed框架是免费的而且还是开源的,网上也有很多文章介绍了Xposed框架的原理实现,不了解的同学可以自行查阅即可,本文主要介绍如何通过这个框架来进行系统方法的拦截功能,比如我们开发过程中,对于一些测试环境很难模拟,特别是测试同学有时候像随机改变设备的imei,mcc等信息用来模拟不同测试场景,这时候

利用Filter禁止直接访问JSP

 一.应用Struts Struts作为一种Web MVC框架,将视图展示和处理逻辑分离,降低耦合性,允许更改界面视图而不用重新编译逻辑部分,同样由于业务需求的改变需要调整逻辑结构而不用修改视图部分.由于灵活的配置,简单可操作性,在业界得到广泛的应用.用户通过配置Struts.xml文件,轻易建立视图和模型的映射关系. Exmaple: <package name="Student" namespace="/Student" extends="

Filter进行session验证

解决方法:先创建一个新的控制器  随变命名  adminFilterConter   让他继承自controller控制器  在里面写方法 在执行方法之前授限执行 protected override void OnActionExecuting(ActionExecutingContext filterContext) { if (Session["UserInfo"] == null) { Response.Redirect("/UserLogin/Index"

Android利用Filter过滤数据

MainActivity如下: package cc.testfilterable; import java.util.ArrayList; import java.util.HashMap; import android.os.Bundle; import android.widget.ListView; import android.app.Activity; import android.content.Context; /** * Demo描述: * 利用Filter过滤数据 * 可用于

利用filter和动态代理解决全站乱码问题

1.利用filter和动态代理解决全站乱码问题 1.1filter的代码 package com.baowei.filter; import java.io.IOException; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import javax.servlet.Filter; import javax.servlet

如何在Ubuntu Scope中利用Filter来更加精准地提高搜索的质量

在Ubuntu的Scope,目前正在研发一个新的Filter的功能.我们可以在我们的开发者网站找到有关filter的更多的信息.在那里你可以看到一些关于filter的介绍,但是真正地入手去利用它还是有一定的难度的.今天在我们的例程中,我们来具体展示如何利用filter实现更好的搜索.在实际的应用中,比如我们可以通过filter来实现如下的ctrip的Scope:     在上面的中间的图中,我们可以看到"重庆"被选中了,在第二个列中,我们可以使用我们的department来进行从一个城