崔洋洋----新闻发布管理系统实训报告

九江学院

信息科学与技术学院

新闻发布系统开发》课程设计(实训)报告书

             

    

   目:                               

   业:                               

   级:                               

   名:                               

   号:                               

同组人员:                              

指导老师:                              

设计时间:              


 

《新闻发布系统开发》课程设计(实训)报告书............... 1

1.课程设计(实训)计划............................... 3

2.系统需求分析与功能设计............................. 3

3. 总体设计......................................... 4

4. 数据库设计....................................... 5

5. 程序模块设计..................................... 6

6. 技术难点与分析.................................... 7

7. 系统测试......................................... 8

8. 心得体会......................................... 9

9. 参考文献........................................ 10

1.系统分析

1.1新闻添加模块

新闻添加模块功能如下:

对新闻的添加直接在管理页面点击添加新闻这个链接,这时我们可以转到另外一个新的页面:新闻添加页面。我们可以在这里要填写新闻的作者、新闻标题、新闻类型、新闻内容、新闻发布时间,填写完毕了,我们可以直接返回到新闻管理页面看到我们添加的新闻,点击新闻标题,我们就可以进入新闻的预览了。

1.2新闻修改模块

新闻修改模块功能如下:

如果我们想对我们不满意的新闻重新进行编辑,那么我们就可以在管理页面点击编辑,在这个系统里面我们设计管理员可以对新闻的标题和内容进行编辑,其它的就不可以编辑了,编辑后的新闻可以在管理页面里显示出来。

1.3新闻删除模块

新闻删除模块功能如下:

新闻的删除相对来说是比较简单的,我们只需要在管理页面对于那些我们不满意的新闻选中,然后点击删除就可以直接把新闻删除了。

1.4新闻浏览模块

新闻浏览模块功能如下:

想对新闻进行详细的浏览,我们可以点击新闻的标题直接进入网页阅读模式,在这个新的页面当中,我们不能在这里进行任何的编辑。

1.5管理员登陆模块

管理员登陆模块功能如下:

当用户需要使用新闻管理功能时,需要先以管理员身份登录系统。当未登录用户单击系统导航栏上的“新闻管理”超镕接时,进入管理员登录页面。用户可以在登录页面输入用户名和密码,若登录失败,则重定向到管理员登录页面等待下一次登录。

 

 

 

2新闻发布管理系统功能结构图

新闻发布系统功能结构图,如图1所示:

 

图 1 新闻发布管理系统流程图

 

 

 

 

 

 

 

 

 

 

 

3.数据库设计

3.1 数据库的创建

我们使用的是SQL Server 2005数据库,要使得新闻发布系统和数据库链接,我们必须要创建一个ODBC数据源,我们现在创建的数据源名字叫做:newsAccess.下面我们创建的是数据库、用户表和新闻信息表。

create database newsAccess;

use newsAccess;

create table UserInfo

(

    UserId int primary key identity,

    UserName nvarchar(10) not null,

    UserPwd nvarchar(16) not null

);

insert into UserInfo values('admin','admin');

create table NewsInfo

(

    NewsId int primary key identity,

    NewsUserName nvarchar(10) not null,

    NewsTitle nvarchar(100) not null,

    NewsType nvarchar(10) not null,

    Newscontent ntext not null,

    NewsUpTime datetime not null

);

 表1 新闻信息表newsinfo

表2 管理员信息表users

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

表3 新闻评论comment

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

表4 新闻类别信息名称classes

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

3.2 数据库连接

我们在新闻管理页面中对新闻的管理,首先我们必须链接数据库,下面的语句是用来链接的关键语句:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");     conn=DriverManager.getConnection("jdbc:odbc:newsAccess");

stmt=conn.createStatement();

我们还提供了添加、删除、修改、浏览的关键语句:

添加新闻

String sql="Insert into NewsInfo values('"+ username+"','"+title+"','"+type+"','"+content+"',getdate())";

stmt.executeUpdate(sql); response.sendRedirect("newsManage.jsp");

修改新闻

stmt=conn.createStatement();

sql="select * from NewsInfo where NewsId='"+NewsId+"'";      

 rs=stmt.executeQuery(sql);

if(rs.next())

String username=rs.getString("NewsUserName");

删除新闻

conn=DriverManager.getConnection("jdbc:odbc:newsAccess");

Statement stmt=conn.createStatement();

String sql= "DELETE FROM NewsInfo WHERE NewsId="+NewsId;

浏览新闻

sql="select * from NewsInfo where NewsId="+newsID;

rs=stmt.executeQuery(sql);

if(rs.next())

{

NewsTitle=rs.getString("NewsTitle");

 Type=rs.getString("NewsType");      Content=rs.getString("Newscontent");

Uptime=rs.getString("NewsUpTime");

 }

编码的转换(以添加新闻的标题和内容为例)

String title=(String)request.getParameter("newstitle");

if(title==null)

{title="";}      

byte c[]=title.getBytes("ISO-8859-1");

title=new String(c);

