itkui

          年少為何不輕狂!

          利用Filter限制用戶瀏覽權限

          在一個系統中通常有多個權限的用戶。不同權限用戶的可以瀏覽不同的頁面。使用Filter進行判斷不僅省下了代碼量,而且如果要更改的話只需要在Filter文件里動下就可以。
          以下是Filter文件代碼:

          package cn.itkui.filter;

          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;

          public class RightFilter implements Filter {

              
          public void destroy() {
                  
              }


              
          public void doFilter(ServletRequest sreq, ServletResponse sres, FilterChain arg2) throws IOException, ServletException {
                  
          // 獲取uri地址
                  HttpServletRequest request=(HttpServletRequest)sreq;
                  String uri 
          = request.getRequestURI();
                  String ctx
          =request.getContextPath();
                  uri 
          = uri.substring(ctx.length());
                  
          //判斷admin級別網頁的瀏覽權限
                  if(uri.startsWith("/admin")) {
                      
          if(request.getSession().getAttribute("admin")==null{
                          request.setAttribute(
          "message","您沒有這個權限");
                          request.getRequestDispatcher(
          "/login.jsp").forward(sreq,sres);
                          
          return;
                      }

                  }

                  
          //判斷manage級別網頁的瀏覽權限
                  if(uri.startsWith("/manage")) {
                      
          //這里省去
                      }

                  }

                  
          //下面還可以添加其他的用戶權限,省去。

              }


              
          public void init(FilterConfig arg0) throws ServletException {
                  
              }


          }
          以下是在web.xml需要加入的代碼
           <!-- 判斷頁面的訪問權限 -->
            
          <filter>
               
          <filter-name>RightFilter</filter-name>
                
          <filter-class>cn.itkui.filter.RightFilter</filter-class>
            
          </filter>
            
          <filter-mapping>
                
          <filter-name>RightFilter</filter-name>
                
          <url-pattern>/admin/*</url-pattern>
            
          </filter-mapping>
            
          <filter-mapping>
                
          <filter-name>RightFilter</filter-name>
                
          <url-pattern>/manage/*</url-pattern>
            
          </filter-mapping>

          posted on 2007-07-18 17:35 itkui 閱讀(2447) 評論(10)  編輯  收藏 所屬分類: Java

          評論

          # re: 利用Filter限制用戶瀏覽權限 2007-07-18 22:24 Hmilyld

          這個方法挺爽,
          特別是對多用戶管理的時候,權限分配上感覺蠻好。  回復  更多評論   

          # re: 利用Filter限制用戶瀏覽權限 2007-07-18 23:41 go

          不錯...  回復  更多評論   

          # re: 利用Filter限制用戶瀏覽權限 2007-07-19 08:07 demo

          這里面存在比較嚴重的問題,首先權限變更需要通過變更代碼來實現,這是問題一;其二,若是需要配置成百上千的權限,那你都要在代碼里面編寫一遍,工作量太大;其三,若是遇到需要中途變更權限的話,不知道你準備怎么處理?其四,用戶若是想控制權限的全過程,你怎么能釋放這個權限讓用戶能夠做到完整控制。  回復  更多評論   

          # re: 利用Filter限制用戶瀏覽權限 2007-07-19 09:38 cresposhi

          有理有理,簡單的限制一下能訪問的路徑還是比較優雅的,但是如果上升到權限的話這種方式就不夠用了。  回復  更多評論   

          # re: 利用Filter限制用戶瀏覽權限 2007-07-19 10:26 itkui

          @demo
          呵呵,相關權限只要在Filter文件里稍微更改下就可以了.
          沒有做過太大的程序,所以暫時沒法考慮太多.
          不知道仁兄有何高見?  回復  更多評論   

          # re: 利用Filter限制用戶瀏覽權限 2007-07-19 10:28 itkui

          Filter能做的很好多,比如限制用戶重復登陸等等...
          善用它可以減少很多的代碼量,
          需求修改的話修改也比較簡單.  回復  更多評論   

          # re: 利用Filter限制用戶瀏覽權限 2007-07-19 14:32 BeanSoft

          BS 冒充高人, 無非就是手熟, 早學了幾天而已. 你跟EA的人比比就知道自己是個什么水平:
          http://img3.pcgames.com.cn/pcgames/0703/10/870528_pcgamesCryEngine2_06.jpg
          再跟 Java 領域的 Netbeans 支持的 SOA 比比:
          http://www.netbeans.org/kb/55/loanprocessing.html

          做人要謙虛.  回復  更多評論   

          # re: 利用Filter限制用戶瀏覽權限 2007-07-19 17:20 小雪飛刀

          以前項目中一直在用這種方法實現權限控制,一般的小項目就夠用了。如果是比較大的項目,會有很多功能強大的權限控制方式。demo的說法不無道理。  回復  更多評論   

          # re: 利用Filter限制用戶瀏覽權限 2007-07-19 19:21 itkui

          @小雪飛刀
          當然知道他說的有道理啦。
          可是我只是在學習階段,真正的項目也沒做過。
          不知道公司里面一般用什么來做權限驗證呀?  回復  更多評論   

          # re: 利用Filter限制用戶瀏覽權限 2007-07-23 08:48 濟南筆記本專賣

          Servlet的功能之一,寫的好  回復  更多評論   

          導航

          統計

          留言簿(1)

          隨筆檔案(24)

          收藏夾(15)

          好站珍藏

          學習資源

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 星座| 商河县| 福安市| 江山市| 静海县| 修水县| 南陵县| 虎林市| 新野县| 来安县| 邢台县| 望谟县| 沭阳县| 苗栗市| 保康县| 涿州市| 西安市| 塔河县| 泽州县| 自治县| 奈曼旗| 丰都县| 合作市| 巴彦淖尔市| 玉溪市| 固安县| 故城县| 巢湖市| 古田县| 沙坪坝区| 岐山县| 墨玉县| 鸡泽县| 中卫市| 北京市| 都匀市| 东阿县| 西丰县| 改则县| 大冶市| 庄河市|