博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于数据库设计-博客系统
阅读量:6736 次
发布时间: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

你可能感兴趣的文章
Windows死机的话,可能的一些猫病
查看>>
作为架构师,你必需要搞清楚的概念:POJO、PO、DTO、DAO、BO、VO
查看>>
golang-web框架revel一个表单提交的总结
查看>>
PHP 根据IP获取地理位置
查看>>
如何设置同一单据的单据头字段各行合并显示吗?
查看>>
HAProxy负载均衡代理
查看>>
Velocity入门指南
查看>>
LNMP架构搭建论坛(三)
查看>>
有关jdk和oracle和eclipse问题
查看>>
为什么 Redis 单线程能支撑高并发?
查看>>
程序员都会的 35 个 jQuery 小技巧
查看>>
2019年全国各地挖掘机司机(机手)工资待遇怎样?
查看>>
pdf怎么转换成jpg?转换质量高的方法
查看>>
day13 static 关键字
查看>>
我的友情链接
查看>>
oracle proc 详解
查看>>
sqlserver与mysql数据同步问题
查看>>
交换机端口镜像配置说明
查看>>
Wireshark 检索命令
查看>>
Iterator(迭代器)-对象行为型模式
查看>>