您现在的位置是:网站首页> 编程资料编程资料
基于jsp实现新闻管理系统 附完整源码_JSP编程_
2023-05-25
368人已围观
简介 基于jsp实现新闻管理系统 附完整源码_JSP编程_
很棒的新闻发布系统分享给大家,希望大家喜欢。
下面就让我们来说一说基于jsp的新闻发布系统,其中使用的技术有JavaBean、fillter、数据库等,能够实现新闻的发布功能,在发布之后能够进行对每一条新闻的删除、修改、或者继续增加新的文章,最后还能够进行查询功能,其中引用了百度编辑器,能够进行图文并茂的编辑,极大地方便用户的使用。
注:完整项目下载地址:新闻发布系统
一、效果演示
首先让我们来看一看实现的效果:
下面是登陆的首界面:

图1 首界面
管理员登录页面:

图2 管理员登录界面
下面是管理员登陆之后的界面,可以进行添加新闻、删除新闻、查询新闻:

图3 管理员管理界面
下面是添加新闻界面,能够进行新闻的添加:

图4 添加新闻界面
下面是所添加的新闻:

图5 添加后的新闻
下面是修改新闻界面:

图6 修改新闻界面下面是修改后的界面

图7 修改后的界面
下面是删除新闻后的界面:

图8 删除新闻后的界面
对于新闻的查找,与其他类似,在这里我们使用的是利用新闻编号进行查询所需的信息,然后在新的页面上进行显示。
二、具体实现过程
1、环境:编程环境为NetBeans8.0和Oracle数据库
2、数据库后台的设计
在新闻管理系统中,我们需要数据库后台管理,其具体步骤如下所示:
根据所需的业务进行建表,可参见如下所示:建立数据库
3、编写步骤:
(1)首先建立以个项目,在此命名为Demo_08_NewsRealese,项目布局结构如下图所示,根据如下布局对项目进行布局设计,方便后面的编程,项目中web-inf为项目配置文件夹,images文件夹用于储存项目中使用的图片文件,ueditor为百度富文本编辑器文件夹,源包文件夹为Java类文件夹:

