博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于数据库设计-博客系统
阅读量:6735 次
发布时间:2019-06-25

本文共 6988 字,大约阅读时间需要 23 分钟。

1. 展示博客具体内容

 

2.设计到点击量 所以多加一个点击量字段

 

3.评论内容

 

3.1 记录用户IP地址

 

 

4.jsp展示页面

1 <%@ page language="java" contentType="text/html; charset=gb2312"  2     pageEncoding="gb2312"%>  3 <%@taglib uri="/struts-tags" prefix="s"%>  4 <%@ taglib uri="http://java.fckeditor.net" prefix="FCK"%>   5   6   7   8 我的文章  9 
10
11
12 13 14 15 16
17
18
c
19

${empty sessionScope.blogtitle ? "博客网站系统":sessionScope.blogtitle}
20 ${empty sessionScope.idiograph ? "我的签名":sessionScope.idiograph} 21

22
23
» Font Size «
24
25
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
作者:
57
58
59
60
61
62 当前第${page.currentPage}页,共${page.totalPage}页,每页显示${page.everyPage}条记录 63
64
首页 65
上一页 66
67
68 首页 69 上一页 70
71 72
73
下一页 74
尾页 75
76
77 下一页 78 尾页 79
80
81
82

发表评论

83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
111
121
122
123
124
129
130 131

 

5.

1 package com.sanqing.action;  2   3 import java.text.SimpleDateFormat;  4 import java.util.Date;  5 import java.util.Map;  6   7 import javax.servlet.http.HttpServletRequest;  8   9 import org.apache.struts2.ServletActionContext; 10  11 import com.opensymphony.xwork2.ActionContext; 12 import com.opensymphony.xwork2.ActionSupport; 13 import com.sanqing.fenye.Page; 14 import com.sanqing.fenye.Result; 15 import com.sanqing.po.Article; 16 import com.sanqing.po.BlogInfo; 17 import com.sanqing.service.ArticleService; 18 import com.sanqing.service.BlogInfoService; 19 import com.sanqing.service.CritiqueService; 20 import com.sanqing.service.DianjiliangService; 21  22 public class ShowArticle extends ActionSupport { 23     // 业务逻辑组件属性 24     private ArticleService articleService; 25     // id属性 26     private int id; 27     // 点击量的业务逻辑组件 28     private DianjiliangService dianjiliangService; 29     // 评论的业务逻辑组件 30     private CritiqueService critiqueService; 31     //设置当前页 32     private int currentPage; 33      34     //username 35     private String username; 36      37     private BlogInfoService blogInfoService; 38  39     public BlogInfoService getBlogInfoService() { 40         return blogInfoService; 41     } 42  43     public void setBlogInfoService(BlogInfoService blogInfoService) { 44         this.blogInfoService = blogInfoService; 45     } 46  47     public String getUsername() { 48         return username; 49     } 50  51     public void setUsername(String username) { 52         this.username = username; 53     } 54  55     public int getCurrentPage() { 56         return currentPage; 57     } 58  59     public void setCurrentPage(int currentPage) { 60         this.currentPage = currentPage; 61     } 62  63     public CritiqueService getCritiqueService() { 64         return critiqueService; 65     } 66  67     public void setCritiqueService(CritiqueService critiqueService) { 68         this.critiqueService = critiqueService; 69     } 70  71     public DianjiliangService getDianjiliangService() { 72         return dianjiliangService; 73     } 74  75     public void setDianjiliangService(DianjiliangService dianjiliangService) { 76         this.dianjiliangService = dianjiliangService; 77     } 78  79     public int getId() { 80         return id; 81     } 82  83     public void setId(int id) { 84         this.id = id; 85     } 86  87     public ArticleService getArticleService() { 88         return articleService; 89     } 90  91     public void setArticleService(ArticleService articleService) { 92         this.articleService = articleService; 93     } 94  95     public String execute() throws Exception { 96         // 将文章设置到request范围 97         HttpServletRequest request = ServletActionContext.getRequest(); 98         // 按ID查询文章 99         Article article = articleService.showArticle(id);100         // 获得用户IP101         String IP = request.getRemoteAddr();102         // 获得当前时间103         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");104         String stime = sdf.format(new Date());105         Date time = sdf.parse(stime);106 107         if (!dianjiliangService.isVistor(id, IP, time)) {108             // 点击量增加109             article.setHasread(article.getHasread() + 1);110         }111         // 将更新的Article保存到数据表中112         articleService.addArticle(article);113         114         115         //显示评论116         Page page = new Page();117         page.setCurrentPage(this.getCurrentPage());118         page.setEveryPage(5);119         120         Result result = critiqueService.showCritiqueByPage(id, page);121         122         request.setAttribute("page", result.getPage());123         request.setAttribute("allCri", result.getList());124         request.setAttribute("article", article);125         126         //取得个性化设置127         //通过业务逻辑组件来查询128         if(username != null || !"".equals(username)) {129             Map session = ActionContext.getContext().getSession();130             BlogInfo bloginfo  = blogInfoService.getBlogInfo(username);131             if(bloginfo != null) {132                 session.put("blogtitle", bloginfo.getBlogtitle());133                 session.put("idiograph", bloginfo.getIdiograph());134             }135         }136         return this.SUCCESS;137     }138 139 }

 

 

6 strut2.xml

        <action name="addCritique" class="addCritique">

            <result name="success" type="chain">showArticle</result>
        </action>
       

转载于:https://www.cnblogs.com/sharpest/p/6082946.html

你可能感兴趣的文章
Codevs1403 新三国争霸
查看>>
第二次作业:分布式版本控制系统Git的安装与使用
查看>>
教准备租房的同学如何避开坑!
查看>>
C# 一些算法
查看>>
查询sql limit用法,望大神指教
查看>>
如何理解面向过程、面向对象、面向切面?它们有什么区别?(转载)
查看>>
十四、MySQL UPDATE 查询
查看>>
CentOS系统通过PXE实现批量无人值守安装
查看>>
c++控制台程序实现定时器
查看>>
Qt快速入门学习笔记(画图篇)
查看>>
深入浅析nginx部署及简单优化
查看>>
C++定义指针数组
查看>>
Codeforces Round #446 (Div. 2) C. Pride【】
查看>>
洛谷 P3371 【模板】单源最短路径 【链式前向星+SPFA】
查看>>
hdu 1230 火星A+B
查看>>
vijos1144(小胖守皇宫)
查看>>
Tomcat中的Session小结
查看>>
android加载大图片到内存
查看>>
嵌入式实时操作系统μCOS原理与实践任务控制与时间的解析
查看>>
获取windows磁盘的可用空间函数
查看>>