实现新闻发布系统(三)二级新闻发布

这次的代码基本都是自己边想边敲出来的,有进步!

结构跟前面的一样

1.SecondLevelBean

package cn.News.JavaBean;

import java.sql.Date;

public class SecondLevelBean {

	private int id;
	private String TitleName;
	private String FilePath;
	private String Creater;
	private Date CteatTime;
	private int FirstId;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getTitleName() {
		return TitleName;
	}
	public void setTitleName(String titleName) {
		this.TitleName = titleName;
	}
	public String getFilePath() {
		return FilePath;
	}
	public void setFilePath(String filePath) {
		this.FilePath = filePath;
	}
	public String getCreater() {
		return Creater;
	}
	public void setCreater(String creater) {
		this.Creater = creater;
	}
	public Date getCteatTime() {
		return CteatTime;
	}
	public void setCteatTime(Date cteatTime) {
		this.CteatTime = cteatTime;
	}
	public int getFirstId() {
		return FirstId;
	}
	public void setFirstId(int firstId) {
		FirstId = firstId;
	}
}
2.SecondLevelDAO

package cn.News.dao;

import cn.News.JavaBean.SecondLevelBean;

public interface SecondLevelDAO {

	public void insert(SecondLevelBean secondLevelBean);
}
3.SecondLevelDAOImpl  继承上面的接口

package cn.News.dao.impl;

import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;

import cn.News.JavaBean.SecondLevelBean;
import cn.News.dao.SecondLevelDAO;
import cn.News.dbcon.DBConnection;

public class SecondLevelDAOImpl implements SecondLevelDAO {

	private DBConnection con;
	private PreparedStatement pstmt;
	private String sql;
	public void insert(SecondLevelBean secondLevel) {
       
		DBConnection con=new DBConnection();
		SecondLevelBean secondLevelBean=new SecondLevelBean();
		sql="insert into secondleveltitle(TitleName,FilePath,Creater,CreatTime,FirstId)"+"values(?,?,?,?,?)";
		try {
			pstmt.setString(1, secondLevelBean.getTitleName());
			pstmt.setString(2, secondLevelBean.getFilePath());
			pstmt.setString(3, secondLevelBean.getCreater());
			pstmt.setDate(4, secondLevelBean.getCteatTime());
			pstmt.setInt(5,secondLevelBean.getFirstId());
			pstmt.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			try {
				pstmt.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}con.closeCon();
			
		}
		
		
	}
	
}
4.
package cn.News.factory;

import cn.News.dao.FirstLevelDAO;
import cn.News.dao.SecondLevelDAO;
import cn.News.dao.UserDAO;
import cn.News.dao.impl.FirstLevelDAOImpl;
import cn.News.dao.impl.SecondLevelDAOImpl;
import cn.News.dao.impl.UserDAOImpl;

public class DAOFactory {
//获取DAO对象
	public static UserDAO getUserDAOInstance(){
		
		return new UserDAOImpl();
	}
	
	public static FirstLevelDAO getFirstLevelDAOInstance(){
		
		return new FirstLevelDAOImpl();
	}
	
	public static SecondLevelDAO getSecondLevelDAOInstance(){
	
		return new SecondLevelDAOImpl();		
	}
5.SecondLevelServlet

package cn.News.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;

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

import cn.News.JavaBean.SecondLevelBean;
import cn.News.JavaBean.UserBean;
import cn.News.factory.DAOFactory;
import com.jspsmart.upload.File;
import com.jspsmart.upload.SmartUpload;//这里使用了smartupload插件来完成上传文件的功能
import com.jspsmart.upload.SmartUploadException;

public class SecondLevelServlet extends HttpServlet {

	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

            doPost(request,response);
	}

	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
           
