网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  web app struts框架里实现filter     
  文章作者:未知  文章来源:水木森林  
  查看:105次  录入:管理员--2007-11-17  
 
  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源代码阅读(commons-pool包)    下一篇: struts menu中基于角色的权限管理
  相关文档
java设计模式之 proxy(代理) 11-17
关注性能:异常的异常 11-17
java新学法之robocode基本原理之坐标锁定(上) 11-17
实现游戏中的图片滚屏功能 11-17
tomcat连接池首次配置成功状态 11-17
j2me综合--j2me应用程序内存优化三招 01-10
回答:为什么执行java程序时,会出现exception in threadmain .. 11-17
microsoft.net的java实现 11-17
剖析.net下的数据访问层技术(3) 11-17
java声音技术详解 11-17
jmeter技巧集锦 11-17
j2ee基础 struts快速入门简单实例详解 11-16
分析用javadoc形式集成文档的利与弊 11-17
java程序员:一刻钟精通正则表达式 11-20
动态网页制作技术jsp与asp的比较(1) 11-17
2006年java开发技术回顾与展望 11-17
xml中二进制数据的处理方法[转载] 11-17
sun.xvr-1200图形加速器的使用 11-17
浅析java语言中的内部类 11-17
extjs-入门 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息