,,基于jsp实现新闻管理系统 附完整源码

,,基于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是百度富文本编辑器文件夹,source package文件夹是Java类文件夹:

图9项目布局结构图

然后,我们创建数据库连接层,即dao和VO,分别存储在包com.lut.beans和DAO中。这些类分别被命名为NewsRealeSee和NewsRealeseDao。对于类NewsRealeSee,主要实现字符串的打包,其内容与数据库中的内容一一对应。其代码如下:

包com . lut . beans;

公共类新闻

私有字符串newsId

私有字符串classId

私有字符串kindId

私有字符串myOther

私有字符串headTitle

私有字符串内容;

私有字符串connectRealtive

私有字符串作者;

私有字符串编辑器;

私有字符串newsFrom

私弦陀螺;

私有字符串newsTime

私有字符串命中;

私有字符串状态;

私有字符串标记;

公共字符串getNewsId() {

返回newsId

}

public void set news id(String news id){

this.newsId=newsId

}

公共字符串getClassId() {

返回classId

}

public void set classId(String classId){

this.classId=classId

}

公共字符串getKindId() {

返回kindId

}

public void setKindId(String kindId){

this.kindId=kindId

}

公共字符串getMyOther() {

归还我的母亲;

}

public void setmy other(String my other){

this . my other=my other;

}

公共字符串getHeadTitle() {

返回headTitle

}

public void sethead title(String head title){

this . head title=head title;

}

公共字符串getContent() {

返回内容;

}

public void setContent(字符串内容){

this.content=内容;

}

公共字符串getconnectreative(){

返回connectRealtive

}

public void setconnectreative(String connectreative){

this . connect relative=connect relative;

}

公共字符串getAuthor() {

返回作者;

}

public void setAuthor(字符串作者){

this.author=作者;

}

公共字符串getEditor() {

返回编辑器;

}

public void setEditor(字符串编辑器){

this.editor=editor

}

公共字符串getNewsFrom() {

从返回新闻;

}

public void set news from(String news from){

这个。来自的消息;

}

公共字符串getTop() {

返回顶部;

}

公共空机顶盒(字符串顶部){

this.top=top

}

公共字符串getNewsTime() {

返回新闻时间;

}

public void设置新闻时间(字符串新闻时间){

this.newsTime=新闻时间;

}

公共字符串getHits() {

返回点击量;

}

公共void setHits(字符串命中){

this.hits=hits

}

公共字符串getState() {

返回状态;

}

公共void setState(字符串状态){

这个州=州

}

公共字符串getTag() {

返回标签;

}

公共无效设置标记(字符串标记){

this.tag=标签

}

}

下面是类数据访问对象(数据访问对象)类,命名为NewsRealeseDao.java,对于数据访问对象(数据访问对象)类,主要用于实现数据库的连接问题,进行数据库的链接,在连接过程中需要用到各种有关数据库的技术,在这里我们使用的是神谕数据库,其获取链接的方式为如下代码,其中第一行为驱动程序名,第二行为数据库地址(orcl为神谕数据库中的希德,在安装神谕数据库时需要记住),第三行为具体的连接,及使用统一资源定位器找到数据库位置,然后使用密码wjk139登录到斯科特账户

//获取连接