		SmartUpload smart=new SmartUpload();
		//初始化
		smart.initialize(this.getServletConfig(), request, response);
		//准备上传
		try {
			smart.upload();
		} catch (SmartUploadException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//获取表单元素
		int firstId=Integer.parseInt(smart.getRequest().getParameter("firstId"));
		String titleName=smart.getRequest().getParameter("titleName");
		UserBean user=(UserBean)request.getSession().getAttribute("user");
		String creater=user.getUsername();
		
		Date date=new Date();
		long longTime = date.getTime();
		java.sql.Date creatTime=new java.sql.Date(longTime);
		
		//上传文件
		File file=smart.getFiles().getFile(0);
		try {
			file.saveAs("newshtml/"+file.getFileName());
		} catch (SmartUploadException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//封装
		SecondLevelBean secondLevelBean=new SecondLevelBean();
		secondLevelBean.setFirstId(firstId);
		secondLevelBean.setCreater(creater);
		secondLevelBean.setCteatTime(creatTime);
		secondLevelBean.setFilePath("newshtml/"+file.getFileName());
		secondLevelBean.setTitleName(titleName);
		
		DAOFactory.getSecondLevelDAOInstance().insert(secondLevelBean);//把表单插入
		request.getRequestDispatcher("title_file_success.jsp").forward(request, response);
		
	}


}
以上二级新闻发布部分完成,下面继续上一篇的以及新闻发布,因为用户登录进来之后,在一级新闻发布的界面上可能有两种操作,一种是写入以及新闻标题,一种是查询一级标题以上传其对应的二级新闻文件。即一级新闻发布有两种操作:插入和查询

1.FirstLevelDAO

package cn.News.dao;

import java.util.List;

import cn.News.JavaBean.FirstLevelBean;

public interface FirstLevelDAO {
 
	public void insert(FirstLevelBean  firstLevel);
	public List<FirstLevelBean>  selectAll();//新增selectAll方法,将得到的结果以List的形式返回
	
}
2. SecondLevelDAOImpl:

package cn.News.dao.impl;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import cn.News.JavaBean.FirstLevelBean;
import cn.News.dao.FirstLevelDAO;
import cn.News.dbcon.DBConnection;

public class FirstLevelDAOImpl implements FirstLevelDAO {
   //发布一级标题
	private DBConnection con;
	private PreparedStatement pstmt;
	private String sql;
	private ResultSet rs;
	public void insert(FirstLevelBean firstLevel) {
        con=new DBConnection();
        sql="insert into firstleveltitle(Titlename,Creater,CreatTime)"+"values(?,?,?)";
        try {
			pstmt=con.getCon().prepareStatement(sql);
			pstmt.setString(1, firstLevel.getTitleName());
			pstmt.setString(2, firstLevel.getCreater());
			pstmt.setDate(3, firstLevel.getCteateTime());
			pstmt.executeUpdate();
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			try {
				pstmt.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			con.closeCon();
		}
		
		
	}
	public List<FirstLevelBean> selectAll() {
      
		con=new DBConnection();
		sql="select * from fisrtleveltitle";
		List<FirstLevelBean>  fl=new  ArrayList<FirstLevelBean>();
		try {
			pstmt=con.getCon().prepareStatement(sql);
			rs=pstmt.executeQuery();
			while(rs.next()){
				FirstLevelBean firstLevel=new FirstLevelBean();
				firstLevel.setUid(rs.getInt("id"));
				firstLevel.setCreater(rs.getString("Creater"));
				firstLevel.setTitleName(rs.getString("TitlName"));
				firstLevel.setCteateTime(rs.getDate("CreatTime"));
				fl.add(firstLevel);
				
				
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			
			try {
				pstmt.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			con.closeCon();
		}
		
		return fl;//以List形式返回数据库中的查询结果
	}

}
3.FirstLevelServlet:通过参数flag来判断进行插入还是查询的操作
package cn.News.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;

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

import cn.News.JavaBean.FirstLevelBean;
import cn.News.JavaBean.UserBean;
import cn.News.factory.DAOFactory;
public class FirstLevelServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
            doPost(request,response);
		
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
               request.setCharacterEncoding("UTF-8");
               String flag=request.getParameter("flag");//需在JSP页面中设置flag参数
               String path="";
               if("insert".equals(flag)){//参数为insert则进行插入的操作
			               String titleName=request.getParameter("titlename");
			               UserBean user=(UserBean)request.getSession().getAttribute("user");
			               String creater=user.getUsername();
			              Date date=new Date();
			              long longTime=date.getTime();
			              java.sql.Date createTime=new java.sql.Date(longTime);
			              
			              FirstLevelBean firstLevel=new FirstLevelBean();
			              firstLevel.setTitleName(titleName);
			              firstLevel.setCreater(creater);
			              firstLevel.setCteateTime(createTime);
			    	      DAOFactory.getFirstLevelDAOInstance().insert(firstLevel);
			    	      path="onetitle_success.jsp";//转入一级标题发布成功页面
               }
            else if ("select".equals(flag)){//参数为select则进行查询的操作,在JSP页面中将返回的结果填入下拉菜单中
            	   request.getSession().setAttribute("firstLevle", DAOFactory.getFirstLevelDAOInstance().selectAll());
                   path="title_file.jsp";//转入二级新闻发布页面
            }
                        request.getRequestDispatcher(path).forward(request,response);
	}
               
	
	

}








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值