String content=(String)request.getParameter("NewsContent1");

if(content==null)

{content="";}

byte d[]=content.getBytes("ISO-8859-1");

content=new String(d);

 

 

7 系统功能实现

登录页面

我们登录进去需要输入管理员的用户名和密码,系统默认的是admin和admin,如果我们输入的用户名和密码有错,又或者是他们其中至少一个没有填写,则会出现错误,如图所示:

图2 登录界面

                               图3 登录出错

                               图4 新闻管理页面

新闻添加

在管理页面我们可以进行新闻的添加,我们点击就可以进行新闻的添加了,添加完成了我们可以进入浏览,在这里我们添加了三条VOA的新闻,然后我们在进行浏览,如下图所示:

                              图5 添加页面

                             图6 增加新闻

                             图7 浏览新闻

新闻修改

在管理页面可以直接点击修改链接来进行修改,我们将第二和第三条新闻修改为中文新闻。

                             图8 新闻修改页面

                             图9 修改新闻

4.4删除新闻

直接在管理页面中删除新闻,我们删除中间三条新闻有:

                             图10 删除新闻

程序源代码

<%

request.setCharacterEncoding("gbk");   

SearchNews sh = new SearchNews();

News n=sh.getNews(1);

if(n != null)

{      

%>

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

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

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

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

<% 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) { %>

<a href="commentofnew.jsp?newid=<% out.print(n.getNewsid()); %>"> <em>评论

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

<% } else { %>   <em>评论

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

</tr>

<p><hr>我要留言:</hr>

<form action="AddCommentOfNews" method="post" enctype="multipart/form-data" name="form1" id="form1">

<textarea name="commenttext" rows="15" cols="61"></textarea>

<input name="newsid" type="hidden" value="<% out.print(n.getNewsid()); %>"/>

<input name="Submit" type="submit" value="提交" />

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

{

// TODO Auto-generated method stub

doPost(request, response);

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

request.setCharacterEncoding("gbk");

response.setCharacterEncoding("gbk");

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

String comment = request.getParameter("commenttext");

String comperson = request.getParameter("person");

String type = request.getParameter("type");

PrintWriter pw = response.getWriter();

pw.println(newsid);

pw.println(comment);

Comment comm = new Comment();

comm.setContext(comment);

comm.setNewid(newsid);

comm.setComPerson(comperson);

int result = ModifComment.insert(comm);

if(type.equals("new"))

{

response.sendRedirect("oneofnews.jsp?newid="+newsid);

}

else if(type.equals("comment"))

{

response.sendRedirect("commentofnew.jsp?newid="+newsid);

}

else if(type.equals("admincomment"))

{

response.sendRedirect("admin\\admin_commentview.jsp?newid="+newsid);

}

}

添加一条评论的代码为:

public class InsertComment{

public static void insert(Comment comment)

{

DBConnectPool dbp=DBConnectPool.getInstance();

Connection conn=dbp.getConnection();

PreparedStatement pstmt=null;

try {

pstmt=conn.prepareStatement("inser into comment values(?,?,?,?)");

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

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

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

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

pstmt.executeUpdate();     

}

catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}finally

{

try

{

if(pstmt!=null)

pstmt.close();

}

catch(SQLException el)

{

el.printStackTrace();  

}

}

}

}

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doPost(request, response);

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse

*      response)

*/

protected void doPost(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("gbk");

response.setCharacterEncoding("gbk");

String username = request.getParameter("name");

String passwd = request.getParameter("pass");

boolean flag = false;

User user = (new SearchUsers()).getUser(username);

if(user!=null)

{

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

实训心得

几个星期的课程设计,新闻发布系统开发基本完成,新闻发布的基本功能这个系统都已经具备了。在这个过程中我也碰见了许多的困难,但是通过老师的教导,同学们的帮助以及自己不断的翻阅资料,分析和改正错误,不断的调试系统,终于我们可以完成了,很是欣慰。

新闻发布系统的成功制作更是激发了我对学习网页语言的语言的热情,网页语言是我们必须要学的,这是一个好的开始,我对这些语言也越来越感兴趣了。   

参考文献

[1] 耿祥义.Java大学实用教程.电子工业出版社,2005/03

[2] 耿祥义.Java大学实用教程实验指导.电子工业出版社,2005/03

[3]张登辉.ASP编程基础及应用.机械工业出版社, 2003/03

[4] 王珊、陈红等.数据库和数据库管理系统.电子工业出版社,2008/12

[5] 孙一林.Java语言程序设计.北京:清华大学出版社,2001

[6] 殷兆麟..Java网络编程基础.北京大学出版社,2004

[7] 教育部考试中心.全国计算机等级考试大纲.北京:高等教育出版社,2004

[8] 孙燕.Java程序设计培训教程.北京:清华大学出版社,2002

[9] 林建铭.精通Java2.北京科学出版社,2001

[10] 温平进、张威等.Instant Java2 实例解析.北京:北京希望电子出版社,2002

相关推荐