• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    写一个对搜索引擎友好的文章SEO分页类

    使用jsp/php/asp等动态程序生成的页面如何对搜索引擎友好呢?你可能想使用url_rewrite。不过,最好还是让同一个网址在任意时间对应的页面内容都是一样的或者相似的。因为搜索引擎不喜欢页面内容总是在变化的网址。

    一般博客文章需要将新发表的文章显示在前面,所以会使用"order by id desc"类似的SQL语句来查询一页包含的多篇文章。例如下面在JAVA+MYSQL中:

    public Article[] getArticleArray(int from, int size){
    Article[] article = new Article[0];
    String query = "SELECT * FROM blog ORDER BY DESC id LIMIT " + from + "," + size;
    try{
    ResultSet rs = st.executeQuery(query);
    rs.last();
    size = rs.getRow();
    article = new Article[size];
    rs.beforeFirst();
    for(int i=0; rs.next(); i++){
    article[i] = new Article(
    rs.getInt("id"), rs.getString("time"),
    rs.getString("name"), rs.getString("blog")
    );
    }
    rs.close();
    }catch(Exception e){
    System.out.println(e);
    }
    return article;
    }

    这是我们的SEO分页类MySEOPager中的一个方法。如果我们想显示第一页,我们使用getArticleArray(0,10)来查询最新发表的10篇文章。

    这有什么问题呢?问题是当你添加一篇文章之后,原来的所有分页都改变了。为了让getArticleArray(0,10)每一次查询显示相同的文章,应 该让getArticleArray(0,10)显示新先发表的10篇文章。我们可以这样改造我们的分页类。删除与将影响页面的内容,你删除越新的文章, 生成的页面改变越大。

    public Article[] getArticleArray(int from, int size){
    Article[] article = new Article[0];
    String query = "SELECT * FROM blog ORDER BY id LIMIT " + from + "," + size;
    try{
    ResultSet rs = st.executeQuery(query);
    rs.last();
    size = rs.getRow();
    article = new Article[size];
    rs.beforeFirst();
    for(int i=0; rs.next(); i++){
    article[i] = new Article(
    rs.getInt("id"), rs.getString("time"),
    rs.getString("name"), rs.getString("blog")
    );
    }
    rs.close();
    }catch(Exception e){
    System.out.println(e);
    }
    return article;
    }

    我们还需要得到数据库里到底有多少文章,所以再增加一个方法。

    public int getArticleCount(){
    int rowcount = 0;
    String query = "SELECT COUNT(*) AS rowcount FROM ideabook";
    try{
    ResultSet rs = st.executeQuery(query);
    if(rs.next()){
    rowcount = rs.getInt("rowcount");
    }
    }catch(Exception e){
    System.out.println(e);
    }
    return rowcount;
    }

    现在我们在JSP页面中显示最新发表的10篇文章。

    int start = -1;
    MySEOPager pager = new MySEOPager();
    int artcount = pager.getArticleCount();
    try{
    Integer.parseInt(request.getParameter("start"));
    }catch(Exception e){
    start = artcount-10;
    }
    if(start > artcount - 10) start = artcount - 10;
    if(start 0) start = 0;

    Article art = pager.getArticleArray(start, 10);
    // do something with art here.
    int previous = start + 10; // 传到上一页的start值
    int next = start - 10; // 传到下一页的start值

    这样,生成的页面的内容的是否改变与你是否删除了先发表的文章有关系。只要你不删除文章,showblog.jsp?start=0带有这个参数的 网址对应的页面都不改变。只要你删除的是第n篇文章,那么start(n-pagesize)对应的页面都不改变。你添加文章只影响第一页。

    在我编写的ideabook留言本使用了这种方法。

    上一篇:JSP一句话木马代码
    下一篇:卖jsp编程技巧的那个垃圾的所有实例的答案全部已收集,现将他人收集的实例答案公布出来,大家鉴赏!
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    写一个对搜索引擎友好的文章SEO分页类 写,一个,对,搜索引擎,友,