班级。forname('甲骨文。JDBC。司机。Oracle驱动程序’);

string URL=' JDBC:甲骨文:瘦:@本地主机:1521:orcl ';

驱动程序管理器。获取连接(URL,' scott ',' wjk 139 ');

其他的操作分别为增删改查的具体代码,分别对应小型应用程序中或jsp中需要实例化的代码,下面就是具体的数据访问对象(数据访问对象)类代码:

包刀;

导入com。鲁特。豆子。真实新闻;

导入静态Java。郎。系统。出;

导入Java。SQL。连接;

导入Java。SQL。司机经理;

导入Java。SQL。准备好的声明;

导入Java。SQL。结果集;

导入Java。SQL。SQL异常;

导入Java。SQL。声明;

导入Java。util。ArrayList

公共类新闻记录岛{

公共数组列表queryAllNews()引发异常{

连接连接=空;

ArrayList news realese=new ArrayList();

尝试{

//获取连接

班级。forname('甲骨文。JDBC。司机。Oracle驱动程序’);

string URL=' JDBC:甲骨文:瘦:@本地主机:1521:orcl ';

驱动程序管理器。获取连接(URL,' scott ',' wjk 139 ');

//运行结构化查询语言语句

string SQL=' select * from new message ';//获取

statement stat=conn . create语句();

结果集RS=stat。执行查询(SQL);

while (rs.next()) { //实例化维多利亚皇家勋章

news realese news=new news realese();

新闻。设置newsid(RS。getstring(' newsid ');

新闻。设置CLASSID(RS。getstring(' CLASSID ');

新闻。setkindid(RS。getstring(' KINDID ');

新闻。setmy other(RS。getstring('我的另一个');

新闻。设置标题(RS。getstring(' head title ');

新闻。设置内容(RS。getstring(' CONTENT '));

新闻。setconnectreative(RS。getstring(' connect reative ');

新闻。集合作者(RS。getstring(' AUTHOR ');

新闻。集合编辑器(RS。getstring(' EDITOR ');

新闻。从(RS)设置新闻。getstring('新闻来自'));

新闻。机顶盒(RS。getstring(' TOP '));

新闻。设置新闻时间(RS。getstring('新闻时间');

新闻。设置点击量(RS。getstring(' HITS ');

新闻。设置状态(RS。getstring(' STATE ');

新闻。settag(RS。getstring(' TAG '));

newsRealese.add(新闻);

}

RS。close();

统计。close();

} catch(异常e1) {

E1。printstacktrace();

}最后{

尝试{//关闭连接

如果(conn!=null) {

conn . close();

conn=空

}

} catch (Exception ex) {

}

返回新闻;

}

}

//查询一个消息

公共数组列表新闻查询(int newsid)引发异常{

连接连接=空;

ArrayList news realese=new ArrayList();

int temp _ id=newsid

尝试{

//获取连接

班级。forname('甲骨文。JDBC。司机。Oracle驱动程序’);

string URL=' JDBC:甲骨文:瘦:@本地主机:1521:orcl ';

驱动程序管理器。获取连接(URL,' scott ',' wjk 139 ');//不安全

//运行结构化查询语言语句

statement stat=conn . create语句();

string SQL=' select * from new message where newsid=?';//获取新闻id,使用?代替字符串,以免会发生错误

预准备语句PS=conn . prepare语句(SQL);

ps.setInt(1,整数。(newsid)的值;

结果集RS=PS。执行查询();//之前已经给了结构化查询语言字符串,所以执行更新是无参的。

while (rs.next()) { //实例化维多利亚皇家勋章

news realese news=new news realese();

新闻。设置newsid(RS。getstring(' newsid ');

新闻。设置CLASSID(RS。getstring(' CLASSID ');

新闻。setkindid(RS。getstring(' KINDID ');

新闻。setmy other(RS。getstring('我的另一个');

新闻。设置标题(RS。getstring(' head title ');

新闻。设置内容(RS。getstring(' CONTENT '));

新闻。setconnectreative(RS。getstring(' connect reative ');

新闻。集合作者(RS。getstring(' AUTHOR ');

新闻。集合编辑器(RS。getstring(' EDITOR ');

新闻。从(RS)设置新闻。getstring('新闻来自'));

新闻。机顶盒(RS。getstring(' TOP '));

新闻。设置新闻时间(RS。getstring('新闻时间');

新闻。设置点击量(RS。getstring(' HITS ');

新闻。设置状态(RS。getstring(' STATE ');

新闻。settag(RS。getstring(' TAG '));

newsRealese.add(新闻);

}

RS。close();

统计。close();

} catch(异常e1) {

E1。printstacktrace();

}最后{

尝试{//关闭连接

如果(conn!=null) {

conn . close();

conn=空

}

} catch (Exception ex) {

}

返回新闻;

}

}

//删除数据

公共字符串deleteOneNews(int newsid)引发异常{

连接连接=空;

ArrayList news realese=new ArrayList();

int temp _ id=newsid

尝试{

//获取连接

班级。forname('甲骨文。JDBC。司机。Oracle驱动程序’);

string URL=' JDBC:甲骨文:瘦:@本地主机:1521:orcl ';

驱动程序管理器。获取连接(URL,' scott ',' wjk 139 ');//不安全

//运行结构化查询语言语句

statement stat=conn . create语句();

字符串sql='从新消息中删除,其中newsid=?';//获取新闻id,使用?代替字符串,以免会发生错误

预准备语句PS=conn . prepare语句(SQL);

ps.setInt(1,整数。(newsid)的值;

结果集RS=PS。执行查询();//之前已经给了结构化查询语言字符串,所以执行更新是无参的。

RS。close();

统计。close();

} catch(异常e1) {

E1。printstacktrace();

}最后{

尝试{//关闭连接

如果(conn!=null) {

conn . close();

conn=空

}

} catch (Exception ex) {

}

返回新闻realese。tostring();

}

}

//插入数据

公共字符串insertOneNews(ArrayList add news _ list)引发异常{

连接连接=空;

/* for(int i=0,j=1;iadd新闻_列表。size();I,j)

{

System.out.println('j:' j值:' addnews_list.get(i).toString());

}*/

尝试{

//获取连接

班级。forname('甲骨文。JDBC。司机。Oracle驱动程序’);

string URL=' JDBC:甲骨文:瘦:@本地主机:1521:orcl ';

驱动程序管理器。获取连接(URL,' scott ',' wjk 139 ');//不安全

//运行结构化查询语言语句

statement stat=conn . create语句();

字符串SQL='插入新邮件(newsId,classId,kindId,myOther,headTitle,content,connectRealtive,author,editor,newsFrom '

、热门、新闻时间、点击量、状态、标签)值(????)';//获取新闻id,使用?代替字符串,以免会发生错误

预准备语句PS=conn . prepare语句(SQL);

ps.setInt(1,整数。(添加新闻列表)的值。get(0)).toString()));

ps.setInt(2,整数。(添加新闻列表)的值。get(1)).toString()));

ps.setInt(3,整数。(添加新闻列表)的值。get(2)).toString()));

ps.setInt(4,整数。(添加新闻列表)的值。get(3)).toString()));

ps.setString(5,addnews_list.get(4).toString());

ps.setString(6,addnews_list.get(5).toString());

ps.setString(7,addnews_list.get(6).toString());

ps.setString(8,addnews_list.get(7).toString());

ps.setString(9,addnews_list.get(8).toString());

ps.setString(10,addnews_list.get(9).toString());

ps.setInt(11,整数。(添加新闻列表)的值。get(10)).toString()));

ps.setString(12,addnews_list.get(11).toString());

ps.setString(13,addnews_list.get(12).toString());

ps.setString(14,addnews_list.get(13).toString());

ps.setString(15,addnews_list.get(14).toString());

for (int i=0,j=1;我添加新闻_列表。size();I,j ) {

System.out.println('j:' j值:' addnews_list.get(i).toString());

}

int I=PS。执行update();

conn . commit();

System.out.println('成功添加我行');

统计。close();

conn . close();

return I ' conn:' conn;

} catch(异常e1) {

E1。printstacktrace();

}最后{

尝试{//关闭连接

如果(conn!=null) {

conn . close();

conn=空

}

} catch (Exception ex) {

}

}

返回conn . tostring();

}

//更新数据

公共字符串updateOneNews(ArrayList add news _ list)引发异常{

连接连接=空;

/* for(int i=0,j=1;iadd新闻_列表。size();I,j)

{

System.out.println('j:' j值:' addnews_list.get(i).toString());

}*/

尝试{

//获取连接

班级。forname('甲骨文。JDBC。司机。Oracle驱动程序’);

string URL=' JDBC:甲骨文:瘦:@本地主机:1521:orcl ';

驱动程序管理器。获取连接(URL,' scott ',' wjk 139 ');//不安全

//运行结构化查询语言语句

statement stat=conn . create语句();

//获取新闻id,使用?代替字符串,以免会发生错误

string SQL=' UPDATE new message set classId=?kindId=?myOther=?headTitle=?内容=?'

connectRealtive=?作者=?编辑=?newsFrom=?top=?新闻时间=?点击数=?状态=?tag=?其中newsid=?

预准备语句PS=conn . prepare语句(SQL);

ps.setInt(1,整数。(添加新闻列表)的值。get(1)).toString()));

ps.setInt(2,整数。(添加新闻列表)的值。get(2)).toString()));

ps.setInt(3,整数。(添加新闻列表)的值。get(3)).toString()));

ps.setString(4,addnews_list.get(4).toString());

ps.setString(5,addnews_list.get(5).toString());

ps.setString(6,addnews_list.get(6).toString());

ps.setString(7,addnews_list.get(7).toString());

ps.setString(8,addnews_list.get(8).toString());

ps.setString(9,addnews_list.get(9).toString());

ps.setInt(10,整数。(添加新闻列表)的值。get(10)).toString()));

ps.setString(11,addnews_list.get(11).toString());

ps.setString(12,addnews_list.get(12).toString());

ps.setString(13,addnews_list.get(13).toString());

ps.setString(14,addnews_list.get(14).toString());

ps.setInt(15,整数。(添加新闻列表)的值。get(0)).toString()));

for (int i=0,j=1;我添加新闻_列表。size();I,j ) {

System.out.println('j:' j值:' addnews_list.get(i).toString());

}

int I=PS。执行update();

conn . commit();

System.out.println('成功更新我行');

统计。close();

conn . close();

return I ' conn:' conn;

} catch(异常e1) {

E1。printstacktrace();

}最后{

尝试{//关闭连接

如果(conn!=null) {

conn . close();

conn=空

}

} catch (Exception ex) {

}

}

返回conn . tostring();

}

公共字符串已检查(字符串用户,字符串传递)引发异常{

连接连接=空;

//获取连接

班级。forname('甲骨文。JDBC。司机。Oracle驱动程序’);

string URL=' JDBC:甲骨文:瘦:@本地主机:1521:orcl ';

尝试{

驱动程序管理器。getconnection(URL,user,pass);//不安全

//建立连接

返回conn . tostring();

}

catch (SQLException e)

{

e。printstacktrace();

}

最后

{

如果(conn!=空)

{

尝试{

conn . close();

} catch (SQLException e)

{

e。printstacktrace();

}

}

}

返回空

}

}

(2)首页展示页面的编写,命名为index.html,由于可能有网络的延迟,我们使用渐进的方式跳转(渐进方式跳转:窗口。位置。href=' new realese _ brief。JSP ',从index.html页面跳转到ewRealese_brief.jsp页面),代码如下所示:

!文档类型超文本标记语言

超文本标记语言

meta http-equiv=' Content-Type ' Content=' text/html;charset=UTF-8 '

link type=' text/CSS ' rel=' style sheet ' href=' news realese。CSS '/

标题新闻发布系统-最前沿的时尚信息、最有看点的社会聚焦、最富得浪漫的殿堂/标题

/头

body id='body '

正在跳转.请等待.

脚本语言='javascript '类型='文本/javascript '

窗户。位置。href=' new realese _ brief。JSP ';

/脚本

/body

/html

在缓冲时,会进行跳转,跳转后的页面为newRealese_brief.jsp,其代码如下所示:进入新闻展示页面之后,我们能够对新闻进行搜素,还能够查看详细内容。

% @页内容类型=' text/html '导入=' Java。util。*,java.sql.*,com.lut.beans.NewsRealese,dao ."新闻报道"

pageEncoding='UTF-8 '语言='java'%

!文档类型超文本标记语言

超文本标记语言

meta http-equiv=' Content-Type ' Content=' text/html;charset=UTF-8 '

标题新闻发布系统-最前沿的时尚信息、最有看点的社会聚焦、最富得浪漫的殿堂/标题

link type=' text/CSS ' rel=' style sheet ' href=' news realese。CSS '/

/头

body id='body '

a href=' admin登录。JSP ' style=' table-layout:right '管理员登录/ah1 id='p '最新资讯/h1br

% @ include file=' a _ query新闻。JSP ' %

表格边框=' 0 ' style=' width:100%;高度:100%' align='center '

tr

td style='width: 10%'nbsp ./td

(美)财政部(财政部)

%

NewsRealeseDao NewsRealeseDao=new NewsRealeseDao();

数组列表新闻。queryallnews();

%

%

for(int I=0;我新闻真实。size();i ) {

新闻英语。get(I);

%

中心表格边框='0 '宽度='100%' id='表格'

tr

(美)财政部(Treasury Department)宽度='128 '便士此处假设无图片/p

p此处假设无等级信息/p

/td

(美)财政部(Treasury Department)表格边框='0 '宽度='100% '

tr

(美)财政部(Treasury Department)宽度='11% '原创或转载:/td

TD colspan=' 3 ' %=新的实数。getmy other()%/TD

(美)财政部(Treasury Department)宽度='10% '新闻标题:/td

TD width=' 44% ' %=新实数。gethead title()%/TD

/tr

tr

(美)财政部(Treasury Department)列span='6 '新闻内容:/td

/表格

表格宽度='100% '边框='0 '

tr

(美)财政部(财政部)

a target=' _ blank ' href=' new realese _ detail。JSP?newsid=%=新的realese。get newsid()% '/

表格宽度='100% '边框='0 '对齐='居中'

tr

(美)财政部(财政部)

%=newRealese.getContent()%

/td

/tr

/表格

/td

/tr

/表格

表格边框='0 '宽度='100% '

tr

(美)财政部(Treasury Department)宽度='51 '高度='30 '作者:/td

TD width=' 203 ' %=新实数。获取作者()%/TD

(美)财政部(Treasury Department)宽度='97 '新闻发布时间:/td

TD width=' 167 ' %=新实数。获取新闻时间()%/TD

(美)财政部(Treasury Department)宽度='99 '新闻点击次数:/td

TD width=' 191 ' %=新实数。获取点击数()%/TD

/tr

/表/td

/tr

tr

td height='21' colspan='2'hr/td

/tr

/表格/居中

%

}

%

/td

tdnbsp ./td

/tr

tr

tdnbsp ./td

tdnbsp ./td

tdnbsp ./td

/tr

/表格

/body

/html

(3)详细新闻页面的设计,命名为newRealese_detail.jsp其代码如下所示:再详细新闻页面上,我们能够进行数据的详细情况的了解,在观看完详细信息之后,我们能够进行点击返回按钮进行返回操作

% @页内容类型=' text/html '导入=' Java。util。*,java.sql.*' pageEncoding='UTF-8 '语言='java'%

% @个页面导入='com.lut.beans.NewsRealese' %

% @个页面导入='道.新闻记录' %

!文档类型超文本标记语言

超文本标记语言

meta http-equiv=' Content-Type ' Content=' text/html;charset=UTF-8 '

link type=' text/CSS ' rel=' style sheet ' href=' news realese。CSS '/

标题新闻发布系统-最前沿的时尚信息、最有看点的社会聚焦、最值得浪漫的殿堂/标题

/头

body id='body '

氕最新资讯/h1br

%

string newsid=request。getparameter(' newsid ');

int newsid _ int=integer。parse int(newsid);

NewsRealeseDao NewsRealeseDao=new NewsRealeseDao();

数组列表新闻。新闻查询(newsid _ int);

%

表格边框='1 '

tr

(美)财政部(财政部)新闻编号/td

(美)财政部(财政部)所属新闻栏目编号/td

(美)财政部(财政部)所属新闻分类编号/td

(美)财政部(财政部)原创或转载/td

(美)财政部(财政部)新闻标题/td

(美)财政部(财政部)新闻内容/td

(美)财政部(财政部)相关文章/td

(美)财政部(财政部)作者/td

(美)财政部(财政部)编辑/td

(美)财政部(财政部)出处/td

(美)财政部(财政部)是否置顶/td

(美)财政部(财政部)新闻发布时间/td

(美)财政部(财政部)新闻点击次数/td

(美)财政部(财政部)新闻状态/td

(美)财政部(财政部)新闻标记/td

/tr

%

for(int I=0;inewsrealese。size();我)

{

新闻英语。get(I);

%

tr

td%=newRealese.getNewsId() % /td

TD %=新realese。get classid()%/TD

td%=newRealese.getKindId() % /td

TD %=新realese。getmy other()%/TD

TD %=新realese。gethead title()%/TD

TD %=新realese。获取内容()%/TD

TD %=新realese。getconnectreative()%/TD

td%=newRealese.getAuthor() % /td

td%=newRealese.getEditor() % /td

TD %=新realese。从()%/TD获取新闻

td%=newRealese.getTop() % /td

TD %=新realese。获取新闻时间()%/TD

td%=newRealese.getHits() % /td

td%=newRealese.getState() % /td

td%=newRealese.getTag() % /td

/tr

/表格

表格宽度='100% '边框='0 '单元格间距='0 '单元格填充='4 '

tr

TD width=' 100% ' style=' text-align:center;'垂直对齐:顶部'

表格宽度='90% '边框='0 '单元格填充='0 '单元格间距='0 '

tr

(美)财政部(财政部)

表格宽度='100% '边框='0 '单元格间距='1 '单元格填充='4 '

tr

th width=' 26% ' class=' title color ' style=' text-align:right;" vertical-align:top"scope="row "新闻标题:/th

TD width=' 74% ' style=' vertical-align:top ' class=' title color ' p align=' left ' %=new realese。gethead title()% p/TD

/tr

tr

' th scope=' row ' class=' title color ' style=' text-align:right;'垂直对齐:顶部'作者:/th

TD style=' vertical-align:top ' p align=' left ' %=new realese。获取作者()% p/TD

/tr

tr

' th scope=' row ' class=' title color ' style=' text-align:right;'垂直对齐:顶部'新闻发布时间:/th

TD style=' vertical-align:top ' class=' title color ' p align=' left ' %=new realese。获取新闻时间()% p/TD

/tr

tr

' th scope=' row ' class=' title color ' style=' text-align:right;'垂直对齐:顶部'新闻点击次数:/th

TD style=' vertical-align:top ' class=' title color ' p align=' left ' %=new realese .

getHits() %><p></td> </tr> <tr> <td colspan="2" class="StoryContentColor"><p align="center"><%=newRealese.getContent() %><p></td> </tr> </table> </td> </tr> </table> <p>&nbsp;</p> <table> <tr> <td > <a href="newRealese_brief.jsp">返回</a> </td> <td> <a href="#">发表评论</a> </td> </tr> </table> </td> </tr> </table> <table width="100%" border="0" cellspacing="0" cellpadding="4"> <tr style="text-align: right"> <td> <a href="#">点赞</a> <a href="#">举报</a> <a href="#">投稿,联系作者</a>&nbsp; </td> </tr> </table> <% } %> </body> </html>

(4)管理员登录界面,命名为adminLogin.jsp页面,使用连接数据库的方式进行登录,在这里我们的管理员名称为Scott,密码为wjk139,管理员登录界面的实现代码如下所示?

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>新闻发布系统--最前沿的时尚信息、最有看点的社会聚焦、最值得浪漫的殿堂</title> <link type="text/css" rel="stylesheet" href="newsRealese.css"/> </head> <body id="body"> <form method="post" action="checkLogin"> <table border="0" align="center" id="table_vertical" > <caption>管理员登录 </caption> <tr> <td width="40">Admin</td> <td width="183"> <input type="text" name="user"></td> </tr> <tr> <td height="25">Pass</td> <td><input type="password" name="pass"></td> </tr> </table> <table align="center"> <tr> <td> <input type="submit" value="Login"> <input type="reset" value="Reset"> </td> </tr> </table> </form> </body> </html>

在登录的过程中,我们需要进行判断,命名为checkLogin.java,,通过此类进行判断登录是否成功,若成功,则跳转到管理界面,若失败,则停留在当前界面,其代码如下所示:?

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package servlet; import com.lut.beans.NewsRealese; import dao.NewsRealeseDao; import java.io.IOException; import java.io.PrintWriter; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class checkLogin extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); String user=request.getParameter("user"); String pass=request.getParameter("pass"); NewsRealeseDao newsRealeseDao=new NewsRealeseDao(); try { String newsRealese=newsRealeseDao.ischecked(user,pass); if(newsRealese!=null) { response.sendRedirect("adminManager.jsp"); } else { response.sendRedirect("adminLogin.jsp"); } } catch (Exception ex) { Logger.getLogger(checkLogin.class.getName()).log(Level.SEVERE, null, ex); } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"+"public String getServletInfo() "; }// </editor-fold> }

(5)管理员登陆之后的界面,命名为adminManager.jsp页面,在管理员界面能够进行删除修改增加和查询操作,其代码如下所示:

<%-- Document : adminManager Created on : 2016-5-18, 17:10:01 Author : Administrator --%> <%@page import="java.util.ArrayList"%> <%@page import="com.lut.beans.NewsRealese"%> <%@page import="dao.NewsRealeseDao"%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>管理员界面||adminManager.jsp</title> <link type="text/css" rel="stylesheet" href="newsRealese.css"/> </head> <body id="body" style=" text-orientation: vertical-right"> <h1 id="p">新闻管理</h1><br> <table border="1" style="width:100%; height:100%"> <tr> <td width="10%" style="text-align:top"> <table border="0" style="width: 100%;height: 100%" > <tr> <td><div align="center">新闻信息显示 </div></td> </tr> <tr> <td><img src="./images/dog.jpg" width="100%" height="90%"></td> </tr> <tr> <td><img src="./images/minus.gif" ></td> </tr> </table></td> <td width="50%"> <table border="0"> <tr> <td> <% NewsRealeseDao newsRealeseDao = new NewsRealeseDao(); ArrayList newsRealese = newsRealeseDao.queryAllNews(); %> <% for (int i = 0; i < newsRealese.size(); i++) { NewsRealese newRealese = (NewsRealese) newsRealese.get(i); %> <table border="0" width="100%" id="table"> <tr> <td width="128"><p>此处假设无图片</p> <p>此处假设无等级信息</p> </td> <td ><table border="0" width="100%"> <tr> <td >原创或转载:</td> <td ><%=newRealese.getMyOther()%> </td> <td >新闻标题:</td> <td ><%=newRealese.getHeadTitle()%> </td> </tr> <tr> <td colspan="6">新闻内容:</td> </table> <table width="100%" border="0"> <tr> <td> <a target="_blank" href="newRealese_detail.jsp?newsid=<%=newRealese.getNewsId()%>"/> <table width="100%" border="0" align="center"> <tr> <td> <%=newRealese.getContent()%> </td> </tr> </table> </td> </tr> </table> <table border="0" width="100%"> <tr> <td width="51" height="30">作者:</td> <td width="203"><%=newRealese.getAuthor()%> </td> <td width="97">新闻发布时间:</td> <td width="167"><%=newRealese.getNewsTime()%> </td> <td width="99">新闻点击次数:</td> <td width="191"><%=newRealese.getHits()%> </td> </tr> </table></td> </tr> <tr> <td height="21" colspan="2"> <input type="button" name="delete" value="删除" align="middle" onclick="javascrtpt:window.location.href = 'DeleteOneNews?newsid=<%=newRealese.getNewsId()%>'"> <input type="button" name="delete" value="修改" align="middle" onclick="javascrtpt:window.location.href = 'a_updateNews.jsp?newsid=<%=newRealese.getNewsId()%>'"> <hr> </td> </tr> </table> <% } %> </td> </tr> </table> </td> <td width="5%" style=" text-orientation: vertical-right"> <%@include file="a_queryNews.jsp" %> </td> </tr> <tr> <td align="center"><a href="a_addNews.jsp" target="_blank">添加新闻</a></td> <td align="center">二</td> <td align="center">三</td> </tr> </table> </body> </html>

(6)增加新闻页面,命名为a_addNews.jsp,能够进行新闻的增加,在添加完信息之后,我们点击发布之后就可以成功添加信息,其代码如下所示,增加新闻时需要对新闻进行编辑,对于长篇幅新闻内容且含有图片的新闻内容的编写,在这儿我们使用功能强大的百度编辑器,首先从官网下载:百度编辑器下载,下载之后解压(我使用的版本是ueditor1_4_3_2-utf8-jsp),如下图所示结构

图10 百度富文本编辑器文件夹结构图

然后只需将整个文件夹拷贝到项目下即可,在使用时引入和修改路径,在jsp页面里边我已经配置好引用,只需修改路径即可,修改路径时只需将editor_config.js中查找URL变量配置编辑器在你项目中的路径。其中./ueditor为项目中的文件夹?

var URL= window.UEDITOR_HOME_URL||"./ueditor/";?

这样就配置好了编辑器,下面就是增加新闻的jsp页面,在添加完新闻之后,只需点击发布即可进行新闻的发布操作,代码如下所示:?

<%@page contentType="text/html" import="java.util.*,java.sql.*" pageEncoding="UTF-8" language="java"%> <%@page import="com.lut.beans.NewsRealese" %> <%@page import="dao.NewsRealeseDao" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>添加新闻- 新闻发布系统--最前沿的时尚信息、最有看点的社会聚焦、最富得浪漫的殿tang</title> <!-- 配置文件 --> <script type="text/javascript" src="./ueditor/ueditor.config.js"></script> <!-- 编辑器源码文件 --> <script type="text/javascript" src="./ueditor/ueditor.all.js"></script> <link rel="stylesheet" type="text/css" href="./udeditor/themes/default/css" /> <link type="text/css" rel="stylesheet" href="newsRealese.css"/> </head> <body id="body"> <form action="InsertOneNews" method="post"> <table border="0" id="table"> <tr> <td width="5%">left</td> <td width="90%"> <table border="1" id="table"> <tr > <td >新闻编号</td> <td><input type="text" name="newsid"></td> <td>所属新闻栏目编号</td> <td><input type="text" name="classid"></td> </tr> <tr> <td>所属新闻分类编号</td> <td><input type="text" name="kindid"></td> <td>原创或转载</td> <td><input type="text" name="myother"></td> </tr> <tr> <td>新闻标题</td> <td><input type="text" name="headtitle"></td> <td>相关文章</td> <td><input type="text" name="connectrealtive"></td> </tr> <tr> <td>作者</td> <td><input type="text" name="author"></td> <td>编辑</td> <td><input type="text" name="editor"></td> </tr> <tr> <td>出处</td> <td><input type="text" name="newsfrom"></td> <td>是否置顶</td> <td><input type="text" name="top"></td> </tr> <tr> <td>新闻发布时间</td> <td><input type="text" name="newstime"></td> <td>新闻点击次数</td> <td><input type="text" name="hits"></td> </tr> <tr> <td>新闻状态</td> <td><input type="text" name="state"></td> <td>新闻标记</td> <td><input type="text" name="tag"></td> </tr> <tr> </table> </td> <td width="5%">right</td> </tr> <tr> <td>&nbsp;</td> <td> <div align="center" style="width:80%"> <textarea id="newsEditor" name="content" style="height: 80%"></textarea> <br/> <input type="submit" value="发 布"> <script type="text/javascript"> UE.getEditor('newsEditor'); // var content = UE.getPlainTxt();//content就是编辑器的带格式的内容 //focus时自动清空初始化时的内容 </script> </div> </td> <td>&nbsp;</td> </tr> </table> </form> </body> </html>

在增加新闻时,需要对Servlet进行配置,如下图所示所示为配置文件的结构:?

插入数据Servlet结构图

下面是InserOneNews.java代码,能够进行对数据的插入功能?

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package servlet; import dao.NewsRealeseDao; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class InsertOneNews extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { ArrayList addnews_list = new ArrayList(); NewsRealeseDao newsRealeseDao = new NewsRealeseDao(); addnews_list.add(0, request.getParameter("newsid")); addnews_list.add(1, request.getParameter("classid")); addnews_list.add(2, request.getParameter("kindid")); addnews_list.add(3, request.getParameter("myother")); addnews_list.add(4, request.getParameter("headtitle")); addnews_list.add(5, request.getParameter("content")); addnews_list.add(6, request.getParameter("connectrealtive")); addnews_list.add(7, request.getParameter("author")); addnews_list.add(8, request.getParameter("editor")); addnews_list.add(9, request.getParameter("newsfrom")); addnews_list.add(10, request.getParameter("top")); addnews_list.add(11, request.getParameter("newstime")); addnews_list.add(12, request.getParameter("hits")); addnews_list.add(13, request.getParameter("state")); addnews_list.add(14,request.getParameter("tag")); try { String newsRealese = newsRealeseDao.insertOneNews(addnews_list); System.out.println("String:"+newsRealese); if (newsRealese!= null) { response.sendRedirect("adminManager.jsp"); } else { response.sendRedirect("a_addNews.jsp"); } } catch (Exception ex) { Logger.getLogger(checkLogin.class.getName()).log(Level.SEVERE, null, ex); } } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"; } }

至此,我们完整的实现了插入工作 (7)现在完成删除操作,在Servlet包中建立如下所示代码,命名为DeleteOneNews.java:

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package servlet; import dao.NewsRealeseDao; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class DeleteOneNews extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { String str_id=request.getParameter("newsid"); int newsid_int=Integer.valueOf(str_id); NewsRealeseDao newsRealeseDao=new NewsRealeseDao(); try { String newsRealese = newsRealeseDao.deleteOneNews(newsid_int); System.out.println("String:"+newsRealese); if (newsRealese!= null) { response.sendRedirect("adminManager.jsp"); } else { response.sendRedirect("a_addNews.jsp"); } } catch (Exception ex) { Logger.getLogger(checkLogin.class.getName()).log(Level.SEVERE, null, ex); } } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Handles the HTTP <code>POST</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }

(8)实现查询操作,命名为a_queryNews.jsp,其代码如下所示:

<%-- Document : a_queryNews Created on : 2016-5-18, 17:08:40 Author : Administrator --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>查询页面</title> </head> <body> <table style="width:100%;height:100%" border="0"> <tr> <td> <form action="QueryOneNews" method="post" target="_blank" > 请输入新闻编号:<input type="text" name="query"> <input type="submit" value="查询" ><br> </form> <hr></td> </tr> <tr> <td>&nbsp;</td> </tr> </table> </body> </html>

对于查询这件事,有成功,有失败,在这儿我们进行失败后文件的设置,代码如下所示,命名为a_queryNewsfailed.jsp,使用超级连接的方式,连接到主页面?

<%-- Document : a_queryNeesfailed Created on : 2016-6-6, 8:43:35 Author : Administrator --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>查询失败</title> </head> <body> <h1>没有找到你要查找的内容,但是你可以进入</h1> <a href="index.html">主页进行查看</a> </body> </html>

实现了以上显示层的操作之后,下面就是控制层的实现,命名为QueryOneNews.java,其代码如下所示:

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package servlet; import dao.NewsRealeseDao; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class QueryOneNews extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { String str_id=request.getParameter("query"); int newsid_int=Integer.valueOf(str_id); NewsRealeseDao newsRealeseDao=new NewsRealeseDao(); try { ArrayList newsRealese = newsRealeseDao.queryOneNews(newsid_int); char [] s1=newsRealese.toString().toCharArray(); System.out.println("String+newsRealese:"+newsRealese); System.out.println("String+newsRealese:"+s1[0]+" -------"+s1[1]); if(s1[0]=='['&&s1[1]==']') { response.sendRedirect("a_queryNewsfailed.jsp"); } else { response.sendRedirect("newRealese_detail.jsp?newsid="+str_id); } } catch (Exception ex) { Logger.getLogger(checkLogin.class.getName()).log(Level.SEVERE, null, ex); } } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"; } }

(9)下面实现更新数据的操作,命名为a_updateNews.jsp,其代码如下所示:

<%@page contentType="text/html" import="java.util.*,java.sql.*" pageEncoding="UTF-8" language="java"%> <%@page import="com.lut.beans.NewsRealese" %> <%@page import="dao.NewsRealeseDao" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>更改新闻-</title> <!-- 配置文件 --> <script type="text/javascript" src="./ueditor/ueditor.config.js"></script> <!-- 编辑器源码文件 --> <script type="text/javascript" src="./ueditor/ueditor.all.js"></script> <link rel="stylesheet" type="text/css" href="./udeditor/themes/default/css" /> <link type="text/css" rel="stylesheet" href="newsRealese.css"/> </head> <body id="body"> <% NewsRealeseDao newsRealeseDao=new NewsRealeseDao(); String newsid_s=request.getParameter("newsid"); int news_int=Integer.valueOf(newsid_s); ArrayList news_list=newsRealeseDao.queryOneNews(news_int); %> <% for(int i=0;i<news_list.size();i++) { NewsRealese newRealese=(NewsRealese)news_list.get(i); %> <form action="UpdateOneNews" method="post"> <table border="0" id="table" style="width:95%"> <tr> <td width="5%">left</td> <td width="90%"> <table border="1" id="table" style="width:100%"> <tr > <tr> <td >新闻编号</td> <td><input type="text" width="100%" name="newsid" value="<%=newRealese.getNewsId() %>"></td> <td>所属新闻栏目编号</td> <td><input type="text" width="100%" name="classid" value="<%=newRealese.getClassId() %>"></td> </tr> <tr> <td>所属新闻分类编号</td> <td><input type="text" width="100%" name="kindid" value="<%=newRealese.getKindId() %>"></td> <td>原创或转载</td> <td><input type="text" width="100%" name="myother" value="<%=newRealese.getMyOther() %>"></td> </tr> <tr> <td>新闻标题</td> <td><input type="text" width="100%" name="headtitle" value="<%=newRealese.getHeadTitle()%>"></td> <td>相关文章</td> <td><input type="text" width="100%" name="connectrealtive" value="<%=newRealese.getConnectRealtive()%>"></td> </tr> <tr> <td>作者</td> <td><input type="text" width="100%" name="author" value="<%=newRealese.getAuthor() %>"></td> <td>编辑</td> <td><input type="text" width="100%" name="editor" value="<%=newRealese.getEditor() %>"></td> </tr> <tr> <td>出处</td> <td><input type="text" width="100%" name="newsfrom" value="<%=newRealese.getNewsFrom() %>"></td> <td>是否置顶</td> <td><input type="text" width="100%" name="top" value="<%=newRealese.getTop() %>"></td> </tr> <tr> <td>新闻发布时间</td> <td><input type="text" width="100%" name="newstime" value="<%=newRealese.getNewsTime() %> "></td> <td>新闻点击次数</td> <td><input type="text" width="100%" name="hits" value="<%=newRealese.getHits() %>"></td> </tr> <tr> <td>新闻状态</td> <td><input type="text" name="state" width="100%" value="<%=newRealese.getState() %>"></td> <td>新闻标记</td> <td><input type="text" width="100%" name="tag" value="<%=newRealese.getTag() %>"></td> </tr> <tr> </table> </td> <td width="5%">right</td> </tr> <tr> <td>&nbsp;</td> <td> <div align="center" style="width:80%"> <textarea id="newsEditor" name="content" style="height: 80%"><%=newRealese.getContent() %></textarea> <br/> <input type="submit" value="发 布"> <script type="text/javascript"> UE.getEditor('newsEditor'); var content=UE.getPlainTxt();//s就是编辑器的带格式的内容 </script> </div> </td> <td>&nbsp;</td> </tr> </table> </form> <% } %> </body> </html>

在Servlet中进行如下代码所示配置:

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package servlet; import dao.NewsRealeseDao; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class UpdateOneNews extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { ArrayList addnews_list = new ArrayList(); NewsRealeseDao newsRealeseDao = new NewsRealeseDao(); addnews_list.add(0, request.getParameter("newsid")); addnews_list.add(1, request.getParameter("classid")); addnews_list.add(2, request.getParameter("kindid")); addnews_list.add(3, request.getParameter("myother")); addnews_list.add(4, request.getParameter("headtitle")); addnews_list.add(5, request.getParameter("content")); addnews_list.add(6, request.getParameter("connectrealtive")); addnews_list.add(7, request.getParameter("author")); addnews_list.add(8, request.getParameter("editor")); addnews_list.add(9, request.getParameter("newsfrom")); addnews_list.add(10, request.getParameter("top")); addnews_list.add(11, request.getParameter("newstime")); addnews_list.add(12, request.getParameter("hits")); addnews_list.add(13, request.getParameter("state")); addnews_list.add(14,request.getParameter("tag")); try { String newsRealese = newsRealeseDao.updateOneNews(addnews_list); System.out.println("String:"+newsRealese); if (newsRealese!= null) { response.sendRedirect("adminManager.jsp"); } else { response.sendRedirect("a_addNews.jsp"); } } catch (Exception ex) { Logger.getLogger(checkLogin.class.getName()).log(Level.SEVERE, null, ex); } } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"; } }

到这儿,我们已经实现了对增删改查功能的实现,当然,基本的新闻发布功能已经实现?

关于管理系统的更多内容请点击《管理系统专题》进行学习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 什么叫jsp,jsp的概念是什么
  • 什么叫jsp,JSP是指
  • 什么叫jsp,JSP是指,JSP是什么?JSP是什么意思?
  • UglifyJsPlugin,
  • rss阅读器支持何种状态下使用,开源rss阅读器,基于JSP的RSS阅读器的设计与实现方法(推荐)
  • jsp页面如何获取session的值,jsp 获取session
  • jsp页面如何获取session的值,jsp 获取session,jsp中存取session值简单介绍
  • jsp的文件怎么打开,什么可以打开jsp文件
  • jsp的文件怎么打开,什么可以打开jsp文件,jsp是什么文件 如何打开jsp格式的文件
  • JSP实用教程,jsp教程csdn
  • JSP实用教程,jsp教程csdn,JSP教程(一)
  • jsp动态实现web网页登陆和注册功能区别,jsp实现注册和登录功能
  • jsp动态实现web网页登陆和注册功能区别,jsp实现注册和登录功能,JSP动态实现web网页登陆和注册功能
  • jsp分页功能实现两种方法,jsp分页技术
  • jsp分页功能实现两种方法,jsp分页技术,JSP实现分页效果
  • 留言与评论(共有 条评论)
       
    验证码: