兩畝三分地

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            17 隨筆 :: 20 文章 :: 2 評論 :: 0 Trackbacks
          我們大家都有使用博客或者其他類似系統的經驗,往往都是通過用戶驗證以后,才進行其他的操作。
          上一節,在處理完login事務以后,我們可以訪問某個頁面對自己的博文或者博文分類等等進行操作。
          但是由于網頁的關系,如果沒有對每頁進行用戶認證,而我們知道準確的地址的話,我們可以直接訪問地址來對數據進行操作。
          比如:
          http://localhost:8080/Blog/BlogServlet?method=list
          可以查看所有的博文;而
          http://localhost:8080/Blog/BlogServlet?method=delete&cid=1
          這個地址可以對編號為1的博文進行刪除操作。
          所以我們必須對每一頁或者沒一次操作進行用戶認證。因為user對象是放置在session中的,所有我們可以每次通過檢測session內容來達到驗證的效果。

          在這里,我寫了一個輔助類UserValidator,來簡化操作。
          package com.blog.utils;

          import com.blog.User;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpSession;

          /**
           *
           * 
          @author Chucky
           
          */
          public class UserValidator {
              
          public static boolean isValid(HttpServletRequest request){
                  HttpSession session 
          = request.getSession();
                  User user 
          = (User) session.getAttribute("user");
                  
          return user!=null?true:false;
              }
          }
          一般Servlet的里面,可以直接把UserValidator的檢驗直接放置在processRequest方法里,如果檢驗失敗的話,轉到用戶登錄界面
           1 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
           2             throws ServletException, IOException {
           3         response.setContentType("text/html;charset=UTF-8");
           4         request.setCharacterEncoding("UTF-8");
           5 
           6         String method = request.getParameter("method");
           7 
           8         if (!UserValidator.isValid(request)) {
           9             response.sendRedirect(request.getContextPath()+"/admin/");
          10         } else {
          11             if (method.equals("add")) {
          12                 add(request, response);
          13             } else if (method.equals("delete")) {
          14                 delete(request, response);
          15             } else if (method.equals("edit")) {
          16                 preEdit(request, response);
          17             } else if (method.equals("update")) {
          18                 update(request, response);
          19             } else if (method.equals("list")) {
          20                 list(request, response);
          21             } else if (method.equals("get")) {
          22                 get(request, response);
          23             } else if (method.equals("preAdd")) {
          24                 preAdd(request, response);
          25             }
          26         }
          27     }
          而一些直接讀取的jsp頁面,也可以把驗證直接寫在頁面里。
          <% User user = (User)session.getAttribute("user");
             if (user == null){
             
          response.sendRedirect(request.getContextPath()+"/admin/");
             }
          %>


          posted on 2009-09-30 16:47 Chucky 閱讀(217) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 洪洞县| 八宿县| 蓬溪县| 巴彦县| 扎鲁特旗| 密云县| 泌阳县| 玉树县| 安庆市| 古浪县| 应用必备| 桓台县| 绩溪县| 宿州市| 宁城县| 宝山区| 阿巴嘎旗| 双城市| 聂拉木县| 合作市| 德江县| 益阳市| 沂源县| 峨山| 云南省| 安陆市| 中阳县| 定安县| 海门市| 渑池县| 德惠市| 贵定县| 长白| 靖西县| 桦甸市| 内黄县| 祥云县| 西城区| 游戏| 博客| 岱山县|