JAVA_WEB项目(结合Servlet+jsp+ckEditor编辑器+jquery easyui技术)实现新闻发布管理系统第四篇:前台首页,新闻分类(体育新闻,科技新闻等),新闻列表分页的实现

上一篇介绍了JAVA_WEB项目之新闻发布管理系统第三篇:新闻发布,新闻修改,新闻删除功能的实现

下面实现前台首页,新闻分类(体育新闻,科技新闻等),新闻列表分页。

1、首页的jsp代码;

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>新闻主页</title>

  </head>
  <body align="center">
  <div align="center"> 
    <%@include file="head.jsp"%>
	<table  style="border:6px solid #ccc" border="1px" cellspacing="0px" width="1200px" height="600px">
		<tr>
			<td><br/><br/><br/><br/>
			<div style="width:300px"><img src="images/z_title.png"/></div><br/>
			<iframe frameborder="0" width="100%" height="100%"  scrolling="no" name="all" src="${pageContext.request.contextPath}/FrontNewsAction?action=findAllNews" ></iframe></td>
			<td>
			<br/><br/><br/><br/>
			<div style="width:300px"><img src="images/k_title.png"/></div><br/>
			<iframe frameborder="0" width="100%" height="100%"  scrolling="no"  name="technology" src="${pageContext.request.contextPath}/FrontNewsAction?action=findAllNews&category_id=1"></iframe></td>
		</tr>
		<tr>
			<td>
			<br/><br/><br/><br/>
			<div style="width:300px"><img src="images/t_title.png"/></div><br/>
			<iframe frameborder="0" width="100%" height="100%"  scrolling="no" name="popular" src="${pageContext.request.contextPath}/FrontNewsAction?action=findAllNews&category_id=2"></iframe></td>
			<td>
			<br/><br/><br/><br/>
			<div style="width:300px"><img src="images/y_title.png"/></div><br/>
			<iframe frameborder="0" width="100%" height="100%"  scrolling="no" name="sports" src="${pageContext.request.contextPath}/FrontNewsAction?action=findAllNews&category_id=3" ></iframe></td>
		</tr>
	 </table>
  </div>
  </body>
</html>

2、新闻分类,新闻分页的实现:

package com.news.action;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.news.domain.News;
import com.news.domain.PageBean;
import com.news.domain.QueryInfo;
import com.news.service.FrontNewsService;
import com.news.utils.WebUtils;

public class FrontNewsAction extends BaseAction{
	public void findAllNews(HttpServletRequest request,HttpServletResponse response) throws Exception{
		try{
			//synchronized (this) {
				QueryInfo info=WebUtils.request2bean(request, QueryInfo.class);
				FrontNewsService service=new FrontNewsService();
				String cid=request.getParameter("category_id");
				int category_id=0;
				if(cid!=null){
					category_id=Integer.parseInt(cid);
				}
				PageBean bean= service.pageQuery(info,category_id);
				System.out.println("大小是:"+bean.getList().size());
				String jsp_Page="/news_jsps/News_All.jsp";
				System.out.println(category_id);
				if(category_id==1){
					jsp_Page="/news_jsps/News_Technology.jsp";
				}else if(category_id==2){
					jsp_Page="/news_jsps/News_Sports.jsp";
				}else if(category_id==3){
					jsp_Page="/news_jsps/News_Popular.jsp";
				}
				request.setAttribute("pagebean", bean);
				request.getRequestDispatcher(jsp_Page).forward(request, response);
			//}
			
		}catch (Exception e) {
			e.printStackTrace();
			request.setAttribute("message", "查看新闻列表失败!!");
			request.getRequestDispatcher("/message.jsp").forward(request, response);
		}
	}
	public void findNewsById(HttpServletRequest request,HttpServletResponse response) throws Exception{
		try{
			String news_id=request.getParameter("news_id"); 
			FrontNewsService service=new FrontNewsService();
			News news= service.findNewsById(Integer.parseInt(news_id));
			request.setAttribute("news", news);
			request.getRequestDispatcher("/news_jsps/News_Information.jsp").forward(request, response);
		}catch (Exception e) {
			e.printStackTrace();
			request.setAttribute("message", "查看新闻失败!!");
			request.getRequestDispatcher("/message.jsp").forward(request, response);
		}
	}
}

service层:

package com.news.service;

import com.news.dao.FrontNewsDao;
import com.news.domain.News;
import com.news.domain.PageBean;
import com.news.domain.QueryInfo;
import com.news.domain.QueryResult;

public class FrontNewsService {

