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

来源:互联网 发布:数码兽传说:网络侦探 编辑:程序博客网 时间:2024/05/19 13:20

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

结构跟前面的一样

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 blocke.printStackTrace();}finally{try {pstmt.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.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 blocke.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 blocke.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 blocke.printStackTrace();}finally{try {pstmt.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.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 blocke.printStackTrace();}finally{try {pstmt.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {rs.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.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