SSH:利用Struts2+Hibernate4+Spring4+SQLServer框架,搭建一个前后端web网站(1)

前言:

利用暑假2个月的时间,自己用框架搭建了一个前后端web网站,因为时间有限,暑假之后便没有再修改过了。因为这是自己第一次利用架构做的网站,所以在做的过程中也是“一波三折”,需要用到的知识点也是书上现学现用,可终归是用了些皮毛(这里十分感谢我的学长,很多问题帮助了我很多)。现在大三初几个月,自己又重新看了hibernate和spring,所以也想重新整理暑假做的网站(因为有些功能的实现方式很“狗屎”,看到就难受),借此机会让自己也能重新学习以及希望能够对初学SSH的同学有所帮助。

同时网站的一些酷炫前端不是自己写的,遥想暑假苦逼写前段的日子就无奈,自己会的很基础好看的效果出不来,所以有的是用模版的,网站的信息填充也是网站抓取的。综之:侵删    :)逃


正文:

  • 目录结构:

       目录结构有些不是必需的,只是那时候年少无知,稀里糊涂的就这么写了               

       

     评论功能:

          模仿CSDN的评论结构如下:也就是通过父子关系,让不管一级还是二级的子评论都挂在父评论之下,


     

      其中1,2都是对文章的评论,3回复2,4回复3.  等级越高,向右靠5px的距离。

      我的想法是,利用数据结构,将对文章的评论(一级评论)放在一张表中,其他的都放在另一个表中,然后通flag

      进行标记,关联互相的父子关系。数据库表设置如下:

  

     代表存放一级评论 comment表:


      


      ID:回复的ID号

      sport_id: 被回复的文章ID号

      user_id:  评论者


    

     代表存放二级评论 Reply表:(除了直接回复文章的都是)


     


    ID:表示二级评论序号

    sport_id:表示文章ID号

    type:是reply类型,代表是回复“子回复(也就是等级肯定 >= 2)”的,如果是comment 代表是回复一级回复 

              (直接回复文章的)

   targetCRId:代表其“父评论”是在reply表中还是comment表中

   user_id: 回复者

   target_id:被回复者(给被回复人发消息提醒,你被回复了)


 

这样设置表,然后通过文章id号,得到所有的评论,然后通过数据结构将评论进行父子关系的关联结构:假设将取出的一级评论放入一个栈中,将二级以上的评论放入list2,同时设置一个栈Stack和一个存放最后顺序排序成功的list3

循环栈,只要栈不空,取出栈顶元素放入list3,将取出的栈顶元素作为父节点,去list2中找子评论(根据表二中的type和targetCDId), 只要找到一个子评论过,便将这个子评论加入list3,同时将这个自评论加入栈顶,continue循环,继续取出栈顶元素,继续以上操作。当stack全都pop之后,在jsp页面只要循环展示list3就可


  while(!S.isEmpty()){
	CRList template = S.pop();
	list3.add(template);
	for(int i = 0; i<list2.size(); i++){
		//如果是父子关系
	    if((template.getId() == list2.get(i).getTargetId())){
		if((list2.get(i).getFlag() == 2 && template.getFlag() == 2)
                                       || (list2.get(i).getFlag() - template.getFlag() == 1)){
			if((template.getRank() + 50) >= 600){
				list2.get(i).setRank(600);  // 设置右靠的最大间距
			}else{  // 设置向右靠的间距
				list2.get(i).setRank(template.getRank() + 50);
			}
						
		S.push(list2.get(i));
		  }	
	      }
           }
	}



  



    















  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值