	FrontNewsDao dao=new FrontNewsDao();
	public PageBean pageQuery(QueryInfo queryInfo,int category_id) throws Exception
	{
		//调用dao获得页面数据
		QueryResult qr= dao.pageQuery(queryInfo.getStartindex(), queryInfo.getPagesize(),category_id);
		//把获得页面数据封装到pagebean里面
		PageBean pagebean=new PageBean();
		pagebean.setList(qr.getList());
		pagebean.setTotalrecord(qr.getTotalrecord());
		pagebean.setCurrentpage(queryInfo.getCurrentpage());
		pagebean.setPagesize(queryInfo.getPagesize());
		return pagebean;
	}
	public News findNewsById(int news_id) throws Exception{
       return	dao.findNewsById(news_id);
	}
}

dao层:

package com.news.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;

import org.apache.commons.dbutils.DbUtils;

import com.news.domain.Category;
import com.news.domain.News;
import com.news.domain.QueryResult;
import com.news.utils.JdbcUtils;

public class FrontNewsDao {
	public QueryResult pageQuery(int startindex,int pagesize,int category_id) throws Exception
	{
		Connection conn=null;
		PreparedStatement st=null;
		ResultSet rs=null;
		QueryResult qr=new QueryResult();
		try {
			conn=JdbcUtils.getConnection();
			String sql="select * from tb_news order by id desc limit ?,?";
			System.out.println("分类id:"+category_id);
			if(category_id>0){
				sql="select * from tb_news where category_id=? order by id desc limit ?,? ";
			}
			st=conn.prepareStatement(sql);
			if(category_id>0){
				st.setInt(1,category_id );
				st.setInt(2, startindex);
				st.setInt(3, pagesize);
			}else{
				st.setInt(1, startindex);
				st.setInt(2, pagesize);
			}
			rs=st.executeQuery();
			List list=new LinkedList();
			while(rs.next())
			{
				News n=new News();
				n.setTitle(rs.getString("title"));
				n.setContent(rs.getString("content"));
				n.setNews_id(rs.getInt("id"));
				n.setDate(rs.getDate("date"));
				n.setCategory(new Category(rs.getInt("category_id"),null));
				list.add(n);
			}
			if(category_id>0){
				sql="select count(*) from tb_news where category_id=?";
			}else{
				sql="select count(*) from tb_news";
			}
			st=conn.prepareStatement(sql);
			if(category_id>0){
				st.setInt(1,category_id );
			}
			rs=st.executeQuery();
			if(rs.next())
			{
				qr.setTotalrecord(rs.getInt(1));
			}
			qr.setList(list);
			return qr;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			throw new Exception(e);
		}finally{
			 DbUtils.closeQuietly(conn, st, rs);
		}
	}
	public News findNewsById(int news_id) throws Exception{
		Connection conn=null;
		PreparedStatement st=null;
		ResultSet rs=null;
		try {
			conn=JdbcUtils.getConnection();
			String sql="select * from tb_news where id=?";
			st=conn.prepareStatement(sql);
			st.setInt(1, news_id);
			rs=st.executeQuery();
			News n=new News();
			if(rs.next())
			{
				
				n.setTitle(rs.getString("title"));
				n.setContent(rs.getString("content"));
				n.setNews_id(rs.getInt("id"));
				n.setDate(rs.getDate("date"));
				n.setCategory(new Category(rs.getInt("category_id"),null));
			}
			return n;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			throw new Exception(e);
		}finally{
			 DbUtils.closeQuietly(conn, st, rs);
		}
	}
}
工具类:

package com.news.utils;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.mchange.v2.c3p0.DataSources;

public class JdbcUtils implements ServletContextListener{
    	
    private static ComboPooledDataSource ds=null;
    static{
        try{  	
    	ds=new ComboPooledDataSource();
        }catch (Exception e) {
			// TODO: handle exception
        	throw new ExceptionInInitializerError(e);
		}
    }
    public static DataSource getDateSource(){
    	return ds;
    }
    public static Connection getConnection() throws SQLException{
      return ds.getConnection();	
    }
	public static void release(Connection conn,Statement st,ResultSet rs)
	{
		if(rs!=null)
		{
			try{
				rs.close();
			}catch (Exception e) {
				// TODO: handle exception
				e.printStackTrace();
			}
			rs=null;
		}
		if(st!=null)
		{
			try{
			st.close();
			}catch (Exception e) {
				// TODO: handle exception
				e.printStackTrace();
			}
			st=null;
		}
		if(conn!=null){
			try{
			conn.close();
			}catch (Exception e) {
				// TODO: handle exception
				e.printStackTrace();
			}
			conn=null;
		}
	}
	public void contextDestroyed(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("���");
		 try
	        {
	            DataSources.destroy(ds);
	        }
	        catch (Exception e)
	        {
	            e.printStackTrace();
	        }
	 
	         
	        try {
	            Thread.sleep(1000);
	        } catch (InterruptedException e) {
	            e.printStackTrace();
	        }
	    }
	public void contextInitialized(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		
	}
}
系统的主要源码就贴到这,接下来提供源码下载
整个项目的源码下载

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值