网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>专题栏目>>STRUTS专题>查看文档  
  Web App struts框架里实现Filter.     
  文章作者:未知  文章来源:未知  
  查看:323次  录入:管理员--2006-09-28  
 

1 web.xml里添加filter配置信息。
        

<filter>
                <filter-name>Authentication</filter-name>
                <filter-class>
                        com.nova.colimas.web.filters.AuthenticationFilter
                </filter-class>
                <init-param>
                        <param-name>onError</param-name>
                        <param-value>/pages/index.jsp</param-value>
                </init-param>
        </filter>
        <filter-mapping>
                <filter-name>Authentication</filter-name>
                <url-pattern>/protect/*</url-pattern>
        </filter-mapping>


<filter-class>定义使用com.nova.colimas.web.filters.AuthenticationFilter类执行过滤Action。
<init-param>当验证失败后Forward到/pages/index.jsp
<filter-mapping>只有当地址包括/protect/时运行filter类

2 实现com.nova.colimas.web.filters.AuthenticationFilter

package com.nova.colimas.web.filters;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;

import com.nova.colimas.web.bean.UserBean;

import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import org.apache.struts.Globals;
import org.apache.struts.action.*;
import com.nova.colimas.web.constants.Constants;

/**
* Filter implementation for user authentication。必须实现Filter接口
* @author tyrone
* @version $Id: AuthenticationFilter.java,v 1.0
*/
public class AuthenticationFilter implements Filter
{
        
        /**
         * filterConfig will store the reference of FilterConfig
         */
        private FilterConfig filterConfig;
        
        private String onErrorUrl;

        /**
         * store the reference of the FilterConfig.
         * @param config FilterConfig object
         * @throws ServletException
         */
        public void init(FilterConfig config) throws ServletException
        {
//获得验证失败forward地址
                filterConfig = config;
                onErrorUrl=filterConfig.getInitParameter("onError");
                if (onErrorUrl==null || "".equals(onErrorUrl)){
                        onErrorUrl="/pages/index.jsp";
                }
        }
        /**
         * User Authentication is  done. If User is authenticated successful then
         * control is transferred to logon URI
         * @param ServletRequest Request
         * @param ServletRequest Response
         * @param FilterChain Filter Chain
         * @throws ServletException,IOException
         */
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain next)
                        throws IOException, ServletException
        {
                HttpServletRequest httpRequest = (HttpServletRequest)request;
                HttpServletResponse httpResponse=(HttpServletResponse)response;
                // Current session
                HttpSession httpSession = httpRequest.getSession();
//Session里是否有用户信息。
                if (httpSession.getAttribute(Constants.USER_KEY) == null)
                {
                        ActionErrors errors=new ActionErrors();
                        errors.add(ActionErrors.GLOBAL_ERROR,
                                        new ActionError("error authentication"));
                        httpRequest.setAttribute(Globals.ERROR_KEY,errors);
                //没有,验证失败forward到/pages/index.jsp        httpRequest.getRequestDispatcher(onErrorUrl).forward(httpRequest,httpResponse);
                }else
//成果过滤Action结束
                        next.doFilter(request,response);
                
        }

        /**
         * destroy() method is called by the servlet container
         */
        public void destroy()
        {
        }
        
}
 
 
上一篇: struts框架下,在jsp页面显示XSL格式化的XML    下一篇: Struts源代码阅读(Commons-Validator)
  相关文档
用Struts建立MVC应用的介绍 09-27
用XSLT 和 XML改进Struts 09-28
在Eclipse中开发struts应用程序 10-10
Struts源代码阅读(Commons-Validator) 09-28
用JBuilder9 开发Struts实例 09-28
Struts用户和开发指南(前言之三) 09-28
Struts 增加Validator 09-28
基于Tiles框架Struts框架的UI 设计—几种组织HTML和JSP视图组件 09-28
基于struts+spring+ibatis的轻量级J2EE开发 09-28
学习Jakarta Struts 1.1 (一) 09-28
运用Jakarta Struts的七大实战心法 09-28
什么是模式?什么是框架? 09-28
struts源代码阅读(Commons-Pool包) 09-28
struts源代码阅读(Commons-Beanutils包) 09-28
使用ActionForm一次获取表单的所有参数 09-28
利用JBuilder开发基于Struts+Hibernate框架的文章发布应用 09-28
Struts 和 Tiles 辅助基于组件的开发 10-10
Struts 用户指南 09-28
Struts HOW-TO 系列 之 数据库访问 09-28
在struts里的实现dtree通用树型结构 09-28
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息