java写新闻发布系统.docx

上传人:b****2 文档编号:24450345 上传时间:2023-05-27 格式:DOCX 页数:19 大小:380.75KB
下载 相关 举报
java写新闻发布系统.docx_第1页
第1页 / 共19页
java写新闻发布系统.docx_第2页
第2页 / 共19页
java写新闻发布系统.docx_第3页
第3页 / 共19页
java写新闻发布系统.docx_第4页
第4页 / 共19页
java写新闻发布系统.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

java写新闻发布系统.docx

《java写新闻发布系统.docx》由会员分享,可在线阅读,更多相关《java写新闻发布系统.docx(19页珍藏版)》请在冰豆网上搜索。

java写新闻发布系统.docx

java写新闻发布系统

Web课程设计报告

JSP新闻发布系统

图2-1采用JDBC技术实现数据库访问模型

B/S开发模式

B/S结构,即Browser/Server--浏览器/服务器结构,浏览器发送请求而服务器应答请求。

其工作原理如下

图2-2B/S结构的三层模型

前台通过IE、Firefox等浏览器向Web服务器发送HTTP请求,web服务器通过JSP和一些中间件访问后台数据库,并将操作的结果以HTML页面的形式返回给前端的浏览器。

比与C/S模式,采用B/S模式用户的操作更加简单,不像C/S需要在客户端进行客户端程序,只需要一个通用浏览器即可完成数据的请求与接收,大幅的减少了客户端的维护工作。

同时,B/S模式使用的技术是Internet的Web技术,因而更适合于网上的信息发布。

新闻发布系统包括新闻类别管理、新闻发布管理、新闻搜索、留言评论管理等模块。

具体描述如下:

(1)新闻类别管理:

a.新闻类别的添加;

b.新闻类别的修改;

c.新闻类别的删除;

(2)新闻发布管理:

a.基本新闻信息的发布,包括新闻标题、新闻内容等;

b.基本新闻信息的修改;

c.基本新闻信息的删除;

(3)新闻统计模块

a.对点击次数的统计

b.根据点击次数排除点击排行榜

c.根据发布时间的先后时间排出最新文章

(4)新闻搜索模块:

a.按照新闻标题搜索;-

b.按照新闻内容搜索。

c.搜索结果的显示

(5)评论管理模块:

a.网友发表评论、留言;

b.对留言的过滤

c.管理员对留言的管理

E-R模型

根据分析可划分出新闻信息、新闻类别信息、评论信息和用户信息和几个实体,其具体的E-R模型如下

(1)新闻信息

图3-1新闻信息实体的E-R模型

(2)评论信息

图3-2评论信息实体的E-R模型

(3)用户信息

图3-3用户信息实体的E-R模型

(4)新闻类别信息

图3-4新闻类别信息实体的E-R模型

(5)ER关系图

图3-5ER关系模型图

3.3系统流程图

图3-6系统的基本流程

任何用户从浏览器输入地址进入本新闻发布系统后首先进入新闻主界面,即可进行新闻的查看,根据标题或内容进行新闻的搜索,以及进入评论页面进行新闻的评论。

输入管理员登录页面的地址,进入登录页面,用户输入用户名和密码以及正确的验证码后可进入后台管理,有新闻的发布,新闻的管理,新闻类别的管理,新闻评论的管理等。

断开与服务器的连接即退出本新闻系统。

3.4数据流图

(1)前台数据流图

图3-7前台的数据流图

数据库中有两个表用于前台的数据的存放,新闻信息表newsinfo中存放新闻的内容,标题,点击量等数据,通过各种命令与前台进行数据交换。

留言信息表存放用户的留言。

(2)后台数据流图

图3-8后台数据流图

3.5系统功能模块划分

从功能描述的内容可以看到,本系统可以实现五个完整的功能。

根据这些功能,设计出系统的功能模块,如下图所示。

图3-9新闻发布总体系统功能模块示意图

3.6数据库设计

本系统采用MySql数据库,在数据库中使用数据表article来储存现有的新闻信息。

