配置文件里配置的/*这样,jsp连登录用的servlet都访问不到了。怎么处理?

解决方案 »

  1.   

    不知道你咋整的,可以用struts2的拦截器来做
      

  2.   

    说明你的fiter代码写的有问题,是否有加 chain.doFilter(srequest, sresponse);这样的代码呢,你贴出来吧,我们都猜不出你的代码呵呵
      

  3.   

    当然了,   /*  会先访问的。  你可以把 Servlet的过滤器加上一个条件试试 譬如 /s/*
      

  4.   

     <!-- Login Check begin -->
        <filter>
            <filter-name>LoginCHKFilter</filter-name>
            <filter-class>com.mdcl.vpn.LoginCHKFilter</filter-class>
            
        </filter>
        <filter-mapping>
    <filter-name>LoginCHKFilter</filter-name>
    <url-pattern>*.action</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>LoginCHKFilter</filter-name>
    <url-pattern>*.jsp</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>LoginCHKFilter</filter-name>
    <url-pattern>/publicmail/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>LoginCHKFilter</filter-name>
    <url-pattern>*.html</url-pattern>
    </filter-mapping>
    <!-- Login Check end -->
      

  5.   

    登录的form表单<form name="Login" method="post" action="/VPNLogin/RedirectTo">
    web.xml里的servlet配置  <servlet-mapping>
         <servlet-name>RedirectPortal</servlet-name>
         <url-pattern>/RedirectTo</url-pattern>
      </servlet-mapping>
    为什么我提交不到servlet呢
      

  6.   

    好像不是这个原因吧。这样虽然可以走过滤器,但是还是没找到我想提交的servlet啊
      

  7.   

     
    所有的action都首先被LoginCHKFilter拦截了想要提交到RedirectTo.action 修改LoginCHKFilter.java,应该判断
    if (url.endsWith("/login.jsp")||url.endsWith("/logout.jsp")) {
    chain.doFilter(request, response);
    }..
    看来你好像没学过servlet啊
      

  8.   

    如楼上所言,/* 会把有的请求都拦截到,包括你的登陆的action所以你要把你不需要检查的请求地址,排除出来 
      

  9.   

    可以配置你登陆不被拦截 在web。xml里 具体google一下就知道 有专门的xml标签进行配置的
      

  10.   

    LZ 你需要拦截什么就配置什么,,不需要/*所有的吧!! 退一步说 
     <servlet-mapping>
            <servlet-name>RedirectPortal</servlet-name>
            <url-pattern>/RedirectTo</url-pattern>
      </servlet-mapping>
      你这是拦截的是RedirectTo但是你的form里面好像拦截不到  你这样写
     <servlet-mapping>
            <servlet-name>RedirectPortal</servlet-name>
            <url-pattern>/VPNLogin/*</url-pattern>
      </servlet-mapping>
      

  11.   

    如果你有需要拦截/*的话,
    在过滤器的doChain方法里面判断下是否需要拦截处理, 不处理就直接chain.doChain放下去! 否则自己处理!
    Struts2就是这么设计的!
      

  12.   

    过滤器判断是够是你需要的条件
    if(处理)
    else{
    chain.doFilter(request, response);
    }