十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
很简单,把所有回复(reply)都看成等同的,在数据库设计时为回复(reply)表设计一个外键(replyToreplyID),指向被回复的回复的主键。
创新互联公司专注于青海网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供青海营销型网站建设,青海网站制作、青海网页设计、青海网站官网定制、微信小程序服务,打造青海网络公司原创品牌,更为您提供青海网站排名全网营销落地服务。
也就是说回复(reply)这个表中有一个指向自己主键的外键。
在页面上,就用递归来搜索当前回复具有的回复条目并显示,就可以了。思想就是这样。
你可以通过写servelet或是jsp来实现,论坛是个相当大的工程,建议你先做好设计,否则日后改起来就麻烦了,建议采用MVC模式,用jsp写V,servelet写C,M可以采用数据库,也可以采用文件,但是文件的安全系数可能相对低一些。
评论肯定是基于文章的,文章肯定有唯一的ID。
这样的话,可以让评论全部关联到这个ID上。
随便写写,代码不能运行,参考即可。
public class Comment {
Long id;
Article article;//文章
User user;//用户
Date date;//时间
String content;//内容
}
public class CommentService {
void addComment(Article article, User user, String content);
void updateComment(Comment comment);
void deleteComment(Comment commnet);
ListComment findCommentByArticle(Article article);
ListComment findCommentByUser(User user);
}
public class AddCommentAction {
private Long articleId;
private Long userId;
private String content;
public String execute() {
Article article = articleService.getArticle(articleId);
User user = userService.getUser(userId);
commentService.addComment(article, user, comment);
return SUCCESS;
}
}
给回复a标签一个js onclick事件 然后给textarea一个Id 然后在onclick事件中写document.getElementById("textarea的ID").focus()
谁回复的 首先要去你的帖子表里的回复关联的外键里取出,然后再根据外键查出回复内容以及账户资料的外键并且查出回复人的账户
第二点只能说出思路 代码太多了
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 将请求、响应的编码均设置为UTF-8(防止中文乱码)
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
// 接收参数微信加密签名、 时间戳、随机数
String signature = request.getParameter("signature");
String timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");
PrintWriter out = response.getWriter();
// 请求校验
boolean checkSignature = SignUtil.checkSignature(signature, timestamp, nonce);
if (checkSignature) {
// 调用核心服务类接收处理请求
String respXml = processRequest(request);
out.print(respXml);
}
out.close();
out = null;
}