`
Tracylau
  • 浏览: 66772 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

session过期过滤器,servlet写的,应用在struts上

阅读更多
这一层是servlet的过滤器做的~~~

当然还是要web.xml配置一下.
  <filter>
    <filter-name>accessControl</filter-name>
    <filter-class>web.common.AccessControlFilter</filter-class>
    <init-param>
      <param-name>loginPage</param-name>
      <param-value>/usermanager/login_nasp.jsp</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>accessControl</filter-name>
    <url-pattern>*.do</url-pattern>
  </filter-mapping>



过滤掉了所有的do的文件提交时,都会先检测一下session是否存在,是否过期.

当然要写一个servlet类,如下:
package web.common;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class AccessControlFilter
    implements Filter {
  protected FilterConfig filterConfig;
  private String loginPage;

  public void init(FilterConfig config); throws ServletException {
    this.filterConfig = config;
    loginPage = config.getInitParameter("loginPage");;
    if (loginPage == null); {
      throw new ServletException("loginPage init param missing");;
    }
  }
  public void doFilter(final ServletRequest req, final ServletResponse
                       res, FilterChain chain); throws IOException,
      ServletException {
    HttpServletRequest hreq = (HttpServletRequest); req;
    HttpServletResponse hres = (HttpServletResponse); res;
    String isLog = (String); hreq.getSession();.getAttribute("validsession");
    if ( (isLog != null); && ( (isLog.equals("true");); || (isLog == "true"););); { //检查是否登录
      chain.doFilter(req, res);;
      return;
    }
    else
      hres.sendRedirect(loginPage);; //如果没有登录,把视图派发到登录页面
  }
  public void destroy(); {
    this.filterConfig = null;
  }

  public void setFilterConfig(final FilterConfig filterConfig); {
    this.filterConfig = filterConfig;
  }
}


tracy_katrina
分享到:
评论

相关推荐

    struts2配置过滤器

    本文将通过一个具体的示例来详细介绍如何在Struts2项目中配置过滤器。 #### 二、过滤器配置实例分析 ##### 2.1 web.xml配置解析 在给定的web.xml配置文件中,可以看到对`SessionInvalidate`过滤器进行了定义和...

    struts过滤器.doc

    过滤器的这种设计允许开发者在应用的全局层面上实施安全策略,例如强制用户在访问特定资源前必须登录。 总结起来,Struts过滤器是实现Web应用程序功能和安全的重要工具。它们可以用来处理各种任务,如防止页面缓存...

    Struts 2 过滤器和拦截器的区别

    在Struts 2框架中,过滤器(Filter)和拦截器(Interceptor)都是用于处理请求的关键组件,但它们之间存在本质的区别。正确理解这些差异有助于开发者更高效地利用这两种工具来优化应用程序的性能和安全性。 #### 二、...

    Struts2访问ServletAPI

    当一个请求到达服务器时,Struts2的过滤器(通常名为`FilterDispatcher`或`StrutsPrepareAndExecuteFilter`)会捕获这个请求,然后根据配置的Action映射决定执行哪个Action。在Action执行过程中,如果需要直接访问...

    struts1.2增删改查分页Filter Session

    在Struts1.2中,过滤器常用于处理共性任务,比如登录验证、字符编码转换、安全过滤等。开发者可以通过配置web.xml来定义Filter的顺序和映射规则。 4. Session: Session是服务器端保存用户状态的一种机制。在...

    配置Struts应用.ppt

    `web.xml`文件是Java Web应用程序的部署描述符,它包含了一系列关于应用的信息,如初始化参数、session配置、Servlet声明、Servlet映射、监听器、过滤器、MIME类型映射、欢迎文件列表、错误处理页面以及JNDI引用等。...

    strut2 servletapi

    开发者可以在此基础上扩展自己的过滤器,以便在处理请求前或处理后执行自定义逻辑。 4. **ActionContext**:这是Struts2的上下文对象,它封装了请求、响应、session、应用上下文等信息。通过ActionContext,开发者...

    深入 Java Servlet 网络编程

    过滤器是Servlet API中的另一个重要组件,可以在请求到达Servlet之前和离开Servlet之后对请求和响应进行拦截处理。例如,可以使用过滤器进行权限检查、字符编码转换等。 7. **监听器(Listener)** 监听器是用于...

    深入Java Servlet网络编程

    初始化通过`init()`方法完成,服务阶段通过`service()`方法处理请求,最后在应用关闭或Servlet卸载时调用`destroy()`方法。 2. Servlet配置:通过在web.xml文件中定义servlet元素,设置servlet的类名、URL映射等信息...

    jsp与servlet核心技术

    8. **部署与配置**:讲解如何在应用服务器(如Tomcat)上部署和配置JSP和Servlet应用。 学习完这些内容,读者将能够熟练地运用JSP和Servlet进行Web开发,创建功能丰富的动态网站和企业级应用。无论你是初学者还是有...

    JavaEE企业应用实战-Struts2+Spring3+Hibernate整合开发(第3版)

    - **Interceptor**:拦截器,类似于过滤器,可以对请求进行预处理或后处理。 - **Result**:定义如何将Action的结果返回给客户端。 - **Configuration**:配置文件struts.xml用于管理各种配置信息。 - **Struts2...

    深入Java Servlet 网络编程Part1

    6. **过滤器**:Servlet API中的`Filter`接口允许我们在请求到达Servlet之前或之后执行逻辑。例如,我们可以使用过滤器进行登录检查、字符编码转换、日志记录等操作。 7. **监听器**:Servlet监听器可以监听特定...

    《Jsp&Servlet入门级项目全程实录》源码

    在IT行业中,JSP(JavaServer Pages)和Servlet是用于构建动态Web应用程序的两种核心技术,尤其在企业级Java开发中广泛应用。《Jsp&Servlet入门级项目全程实录》源码是一个非常适合初学者深入理解这两门技术的实践...

    struts1.x 和 struts2.x向Action里填充jsp参数原理

    Struts2基于拦截器(Interceptor)模型,它的核心是StrutsPrepareAndExecuteFilter,这个过滤器负责拦截请求并交给Struts2的处理链。相比于Struts1,Struts2提供了更灵活的配置和更丰富的插件支持。 Struts2向...

    Struts2面试题

    - **上下文访问**:拦截器可以访问Action上下文(`ActionContext`)和值栈(`ValueStack`)中的对象,而过滤器不具备这样的能力。 - **调用次数**:拦截器可以在Action的整个生命周期中多次调用,而过滤器通常只在容器...

    servlet-3-1-specification.pdf

    Servlet是一种运行在服务器端的Java应用程序,用于处理客户端(通常是Web浏览器)的请求并生成响应。Servlet容器提供了Servlet运行的环境,同时管理了Servlet的生命周期和线程安全等问题。 2. Servlet与Servlet容器...

    6个struts小案例,网罗STRUTS基础知识

    在`Struts_E3`案例中,可能会介绍如何使用Struts的ActionForm、Session或ModelDriven接口来实现数据的分页展示,以及如何在JSP页面上创建分页链接。 4. **Struts配置与Action**: `Struts_E4`可能涉及到Struts配置...

    struts-2.3.24源码

    - 它是Struts 2中所有请求处理过程的上下文对象,保存了当前请求的相关信息,如值栈、参数、session和request对象等。 5. **值栈(Value Stack)** - 用于存储Action实例以及ActionForm对象,它是视图层与模型层...

    学习常用知识(java,sql,oracle,ejb,ssh,struts,xml,监听器,拦截器,过滤器)

    在IT领域,掌握Java、SQL、Oracle、EJB、SSH、Struts、XML以及监听器、拦截器和过滤器等技术是至关重要的。这些技术涵盖了Web应用开发的多个层面,对于初学者而言,理解并熟练运用它们能为职业生涯打下坚实的基础。 ...

Global site tag (gtag.js) - Google Analytics