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 閱讀(1308) 評論(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方法。
            回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 连山| 杭锦旗| 沧州市| 万源市| 绥宁县| 泽州县| 丰台区| 崇明县| 习水县| 巍山| 扎赉特旗| 察隅县| 恭城| 古交市| 高密市| 临颍县| 青州市| 凌源市| 栖霞市| 建德市| 巴林左旗| 西贡区| 临沧市| 云和县| 旅游| 许昌市| 黑山县| 娱乐| 沾化县| 思茅市| 青田县| 丁青县| 泉州市| 黄陵县| 常熟市| 大英县| 田阳县| 林周县| 崇信县| 新沂市| 长海县|