個人博客---簡要總結(三)

來寫一些細節

  1. 修改博文(注意:原博文分類的默認選中顯示)
  2. 權限問題(一般人瀏覽,博主增刪改查)
  3. 問題簡要分析(前臺接收不到後臺數據)
  4. 分頁(未完成、待定)

一、修改博文

修改分爲兩個部分:1、查詢出原來的。2、提交修改之後的

問題描述:表category和blog(含外鍵category_id,但是並沒有分類的name)
blog實體中

    private int id;
    private String title;
    private String content;
    private String createdTime;
    private String category;
    private int categoryId;

分類實體中

    private int id;
    private String name;
    .....

在博文管理頁面傳入當前blog的id,訪問

href="${pageContext.request.contextPath }/PreEditBlogServlet?id=${blog.id}"

在 PreEditBlogServlet中,查詢出當前博文和所有分類的信息,存到域中

        // 查詢博文
        try {
            sql = "select id,title,content,category_id as categoryId from blog where id="+ id; 
            blog = qr.query(sql, new BeanHandler<Blog>(Blog.class));
        } catch (Exception e) {
            e.printStackTrace();
        }
        //查詢分類
        try {
            sql = "SELECT * FROM category ORDER BY LEVEL DESC,id DESC";
            list = qr.query(sql, new BeanListHandler<Category>(Category.class)); //
        } catch (SQLException e) {
            e.printStackTrace();
        }

前臺獲取數據時,使文章的分類默認選中

<td>類別:</td>
            <td><select name="category" id="select">
                    <c:forEach items="${list}" var="listlist">
                            <c:if test="${blog.categoryId==listlist.id}">
                        <option value="${listlist.id }" selected>${listlist.name }</option>  
                            </c:if>
                            <c:if test="${!(blog.categoryId==listlist.id)}">
                         <option value="${listlist.id }" >${listlist.name }</option>  
                            </c:if>
                    </c:forEach>
            </select></td>

然後就提交博客吧,感覺這些簡單點的操作相對來說都是考察sql語句的

二、權限問題

這裏使用到了session,根據session域中是否有User數據來判斷,用戶是否具有權限,如果沒有那就跳轉到登錄界面(小提示:可以做成一個jsp頁面,在需要權限的地方,頂部引入這個頁面即可)

HttpSession session=request.getSession();
        User user=(User) session.getAttribute("user");
        if(user==null){
            response.sendRedirect("/blog/admin/login.jsp");
        }

三、問題分析

我們在做這些東西的時候,煩什麼 寫了一堆代碼,前臺數據接收不到,瞬間懵比。

這裏我寫下自己目前的排查方式吧(應該適合新手 =.=!,畢竟我算是個新手)

排查錯誤,是不是這個bean對象的所有數據都接受不到?還是部分數據接收不到

在bean中 toString() 然後在相應的Servlet中輸出,查看具體的屬性值
如果是部分數據接收不到 查看sql語句 看具體起的什麼別名(別名和bean屬性相對應)
另外bean屬性的類型 和 數據庫表中字段的類型 要一致

最後關於手寫分頁:待定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章