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

关于主页

博客文章的列表及部分内容

显示页面叫main.jsp,处理业务的HomeServlet
(其中的方法main(request,response)是查询出blogs、categorys、comments
get(request,response)作用得到某篇具体的文章)

逻辑问题

  1. main.jsp首先浏览时:你需要列出所有的博文(分页待定)和部分简短内容;
  2. 点击你主页文章的分类时,你需要查询出对应类型的博客文章,并显示;
  3. 如果是点击文章的标题时,那你需要查出具体的博文内容和这篇文章的评论

流程
1,2的区别是:在sql语句中,2比1多个条件(分类的编号)。

2,3的区别是2是得到某一类文章,3是得到某一篇具体的文章(根据method参数调用不同的方法)

首先访问主页,转到HomeServlet

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<% response.sendRedirect("/blog/HomeServlet"); %>

在HomeServlet中首先进行2,3的判断(查询的是:文章的列表、或某个具体的文章)

request.setCharacterEncoding("utf-8");
        String method = request.getParameter("method");

        if (method == null) {
            main(request, response);
            request.getRequestDispatcher("/main.jsp").forward(request, response);
        } else if (method.equals("get")) {
            main(request, response);
            get(request, response);
            request.getRequestDispatcher("/displayBlog.jsp").forward(request,response);
        }

main(request,response)中进行1,2的判断(注:cid为分类的id:判断是否有传入的分类id,有——按分类查询,没有——查询所有),另外查出所有的分类和评论,存到request域中。

    String cid=request.getParameter("cid");
        String sql="";
        if(cid==null){
            sql = "...";
        }else{
            sql = "....";
        }

右侧的分类、最近文章、最近评论之类的(复用)

都在HomeServlet的main方法中存到域中
页面获取即可。

注意:此处和主界面(不可能显示所有博文,只显示其中一部分) 用到字符传截取
举例:jsp页面顶部引入:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

如果标题太长的话 EL获取,JSTL截取 ${fn:substring(blog.title, 0, 12)}

猜你喜欢

转载自blog.csdn.net/root_zhb/article/details/53144477
今日推荐