个人博客---简要总结(三)

来写一些细节

  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属性的类型 和 数据库表中字段的类型 要一致

最后关于手写分页:待定。

猜你喜欢

转载自blog.csdn.net/root_zhb/article/details/53151479