表的结构如表

字段名称

数据类型

说明

newsid

Int(10)unsigned

新闻编号,自动增加(主键)

biaoti

Varchar(45)

新闻的标题

fabushijian

datetime

发布时间

pinglun

Int(10)unsigned

新闻评论id

laiyuan

Varchar(45)

新闻来源

tupian

Varchar(45)

新闻图片路径名称

Zhaiyao

Text

新闻摘要

guanjianzi

Varchar(45)

新闻关键字

classid

Int(10)unsigned

新闻类别id

zhengwen

Text

正文

fabiaozhe

Varchar(45)

发表者

banquanxinxi

Varchar(45)

版权信息

dianjialv

Int(10)unsigned

点击率,浏览一次增加1

表3-1新闻信息表newsinfo

使用数据表users来储存管理员的信息,表的结构如下表

字段名称

数据类型

说明

username

Varchar(45)

管理员用户名

userpasswd

Varchar(128)

管理员用户密码

表3-2管理员信息表users

使用数据表comment来储存新闻评论信息,表的结构如下表

字段名称

数据类型

说明

newsid

Int(10)unsigned

新闻id

ComTime

timestamp

评论时间

ComPerson

Varchar(45)

评论者

Content

text

评论内容

表3-3新闻评论comment

使用数据表classes来储存新闻类别信息,表的结构如下表

字段名称

数据类型

说明

classid

Int(10)unsigned

类别id自动增长

classname

Varchar(45)

类别名称

表3-4新闻类别信息名称classes

4详细设计

4.1前台系统

4.1.1新闻的查看

主页面如下图

图4-1系统主页界面效果

任何用户在浏览器输入网址后进入本站界面,即可查看新闻标题及发布时间,新闻的评论、新闻的点击率等,单击任意一条新闻标题即可查看新闻内容。

图4-2新闻内容界面效果

显示一条新闻的主要代码为:

<%

request.setCharacterEncoding("gbk");

SearchNewssh=newSearchNews();

Newsn=sh.getNews

(1);

if(n!

=null)

{

%>

<%out.println(n.getBiaoti());%>

<%out.print(n.getFabushijian());%>

<%out.println(n.getLaiyuan());%>

<%out.println(n.getZhaiyao());%>

<%out.println(n.getTupian());%>

<%out.println(StringToHtml.toHtml(n.getZhengwen()));%>

<%out.println(n.getGuanjianzi());%>

<%out.println(n.getFabiaozhe());%>

<%out.println(n.getClassid());%>

<%out.println(n.getDianjilv());%>

<%}%>

<%out.println(n.getBanquanxinxi());%>

<%if(n.getComcount()!

=0){%>

newid=<%out.print(n.getNewsid());%>">评论

<%out.print(n.getComcount());%>条>>

<%}else{%>评论

<%out.print(n.getComcount());%>条>><%}%>


我要留言:

"/>

4.1.2评论功能的实现

评论管理的数据流图如下

图4-3评论管理数据流图

评论与浏览页面:

图4-4评论浏览添加评论页面

评论实现的事务处理相关代码:

protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

//TODOAuto-generatedmethodstub

doPost(request,response);

}

/**

*@seeHttpServlet#doPost(HttpServletRequestrequest,HttpServletResponseresponse)

*/

protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

//TODOAuto-generatedmethodstub

request.setCharacterEncoding("gbk");

response.setCharacterEncoding("gbk");

intnewsid=Integer.parseInt(request.getParameter("newsid"));

Stringcomment=request.getParameter("commenttext");

Stringcomperson=request.getParameter("person");

Stringtype=request.getParameter("type");

PrintWriterpw=response.getWriter();

pw.println(newsid);

pw.println(comment);

Commentcomm=newComment();

comm.setContext(comment);

comm.setNewid(newsid);

comm.setComPerson(comperson);

intresult=ModifComment.insert(comm);

if(type.equals("new"))

