java_web项目3

22 篇文章 0 订阅

java_web项目3(文章板块内容显示)

文章板块内容的显示 包括图片 点赞数量(如果是该用户点赞了这篇文章样式还不一样)评论数量 还有分页展示(一页展示五篇)
分页查询是依靠数据库做到的 如下
pageNumber是值当前的页码
pageSize指的是每一个所要展示的数量

String sql = "select * from (select t1.* , rownum num  from ("
					+ "select * from campus_inform order by cDate) "
					+ "t1 where rownum <="+pageNumber*pageSize+")"
					+ "where num>"+(pageNumber-1)*pageSize;

根据业务需求 我创建文章类放在model下 来存放从数据库类面返回的数据

	private String userId;  //用户id
    private String cId;    //文章id
    private String cName;  //文章名字
    private String cText;  //文章内容
    private Date cDate;  //发布日期
    private int cReply;  //回复数量
    private int cPrise;  //点赞数量
    private int cTransmit;//转发数量
    private int cStatus; //点赞状态  0--该用户没有给该id点赞   1--该用户给该id点赞了

首先是servle里面得到值

//查找文章
	public void search(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession session = request.getSession();
		int pagenumber = 1;//设置初始页码为1
		
		String userId = "0";
		User user = (User) session.getAttribute("user");
		if(user!=null){
			userId = user.getUserId();
		}
		
		if(request.getParameter("pagenumber")!=null){
			pagenumber =Integer.parseInt(request.getParameter("pagenumber"));
		}
		
		CInfoServiceImp csi = new CInfoServiceImp();
		List cInfoList =csi.search(pagenumber,userId);//得到文章
		List pictureList = csi.getPicturePath();//得到所有的图片地址
		int maxPage = csi.getMaxPage(); //得到最大页码数
		
		
		request.setAttribute("pictureList", pictureList);
		request.setAttribute("pagenumber", pagenumber);
		request.setAttribute("maxPage", maxPage);
		request.setAttribute("list", cInfoList);
		request.getRequestDispatcher("campusInform.jsp").forward(request, response);
	}

调用service进行业务处理

CInfoDaoImp cid = new CInfoDaoImp();
		List<CInfo> cInfoList=cid.search(pageNumber,pageSize);  //得到所有的文章的内容
		List<Prise> priseList = cid.searchPrise();   //得到所有的点赞信息
		//判断当前用户是否给该篇文章点过赞   如果点过赞 就把点赞状态设置为1  否则设置为0
		List<String> priseArticleId = new ArrayList<String>();
		for(int i=0;i<priseList.size();i++){
			if(priseList.get(i).getUserId().equals(userId)){
				priseArticleId.add(priseList.get(i).getArticleId());
			}
		}
		for(int i=0;i<priseArticleId.size();i++){
			for(int j=0;j<cInfoList.size();j++){
				if(priseArticleId.get(i).equals(cInfoList.get(j).getcId())){
					cInfoList.get(j).setcStatus(1);
				}else{
					if(cInfoList.get(j).getcStatus()!=1){
						cInfoList.get(j).setcStatus(0);
					}
				}
			}
		}
		return cInfoList;

最后数据查询

public List search(int pageNumber ,int pageSize) {
		List<CInfo> cInfoList = new ArrayList();
		try {
			//JDBC数据库连接 1.加载驱动
			Class.forName("oracle.jdbc.driver.OracleDriver");
			//2.创建链接
			Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "ADMIN");
			//3.获取一个Preparestatement
			String sql = "select * from (select t1.* , rownum num  from ("
					+ "select * from campus_inform order by cDate) "
					+ "t1 where rownum <="+pageNumber*pageSize+")"
					+ "where num>"+(pageNumber-1)*pageSize;
			PreparedStatement psmt = conn.prepareStatement(sql);
			
			ResultSet rs = psmt.executeQuery();
			while(rs.next()){
				CInfo cInfo = new CInfo();
				
				String userId=rs.getString(1);
				String cId=rs.getString(2);
				String cName=rs.getString(3);
				String cText=rs.getString(4);
				Date cDate = rs.getDate(5);
				int cReply=rs.getInt(6);
				int cPrise=rs.getInt(7);
				int cTransmit=rs.getInt(8);
				
				cInfo.setUserId(userId);
				cInfo.setcId(cId);
				cInfo.setcName(cName);
				cInfo.setcText(cText);
				cInfo.setcDate(cDate);
				cInfo.setcReply(cReply);
				cInfo.setcPrise(cPrise);
				cInfo.setcTransmit(cTransmit);
				
				cInfoList.add(cInfo);
			}
			
			if(conn!=null){
				conn.close();
			}
			if(psmt!=null){
				psmt.close();
			}
			return cInfoList;
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

然后把结果返回servlet进行跳转到展示页面
前端拿到代码后用el表达式得到值进行展示
这里面还有好多细节不变一一细说 代码实现的过程中碰到的一些难题jquery的控制等等
如果你有兴趣的话,欢迎私信我

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pumpkin的玄学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值