写一个对搜索引擎友好的文章分页类的
浏阳历史网 2021-10-29 04:50:21
使用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 = ecuteQuery(query);
st();
size = tRow();
article = new Article[size];
foreFirst();
for(int i=0; xt(); i++){
article[i] = new Article(
tInt(\"id\"), tString(\"time\"),
tString(\"name\"), tString(\"blog\")
);
}
ose();
}catch(Exception e){
intln(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 = ecuteQuery(query);
st();
size = tRow();
article = new Article[size];
foreFirst();
for(int i=0; xt(); i++){
article[i] = new Article(
tInt(\"id\"), tString(\"time\"),
tString(\"name\"), tString(\"blog\")
);
}
ose();
}catch(Exception e){
intln(e);
}
return article;
}
我们还需要得到数据库里到底有多少文章,所以再增加一个方法。
public int getArticleCount(){
int rowcount = 0;
String query = \"SELECT COUNT(*) AS rowcount FROM ideabook\";
try{
ResultSet rs = ecuteQuery(query);
if(xt()){
rowcount = tInt(\"rowcount\");
}
}catch(Exception e){
intln(e);
}
return rowcount;
从天猫、京东、苏宁、亚马逊、当当、1号店、凡客等电商平台抽取了359家企业生产的502批次电子商务产品。经检验 }
现在我们在JSP页面中显示最新发表的10篇文章。
int start = -1;
MySEOPager pager = new MySEOPager();
int artcount = tArticleCount();
try{
rseInt(tParameter(\"start\"));
}catch(Exception e){
start = artcount-10;
}
if(start artcount - 10) start = artcount - 10;
if(start 0) start = 0;
Article art = tArticleArray(start, 10);
// do something with art here.
int previous = start + 10; // 传到上一页的start值
int next = start - 10; // 传到下一页的start值
这样,生成的页面的内容的是否改变与你是否删除了先发表的文章有关系。只要你不删除文章,p?start=0带有这个参数的 址对应的页面都不改变。只要你删除的是第n篇文章,那么start(n-pagesize)对应的页面都不改变。你添加文章只影响第一页。
肾损伤高血压用什么药效果好冠心病的并发症
白山白癜风医院哪家好
- 上一页:写程序时碰到的一些问题呢
- 下一页:写了一个开源的的系统信息探针
- 懂得念人之好,是职边锋更高级别的情商
- 浙江污泥低温干化器材,三个月回本,电镀污泥低温干化器材-广东威凌菲斯
- 万余平度考生今日开始中考
- 高圆圆拍写真女儿来探班,两人亲密拥抱画面甜蜜有爱,未见赵又廷
- “奶奶作家”杨本芬:写出女性“不被看见”的生平
- TVB一日量减少三位艺人,余德丞受力捧仍离巢,女主播在节目中告别
- 海洋水质的网站监测实际应用中的问题
- “毕业就跟对象远走他乡,供你上课真亏”,家长埋怨女儿不懂回报
- 把女朋友当女儿养的男生也比较聪明 女孩子本来就是你越宠爱 她越可爱的 你给她足够的安全感和保护 她也
- 2022年上半年深圳10+1区GDP排行曝光!深圳宣布将全面加大投资力度
- 成都偶遇迪丽热巴拍戏,皮肤白皙身材纤细,云鹤大为近照发福引热议
- 美股跌幅扩展 纳指跌超1%