标签:
新闻发布系统个人总结
每到这个时候总是会有一大批作业and课程设计来袭,作为jsp课程,自然就会有jsp课程设计啦,~~~~(>_<)~~~~ ,不过,表示个人对jsp还是比较喜欢的,所以嘛,我肯定会认真对待啦~,长话短说,现在进入正题(ps:本篇以jsp页面中的java代码为主,网站布局,不宜详细介绍,请谅解)
-------Tips One-------
项目要求:开发一个新闻发布系统的项目可以实现新闻的发布,新闻内容的预览,新闻的增删改,管理员信息查看等功能
项目分析:作为新闻发布系统需要有数据库,本次设计中使用的数据库为mysql数据库,链接数据库的方法使用了JDBC+Mysql技术 ,由于小编技术有限,所以本次的后台使用了jsp页面,而没有使用什么框架或者serverlet技术什么的,因为还没学= =,所以作为初学者只能这么做啦......
需要的方法分析:显示新闻标题的方法,显示新闻内容的方法//////新闻增加的方法,新闻删除的方法,新闻修改的方法///管理员信息显示的方法////
系统结构:
-------Tips Two-------
项目前台界面:前台界面采用div+css+js进行设计,运用bootstrap框架技术进行新闻标题的显示,而且引用了百度的新闻代码,可以在自己的页面中展示百度新闻,小编技术有限,先附图,求勿喷,勿喷...
---百度代码的获取地方:↓↓↓↓↓↓↓↓↓↓↓↓
-------Tips Three-------
以下是后台登陆的Login界面(代码在网上找的,如有版权问题,请联系小编/wq)
在登陆的页面中需要进行表单的数据与数据库的信息进行比对,代码如下
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="utf-8"%> <% Connection con=null; PreparedStatement psmt=null; ResultSet rs=null; String name=request.getParameter("username"); //获取表单中账号 String pass=request.getParameter("password"); //获取表单中的密码 try { Class.forName("com.mysql.jdbc.Driver"); }catch(ClassNotFoundException e) { System.out.println("Driver Error"); } try { con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mynews", "root", "baby123"); String sql="select * from administrator where User=? and Password=?"; psmt=con.prepareStatement(sql); psmt.setString(1,name); psmt.setString(2,pass); rs=psmt.executeQuery(); if(rs.next()) { session.setAttribute("name",name); //设置session对象的属性和内容,以便进行访问控制 response.sendRedirect("../index.jsp"); //验证数据成功后登陆后台 }else { response.sendRedirect("../Login.html"); //错误后仍旧在后台的登陆界面 } }catch(SQLException e) { e.printStackTrace(); }finally { try{ if(rs!=null) rs.close(); if(psmt!=null) psmt.close(); if(con!=null) con.close(); }catch(SQLException e) { e.printStackTrace(); } } %>
-------Tips Four------
后台管理界面如下(ps:采用达内科技的模板(来源))
界面代码不予展示
============================================================================================
首先:我们把用到的java文件予以显示:
package cn.news.bzu.dao; import cn.news.bzu.util.*; import java.util.Date; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.PreparedStatement; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import cn.news.bzu.entity.flash; public class flashDao { // 获取新闻快讯的信息 public List<flash> showFlash() { List<flash> list = new ArrayList<flash>(); // 创建集合 Connection con = null; PreparedStatement psmt = null; ResultSet rs = null; try { con = DbHelper.getConnection(); // 从公共类中获取数据库的链接 String sql = "select * from flash"; psmt = con.prepareStatement(sql); rs = psmt.executeQuery(); while (rs.next()) { int Id = rs.getInt("Id"); String Creator = rs.getString("Creator"); Date CreateTime = rs.getDate("CreateTime"); String TitleName = rs.getString("TitleName"); String Content = rs.getString("Content"); flash flash = new flash(Id, TitleName, Creator, Content, CreateTime); list.add(flash); // 把一个新闻信息加入集合 } } catch (Exception e) { e.printStackTrace(); } finally { DbHelper.closeResultSet(rs); DbHelper.closeStatement(psmt); DbHelper.closeConnection(con); } return list; } // 获取新闻快讯的信息详情 public flash getFlashById(int id) { Connection con = null; PreparedStatement psmt = null; ResultSet rs = null; flash flash = null; try { con = DbHelper.getConnection(); // 从公共类中获取数据库的链接 String sql = "select * from flash where Id=?"; psmt = con.prepareStatement(sql); psmt.setInt(1,id); rs = psmt.executeQuery(); if (rs.next()) { int Id = rs.getInt("Id"); String Creator = rs.getString("Creator"); Date CreateTime = rs.getDate("CreateTime"); String TitleName = rs.getString("TitleName"); String Content = rs.getString("Content"); flash flsh=new flash(Id, TitleName, Creator, Content, CreateTime); return flsh; } else { return null; } } catch (Exception e) { e.printStackTrace(); return null; } finally { DbHelper.closeResultSet(rs); DbHelper.closeStatement(psmt); DbHelper.closeConnection(con); } } //根据id删除新闻信息 public int Delete(int id) throws Exception{ Connection con=null; PreparedStatement psmt=null; ResultSet rs=null; int n=0; try{ con=DbHelper.getConnection(); String sql="delete from flash where id=?"; psmt=con.prepareStatement(sql); psmt.setInt(1, id); n=psmt.executeUpdate(); }catch(SQLException e){ e.printStackTrace(); }finally{ try { if(rs!=null){ rs.close(); } if(psmt!=null){ psmt.close(); } if(con!=null){ con.close(); } } catch (SQLException e) { e.printStackTrace(); } } return n; } //添加新闻快讯 public int addFlash(String titleName,String Content,String Creator){ int n=0; //n表示返回值 Connection con=null; PreparedStatement psmt=null; try { SimpleDateFormat HMFromat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String strCurrentTime = HMFromat.format( new Date()); //获取系统时间添加数据库 con=DbHelper.getConnection(); String sql="insert into flash(TitleName,Content,Creator,CreateTime) values(?,?,?,?)"; psmt=con.prepareStatement(sql); psmt.setString(1, titleName); psmt.setString(2, Content); psmt.setString(3, Creator); psmt.setString(4,strCurrentTime ); n=psmt.executeUpdate(); } catch (Exception e) { e.printStackTrace(); }finally{ try { if(psmt!=null){ psmt.close(); } if(con!=null){ con.close(); } } catch (Exception ex) { ex.printStackTrace(); } } return n; } //通过id更新数据 public int UpdateFlash(int id,String title,String content){ int n=0; //n表示返回值 Connection con=null; PreparedStatement psmt=null; try { // SimpleDateFormat HMFromat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); // String strCurrentTime = HMFromat.format( new Date()); // //获取系统时间添加数据库 con=DbHelper.getConnection(); String sql="Update flash set TitleName=?,Content=? where id=?"; psmt=con.prepareStatement(sql); psmt.setString(1, title); psmt.setString(2, content); psmt.setInt(3, id); n=psmt.executeUpdate(); } catch (Exception e) { e.printStackTrace(); }finally{ try { if(psmt!=null){ psmt.close(); } if(con!=null){ con.close(); } } catch (Exception ex) { ex.printStackTrace(); } } return n; } }
-------Tips Five------
由于后续的功能实现的技术都一样,所以下面以新闻列表进行展示
jsp代码的实现:
<table id="datalist"> <tr> <th><font size="-1">Id</font></th> <th><font size="-1">二级标题</font></th> <th><font size="-1">新闻内容</font></th> <th><font size="-1">创建时间</font></th> <th><font size="-1">创建者</font></th> <th><font size="-1">操作</font></th> </tr> <% flashDao dao=new flashDao(); List<flash> list=dao.showFlash(); for(flash t1:list) {%> <tr> <td width="50""><font size="-1"><%=t1.getId() %></font></td> <td><font size="-1"><%=t1.getTitleName() %></font></td> <td><font size="-1"><%=t1.getContent() %></font></td> <td><font size="-1"><%=t1.getCreateTime() %></font></td> <td width="50"><font size="-1"><%=t1.getCreator() %></font></td> <td class="td_modi"> <a href="../Update/UpdateFlash-1.jsp?id=<%=t1.getId() %>"><input type="button" value="修改" class="btn_modify" /></a> <a href="../../Dooperate/deleteFlash.jsp?id=<%=t1.getId() %>"><input type="button" value="删除" class="btn_delete" /></a> </td> </tr> <%} %> <tr> <td colspan="6"><a href="../AddLists/AddFlash.jsp"><font size="5" color="red">添加新闻</font></a></td> </tr> </table>
----添加新闻显示:
jsp【处理】代码(此处不是当前页面的代码,当前form的action="#"为处理页面的代码):
request.setCharacterEncoding("utf-8"); //此条语句为了避乱乱码问题 String title=request.getParameter("title"); String content=request.getParameter("content"); String creator=(String)session.getAttribute("name"); //通过session对象获取当前用户 flashDao flashDao=new flashDao(); int result=flashDao.addFlash(title,content,creator); if(result>0) { response.sendRedirect("../CMSPages/NewsList/FlashNews.jsp"); } else { response.sendRedirect("http://www.baidu.com"); //如果没有返回值,也就是失败,则跳转到百度的页面 }
---删除新闻代码显示:
String id=request.getParameter("id"); int ID=Integer.parseInt(id); flashDao dao=new flashDao(); int result=dao.Delete(ID); if(result>0) { response.sendRedirect("../CMSPages/NewsList/FlashNews.jsp"); } else { response.sendRedirect("http://www.baidu.com"); }
ps:执行删除代码会带有一个返回值,根据是否有返回值进行页面跳转的操作
-----修改新闻信息:
次处代码为:
<form action="../../Dooperate/doUpdateFlash.jsp" method="post"> <table id="datalist"> <font size="3" color="red">[ 更新快讯新闻 ]</font> <% //根据id获取对应的信息,只有获取信息才能够在文本框中显示 flashDao flashDao = new flashDao(); flash ff = flashDao.getFlashById(Integer.parseInt(request.getParameter("id"))); if (ff != null) { %> <tr> <td> <font size="-1">二级标题</font> </td> <td> <font size="-1"><input type="text" style="width: 500px;" name="title" id="title" value="<%=ff.getTitleName()%>" /> </font> </td> </tr> <tr> <td> <font size="-1">新闻内容</font> </td> <td> <font size="-1"><input type="text" style="width: 500px;" name="content" id="content" value="<%=ff.getContent()%>" /> </font> </td> </tr> <tr> <td> <font size="-1">操作</font> </td> <td> <font size="-1"> <input type="hidden" value="<%=ff.getId() %>" id="hidden" name="hidden"/> //【【次处隐藏,这样的话通过表单传入id,这样就可以进行更新操作,更新操作的条件为这个id】】】 <input type="submit" value="更新" class="btn_modify" /> </font> </td> </tr> <% } %> </table> </form>
处理表单传入的代码:
request.setCharacterEncoding("utf-8"); //此条语句 ,必须要写否则会出现乱码 String id=request.getParameter("hidden"); int yy=Integer.parseInt(id); //id需要进行转换,转化为int型的 String title=request.getParameter("title"); String content=request.getParameter("content"); String creator=(String)session.getAttribute("name"); //通过session对象获取当前用户 flashDao flashDao=new flashDao(); int result=flashDao.UpdateFlash(yy,title,content); if(result>0) { response.sendRedirect("../CMSPages/NewsList/FlashNews.jsp"); } else { response.sendRedirect("http://www.baidu.com"); }
ps:在修改页面时候,表单中需要隐藏个id,这个id在后续的更新是个关键!!!,还有request.getParameter("$"),这个$是个表单中的name,不是id,一定要记住,否则会出现返回值为null,~~~~(>_<)~~~~
//方法已附上,注意已附上,由于时间紧,所以就先这样写吧,后续将进行更新,请谅解
//项目已附上链接,(项目的修改部分只做了flash部分,由于时间紧,只有先这样啦,请亲们谅解)
//网站推荐:源码之家,懒人之家,站长工具,站长素材
//URL:(http://yunpan.cn/cyAkfeniwz2Z8 (提取码:e315));
标签:
原文地址:http://www.cnblogs.com/boy1025/p/4191962.html