兩畝三分地

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            17 隨筆 :: 20 文章 :: 2 評論 :: 0 Trackbacks
          CategoryServlet,正如第4篇中提到的這個Servlet主要是針對Category數據的操作,包括添加,刪除,修改,更新等等。
          之所以拿CategoryServlet純粹因為它比較簡單。

          對于CategoryServlet的基本思路是:接收requst傳來的參數method,然后在根據method的要求來進行不同的操作。
           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         String method = request.getParameter("method");
           6         if (method.equals("add")) {
           7             add(request, response);
           8         } else if (method.equals("delete")) {
           9             delete(request, response);
          10         } else if (method.equals("edit")) {
          11             preEdit(request, response);
          12         } else if (method.equals("update")) {
          13             update(request, response);
          14         } else if (method.equals("list")) {
          15             list(request, response);
          16         }
          17 }
          直接添加這些方法,netbeans會有無法找到對應方法的提示,


          點擊黃色小燈泡,IDE自動生成對應的方法,建議在這些方法后面添加throws語句。例:
          1 private void add(HttpServletRequest request, HttpServletResponse response)
          2             throws ServletException, IOException {
          3
          4         }

          a. add方法:接收分類名稱(category.name),QueryRunner對象根據sql命令執行update操作,request傳回結果(比如:轉到對應頁面)
           1 private void add(HttpServletRequest request, HttpServletResponse response)
           2             throws ServletException, IOException {
           3         String name = request.getParameter("name");
           4         String sql = "insert into category (name) values (?)";
           5         String params[] = {name};
           6         QueryRunner qr = DbHelper.getQueryRunner();
           7         try {
           8             qr.update(sql, params);
           9         } catch (SQLException ex) {
          10             Logger.getLogger(CategoryServlet.class.getName()).log(Level.SEVERE, null, ex);
          11         }
          12         list(request,response);
          13     }

          b. delete方法:接收分類類別(category.id),QueryRunner對象根據sql語句執行update操作,request傳回結果(比如:轉到對應頁面)
           1 private void delete(HttpServletRequest request, HttpServletResponse response)
           2             throws ServletException, IOException {
           3         String id = request.getParameter("id");
           4         String sql = "delete from category where id = "+id;
           5         
           6         QueryRunner qr = DbHelper.getQueryRunner();
           7         try {
           8             qr.update(sql);
           9         } catch (SQLException ex) {
          10             Logger.getLogger(CategoryServlet.class.getName()).log(Level.SEVERE, null, ex);
          11         }
          12         
          13         list(request,response);
          14     }

          c. preEdit方法:接收分類類別(category.id),QueryRunner對象根據sql語句執行query操作,request傳回結果,轉入對應編輯頁面;
           1 private void preEdit(HttpServletRequest request, HttpServletResponse response)
           2             throws ServletException, IOException {
           3         String id = request.getParameter("id");
           4         String sql = "select id,name from category where id = "+id;
           5         List categories = null;
           6         Category category = null;
           7         
           8         QueryRunner qr = DbHelper.getQueryRunner();
           9         try {
          10             categories = (List) qr.query(sql, new BeanListHandler(Category.class));
          11         } catch (SQLException ex) {
          12             Logger.getLogger(CategoryServlet.class.getName()).log(Level.SEVERE, null, ex);
          13         }
          14         
          15         if (categories != null){
          16             category = (Category)categories.get(0);
          17         }
          18         request.setAttribute("category", category);
          19         request.getRequestDispatcher("/admin/editCategory.jsp").forward(request, response);
          20     }

          d. update方法:接收分類名稱(name),編號(id),QueryRunner對象根據sql語句執行update操作,request傳回結果(比如:轉到對應頁面);
           1  private void update(HttpServletRequest request, HttpServletResponse response)
           2             throws ServletException, IOException {
           3         String id = request.getParameter("id");
           4         String name = request.getParameter("name");
           5         String sql = "update category set name = ? where id = ?";
           6         String params[] = {name,id};
           7         
           8         QueryRunner qr = DbHelper.getQueryRunner();
           9         try {
          10             qr.update(sql, params);
          11         } catch (SQLException ex) {
          12             Logger.getLogger(CategoryServlet.class.getName()).log(Level.SEVERE, null, ex);
          13         }
          14         list(request,response);
          15     }

          e. list方法:list所有相關的分類,request傳回結果(比如:轉到對應頁面);
           1  private void list(HttpServletRequest request, HttpServletResponse response)
           2             throws ServletException, IOException {
           3         String sql = "select id, name from category order by name";
           4         List categories = null;
           5 
           6         QueryRunner qr = DbHelper.getQueryRunner();
           7         try {
           8             categories = (List) qr.query(sql, new BeanListHandler(Category.class));
           9         } catch (SQLException ex) {
          10             Logger.getLogger(CategoryServlet.class.getName()).log(Level.SEVERE, null, ex);
          11         }
          12 
          13         request.setAttribute("categories", categories);
          14         request.getRequestDispatcher("/admin/adminCategoryList.jsp").forward(request, response);
          15     }


          posted on 2009-09-28 17:12 Chucky 閱讀(111) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 行唐县| 乐至县| 龙泉市| 阿拉善左旗| 上栗县| 津市市| 溧阳市| 新兴县| 科技| 信阳市| 江津市| 太谷县| 永修县| 来凤县| 甘泉县| 蕉岭县| 淮阳县| 文成县| 永顺县| 长葛市| 固安县| 女性| 馆陶县| 兴业县| 临高县| 汾阳市| 比如县| 潼南县| 乡宁县| 万山特区| 遂昌县| 固原市| 东源县| 房产| 岳西县| 寿光市| 宁蒗| 嵊泗县| 临沂市| 慈利县| 内乡县|