图9 项目布局结构图
接着,我们进行创建数据库连接层,即DAO和VO,分别存于包com.lut.beans和dao,类命名分别命名为NewsRealese、NewsRealeseDao,对于类NewsRealese而言,主要是实现字符串的包装,其内容与数据库里边的内容一一对应,其代码分别如下所示:
package com.lut.beans; public class NewsRealese { private String newsId; private String classId; private String kindId; private String myOther; private String headTitle; private String content; private String connectRealtive; private String author; private String editor; private String newsFrom; private String top; private String newsTime; private String hits; private String state; private String tag; public String getNewsId() { return newsId; } public void setNewsId(String newsId) { this.newsId = newsId; } public String getClassId() { return classId; } public void setClassId(String classId) { this.classId = classId; } public String getKindId() { return kindId; } public void setKindId(String kindId) { this.kindId = kindId; } public String getMyOther() { return myOther; } public void setMyOther(String myOther) { this.myOther = myOther; } public String getHeadTitle() { return headTitle; } public void setHeadTitle(String headTitle) { this.headTitle = headTitle; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getConnectRealtive() { return connectRealtive; } public void setConnectRealtive(String connectRealtive) { this.connectRealtive = connectRealtive; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getEditor() { return editor; } public void setEditor(String editor) { this.editor = editor; } public String getNewsFrom() { return newsFrom; } public void setNewsFrom(String newsFrom) { this.newsFrom = newsFrom; } public String getTop() { return top; } public void setTop(String top) { this.top = top; } public String getNewsTime() { return newsTime; } public void setNewsTime(String newsTime) { this.newsTime = newsTime; } public String getHits() { return hits; } public void setHits(String hits) { this.hits = hits; } public String getState() { return state; } public void setState(String state) { this.state = state; } public String getTag() { return tag; } public void setTag(String tag) { this.tag = tag; } } 下面是类DAO类,命名为NewsRealeseDao.java,对于DAO类,主要用于实现数据库的连接问题,进行数据库的链接,在连接过程中需要用到各种有关数据库的技术,在这里我们使用的是Oracle数据库,其获取链接的方式为如下代码,其中第一行为驱动程序名,第二行为数据库地址(orcl为Oracle数据库中的SID,在安装Oracle数据库时需要记住),第三行为具体的连接,及使用URL找到数据库位置,然后使用密码wjk139登录到Scott账户
//获取连接 Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@localhost:1521:orcl"; conn = DriverManager.getConnection(url, "scott", "wjk139"); 其他的操作分别为增删改查的具体代码,分别对应Servlet中或jsp中需要实例化的代码,下面就是具体的DAO类代码:
package dao; import com.lut.beans.NewsRealese; import static java.lang.System.out; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; public class NewsRealeseDao { public ArrayList queryAllNews() throws Exception { Connection conn = null; ArrayList newsRealese = new ArrayList(); try { //获取连接 Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@localhost:1521:orcl"; conn = DriverManager.getConnection(url, "scott", "wjk139"); //运行SQL语句 String sql = "select * from newmessage";//获取 Statement stat = conn.createStatement(); ResultSet rs = stat.executeQuery(sql); while (rs.next()) { //实例化VO NewsRealese news = new NewsRealese(); news.setNewsId(rs.getString("newsid")); news.setClassId(rs.getString("CLASSID")); news.setKindId(rs.getString("KINDID")); news.setMyOther(rs.getString("MYOTHER")); news.setHeadTitle(rs.getString("HEADTITLE")); news.setContent(rs.getString("CONTENT")); news.setConnectRealtive(rs.getString("CONNECTREALTIVE")); news.setAuthor(rs.getString("AUTHOR")); news.setEditor(rs.getString("EDITOR")); news.setNewsFrom(rs.getString("NEWSFROM")); news.setTop(rs.getString("TOP")); news.setNewsTime(rs.getString("NEWSTIME")); news.setHits(rs.getString("HITS")); news.setState(rs.getString("STATE")); news.setTag(rs.getString("TAG")); newsRealese.add(news); } rs.close(); stat.close(); } catch (Exception e1) { e1.printStackTrace(); } finally { try {//关闭连接 if (conn != null) { conn.close(); conn = null; } } catch (Exception ex) { } return newsRealese; } } //查询一个消息 public ArrayList queryOneNews(int newsid) throws Exception { Connection conn = null; ArrayList newsRealese = new ArrayList(); int temp_id = newsid; try { //获取连接 Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@localhost:1521:orcl"; conn = DriverManager.getConnection(url, "scott", "wjk139");//不安全 //运行SQL语句 Statement stat = conn.createStatement(); String sql = "select * from newmessage where newsid=?";//获取newsid,使用?代替字符串,以免会发生错误 PreparedStatement ps = conn.prepareStatement(sql); ps.setInt(1, Integer.valueOf(newsid)); ResultSet rs = ps.executeQuery();// 之前已经给了sql字符串,所以executeUpdate是无参的。 while (rs.next()) { //实例化VO NewsRealese news = new NewsRealese(); news.setNewsId(rs.getString("newsid")); news.setClassId(rs.getString("CLASSID")); news.setKindId(rs.getString("KINDID")); news.setMyOther(rs.getString("MYOTHER")); news.setHeadTitle(rs.getString("HEADTITLE")); news.setContent(rs.getString("CONTENT")); news.setConnectRealtive(rs.getString("CONNECTREALTIVE")); news.setAuthor(rs.getString("AUTHOR")); news.setEditor(rs.getString("EDITOR")); news.setNewsFrom(rs.getString("NEWSFROM")); news.setTop(rs.getString("TOP")); news.setNewsTime(rs.getString("NEWSTIME")); news.setHits(rs.getString("HITS")); news.setState(rs.getString("STATE")); news.setTag(rs.getString("TAG")); newsRealese.add(news); } rs.close(); stat.close(); } catch (Exception e1) { e1.printStackTrace(); } finally { try {//关闭连接 if (conn != null) { conn.close(); conn = null; } } catch (Exception ex) { } return newsRealese; } } //删除数据 public String deleteOneNews(int newsid) throws Exception { Connection conn = null; ArrayList newsRealese = new ArrayList(); int temp_id = newsid; try { //获取连接 Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@localhost:1521:orcl"; conn = DriverManager.getConnection(url, "scott", "wjk139");//不安全 //运行SQL语句 Statement stat = conn.createStatement(); String sql = "DELETE FROM newmessage WHERE newsid =?";//获取newsid,使用?代替字符串,以免会发生错误 PreparedStatement ps = conn.prepareStatement(sql); ps.setInt(1, Integer.valueOf(newsid)); ResultSet rs = ps.executeQuery();// 之前已经给了sql字符串,所以executeUpdate是无参的。 rs.close(); stat.close(); } catch (Exception e1) { e1.printStackTrace(); } finally { try {//关闭连接 if (conn != null) { conn.close(); conn = null; } } catch (Exception ex) { } return newsRealese.toString(); } } //插入数据 public String insertOneNews(ArrayList addnews_list) throws Exception { Connection conn = null; /* for(int i=0,j=1;i提示:
本文由神整理自网络,如有侵权请联系本站删除!
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!
点击排行
本栏推荐
