兩畝三分地

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

          在這里,我寫了一個(gè)輔助類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的檢驗(yàn)直接放置在processRequest方法里,如果檢驗(yàn)失敗的話,轉(zhuǎn)到用戶登錄界面
           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頁面,也可以把驗(yàn)證直接寫在頁面里。
          <% User user = (User)session.getAttribute("user");
             if (user == null){
             
          response.sendRedirect(request.getContextPath()+"/admin/");
             }
          %>


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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 海南省| 中江县| 兰西县| 文登市| 会东县| 乐平市| 枣庄市| 侯马市| 凉城县| 陵水| 吐鲁番市| 屯昌县| 云安县| 石门县| 汝南县| 延吉市| 泗洪县| 同仁县| 泰和县| 商洛市| 团风县| 吴桥县| 隆德县| 南宁市| 体育| 顺昌县| 秦安县| 阜宁县| 镇巴县| 寿阳县| 炉霍县| 嵩明县| 彩票| 鞍山市| 莒南县| 吉水县| 沙洋县| 江北区| 自贡市| 廉江市| 和平县|