兩畝三分地

            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 閱讀(220) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 黑水县| 顺义区| 枣庄市| 清新县| 罗甸县| 张家港市| 稷山县| 岑巩县| 恭城| 铁岭县| 汶上县| 桃源县| 宁乡县| 崇阳县| 米林县| 宜君县| 麻栗坡县| 城固县| 揭阳市| 潮安县| 进贤县| 曲阳县| 綦江县| 拜泉县| 镇康县| 鄢陵县| 房山区| 布拖县| 汤原县| 沙湾县| 马山县| 兴隆县| 荆州市| 福海县| 扬州市| 临沭县| 钦州市| 六枝特区| 中超| 霍城县| 海淀区|