{

response.sendRedirect("oneofnews.jsp?

newid="+newsid);

}

elseif(type.equals("comment"))

{

response.sendRedirect("commentofnew.jsp?

newid="+newsid);

}

elseif(type.equals("admincomment"))

{

response.sendRedirect("admin\\admin_commentview.jsp?

newid="+newsid);

}

}

添加一条评论的代码为:

publicclassInsertComment{

publicstaticvoidinsert(Commentcomment)

{

DBConnectPooldbp=DBConnectPool.getInstance();

Connectionconn=dbp.getConnection();

PreparedStatementpstmt=null;

try{

pstmt=conn.prepareStatement("inserintocommentvalues(?

?

?

?

)");

pstmt.setInt(1,comment.getNewid());

pstmt.setDate(2,(java.sql.Date)(newDate()));

pstmt.setString(3,comment.getComPerson());

pstmt.setString(4,comment.getContext());

pstmt.executeUpdate();

}catch(SQLExceptione1){

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}finally

{

try

{

if(pstmt!

=null)

pstmt.close();

}catch(SQLExceptionel)

{

el.printStackTrace();

}

}

}

}

4.2后台管理系统的设计

4.2.1后台登陆模块

图4-5后台登陆界面

当用户在对话框输入正确的用户名、密码及随机产生的验证码时,进入后台页面lf.jsp,否则回到登陆页面login.jsp并提示原因。

登录事务处理相关代码如下:

protectedvoiddoGet(HttpServletRequestrequest,

HttpServletResponseresponse)throwsServletException,IOException{

//TODOAuto-generatedmethodstub

doPost(request,response);

}

/**

*@seeHttpServlet#doPost(HttpServletRequestrequest,HttpServletResponse

*response)

*/

protectedvoiddoPost(HttpServletRequestrequest,

HttpServletResponseresponse)throwsServletException,IOException{

request.setCharacterEncoding("gbk");

response.setCharacterEncoding("gbk");

Stringusername=request.getParameter("name");

Stringpasswd=request.getParameter("pass");

booleanflag=false;

Useruser=(newSearchUsers()).getUser(username);

if(user!

=null)

{

if(passwd.equals(user.getPassWord()))

{

flag=true;

}

}

if(flag)

{

response.sendRedirect("admin/admin_index.html");

}

else

{

response.sendRedirect("admin/login.jsp");

}

}

4.2.2新闻的管理

文章的管理包括文章的添加,删除和修改等操作,其数据流图如下

图4-6文章管理的数据流图

新闻的添加

新闻添加页面如下:

图4-7新闻添加界面

添加一条新闻的相关代码为:

publicstaticbooleaninsert(Newsnews){

booleanflag=false;

DBConnectPooldbp=DBConnectPool.getInstance();

Connectionconn=dbp.getConnection();

PreparedStatementpstmt=null;

try{

pstmt=conn.prepareStatement(

"insertintonewsinfo("+

"biaoti,gabushijian,pinglun,"+

"laiyuan,tupian,zhaiyao,guanjiainzi,"+

"classid,fabiaozhe,banquanxinxi,dianjilv"+

")"+

"value(?

?

?

?

?

?

?

?

?

?

?

);");

pstmt.setString(2,news.getBiaoti());

pstmt.setDate(3,news.getFabushijian());

pstmt.setInt(4,news.getPinglun());

pstmt.setString(5,news.getLaiyuan());

pstmt.setString(6,news.getTupian());

pstmt.setString(7,news.getZhaiyao());

pstmt.setString(8,news.getGuanjianzi());

pstmt.setInt(9,news.getClassid());

pstmt.setString(10,news.getFabiaozhe());

pstmt.setString(11,news.getBanquanxinxi());

pstmt.setInt(12,news.getDianjilv());

intr=pstmt.executeUpdate();

if(r==1)

flag=true;

}catch(SQLExceptione1){

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}finally{

try{

if(pstmt!

=null)

pstmt.close();

}catch(SQLExceptionel){

el.printStackTrace();

}

}

returnflag;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1