cuixx1985

一个webwork过滤器的问题

先贴代码如下:
1.SercurityFilter.java

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SercurityFilter implements Filter{

    
public void destroy() {
        
    }


    
public void doFilter(ServletRequest req, ServletResponse res,
            FilterChain chain) 
throws IOException, ServletException {
        HttpServletRequest request 
= (HttpServletRequest) req;
        HttpServletResponse response 
= (HttpServletResponse) res;
        
        String url = request.getRequestURI();
           String name = (String) request.getSession().getAttribute("name");
        
          if((url.indexOf("index") == -1) && (null == name))
        {
            String path = request.getContextPath();
            response.sendRedirect(path + "/index.jsp");
        }

        
else
            chain.doFilter(request, response);
    }


    
public void init(FilterConfig arg0) throws ServletException {
        
    }


}


然后问题是这样的:
我现在用户没登录的时候,点击一个超链接(bookAction.action)的时候,并没有进入SercurityFilter这个里面定义的index.jsp页面,而地址栏显示的也是这个超链接的bookAction.action地址。
而当我把bookAction对应的xwork.xml中的result里面添加 type="redirect",如下:
<result name="browseCatalog" type="redirect">/jsp/browseCatalog.jsp</result>
而现在我重新点击这个超链接的时候却能转到index.jsp页面,不知道这个是怎么回事?????

但是重定向过去又不能保存action执行的结果,不能给browseCatalog.jsp这个页面里的表单赋值,当然可以通过将内容放入session中进行赋值,但这样应该不太好吧。


web.xml代码如下:
<filter-mapping>
        
<filter-name>webwork</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>
    
    
<filter-mapping>
        
<filter-name>sercurityFilter</filter-name>
        
<url-pattern>/jsp/*</url-pattern>
    </filter-mapping>
    



今天晚上又做了下简单的验证,不知道为什么,不管我web.xml里面设置/*还是*.action,浏览器输入*.action地址或者提交表单的时候都进不了这个filter里面去。而web.xml里面设置/*时,只要我输入*.jsp都会直接转到index.jsp页面,难道是哪里配置错了。。。还是????



posted on 2008-11-19 16:25 true_star 阅读(1278) 评论(4)  编辑  收藏 所属分类: webwork

Feedback

# re: 一个webwork过滤器的问题[未登录] 2008-11-20 11:08 object

<url-pattern>/jsp/**//*</url-pattern>  回复  更多评论   

# re: 一个webwork过滤器的问题[未登录] 2008-11-20 11:11 object

这里你不是设置的jsp/*吗,你的bookAction.action前面有jsp/吗
还有你的response不爽的话
就用request.getRequestDispatcher("/index.jsp").forward(request,response);  回复  更多评论   

# re: 一个webwork过滤器的问题 2008-11-20 11:19 true_star

bookAction.action前面有/jsp/的。问题是当我设置/*的时候, 地址栏输入.action结尾的时候,根本就不去执行这个filter,就和没配置这个filter一样的。。。。。。。  回复  更多评论   

# re: 一个webwork过滤器的问题 2010-03-10 13:52 itbee

查看webwork的FilterDispatcher.java的doFilter方法。
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: