java课程设计.docx
《java课程设计.docx》由会员分享,可在线阅读,更多相关《java课程设计.docx(20页珍藏版)》请在冰豆网上搜索。
java课程设计
软件学院
课程设计报告书
课程名称JavaWeb程序设计教程
设计题目新闻发布系统
专业班级
学号
姓名
指导教师
2015年6月
目录
1设计内容1
1.1问题分析1
1.2项目目的1
2开发工具及相关框架介绍1
2.1开发工具1
2.2开发框架技术2
3数据库设计3
3.1数据库表定义3
4.系统设计4
4.1系统设计4
4.2主要模块的设计说明与界面4
4.2.1新闻首页模板4
4.2.2新闻查询和添加页面6
4.2.3新闻的内容修改和删除11
4.2.4查看和添加新闻类别14
5.测试17
6.总结18
参考文献19
1设计内容
1.1问题分析
现在是一个科学技术飞速发展、信息更替日新月异的世纪。
计算机已深入到各个领域,并且形成了功能强大、覆盖全球的信息传输网络。
各个领域都向系统化、规范化、自动化的方向发展,使得工作效率、工作成绩和生活水平都日益提高。
新闻网站也是绝大多数人了解时事的渠道,新闻信息管理系统包括对新闻网站信息的查询、删除、更新等,
本文详细论述了运用JavaWeb技术《新闻发布系统》的开发、设计环境及其具体的实现。
该系统采用模块化程序设计方法,便于系统功能的各种组合和修改。
可以及时根据企业需求进行新闻信息的添加、删除、修改等操作。
本系统采用SQLServer数据库,进一步提高系统安全性。
本系统符合新闻发布的规定,能够满足新闻网站日常更新,并达到操作过程中的直观、方便、实用、安全等要求。
1.2项目目的
1)新闻类别管理,实现对新闻类别的添加、修改、详细、删除和根据类别名称模糊查询。
2)新闻内容管理,实现对新闻内容的添加、修改、详细、删除和根据新闻标题模糊查询。
3)新闻内容和新闻类别能够关联起来,新闻内容包含新闻类别。
2开发工具及相关框架介绍
2.1开发工具
JAVA简介
Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发。
Java的产生与流行是当今Internet发展的客观要求,Java是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对象、分布式、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的,特别适合在Internet环境上开发的应用系统。
Web应用程序开发环境—JSP技术
JSP的全称是JavaServerPages,它是SUN推出的一种动态网页技术标准。
它在传统的静态页面文件(*.html,*.htm)中加入JAVA程序片段和JSP标记,就构成了JSP页面。
Tomcat应用服务器
Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。
你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。
编译以后,访问将会很快。
2.2开发框架技术
对于框架技术,我们采用Struts+Spring+Hibernate的整合,其实任何一种框架都可以完成我们的项目,但我们选择三种框架的组合是因为三种框架各有好处,我们利用它们的优点,来避免它们的缺点,充分利用Java技术在web的应用。
(1)Struts是应用比较广泛的一种表现层框架
Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)(MVC)模式的应用架构的开源框架,是利用Servlet,JSP和customtaglibrary构建Web应用的一项非常有用的技术。
由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速。
它使用服务层框架可以将JavaBeans从Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架。
(2)Hibernate通过持久层的框架将数据库存储从服务层中分离出来
它是O/RMapping的一种实现是目前在JAVA界使用非常广泛的O/RMapping的一种实现,可以实现关系型数据库和对象之间的映射。
用来开发数据库系统非常方便,可以将数据库和程序的设计融合在一起。
表现层和服务层的分离是通过两种框架达到目的的,剩余的就是持久层框架了,通过持久层的框架将数据库存储从服务层中分离出来就是其目的,持久层框架有两种方向:
直接自己编写JDBC等SQL语句(如Ibatis);使用O/RMapping技术实现的Hibernate和JDO技术;当然还有EJB中的实体Bean技术。
Hibernate的工作原理是通过文件把值对象和数据库表之间建立起一个映射关系,这样,我们只需要通过操作这些值对象和Hibernate提供的一些基本类,就可以达到使用数据库的目的。
例如,使用Hibernate的查询,可以直接返回包含某个值对象的列表(List),而不必向传统的JDBC访问方式一样把结果集的数据逐个装载到一个值对象中,为我们的编码工作节省了大量的劳动。
3数据库设计
3.1数据库E-R图
3.2数据库表定义
下面列出了设计过程中所用到的数据库表及其结构:
1、news表用来保存新闻信息
表3-1news
1.news
列名
类型
长度
描述
ID
int
8
新闻ID
Title
varchar
50
新闻标题
Type
varchar
50
新闻类型
Content
Text
8
新闻内容
Time
Datatime
20
新闻时间
2、news_type表用来保存新闻分类
表3-2news_type
2.news_type
列名
类型
长度
描述
ID
Int
16
新闻分类ID
name
varchar
50
新闻分类类型
4.系统设计
4.1系统设计
在本系统中主要阐述新闻类别管理、新闻内容管理两个模块。
1)新闻类别管理,实现对新闻类别的添加、修改、详细、删除和根据类别名称模糊查询。
2)新闻内容管理,实现对新闻内容的添加、修改、详细、删除和根据新闻标题模糊查询。
3)新闻内容和新闻类别能够关联起来,新闻内容包含新闻类别。
4.2主要模块的设计说明与界面
4.2.1新闻首页模板
图4-1新闻首页页面
新闻首页模板代码如下:
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
">
MyJSP'index.jsp'startingpage
--
-->
4.2.2新闻查询和添加页面
图
4-2新闻查询和添加页面
图4-3查询成功页面
图4-4新闻添加页面
查询代码如下:
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<%@tagliburi="prefix="c"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
">
MyJSP'tj_newlist.jsp'startingpage
--
-->
ID | 新闻标题 | 新闻类别 | 新闻内容 | 发布时间 |
---|
forEachvar="news"items="${newslist}">
${news.id} | ${news.title} | ${news.newsType.name} | ${news.content} | ${news.time} | --
toupdate? id=${news.id}">修改 delete? id=${news.id}">删除
| -->
forEach>
添加代码如下:
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<%@tagliburi="prefix="c"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
">
MyJSP'addnews.jsp'startingpage
--
-->
addNews">
新闻标题: | |
新闻类别: |
forEachvar="newstype"items="${newstypelist}"> ${newstype.name}
forEach> |
新闻内容: | |
| |
4.2.3新闻的内容修改和删除
图4-5新闻修改页面
新闻修改页面代码:
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<%@tagliburi="prefix="c"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
">
MyJSP'update.jsp'startingpage
--
-->
update">
新闻标题:
新闻类别:
forEachvar="newstype"items="${newstypelist}">
${newstype.name}
forEach>
---->
新闻内容:
4.2.4查看和添加新闻类别
图4-6查看新闻类别页面
查看新闻类别带代码:
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<%@tagliburi="prefix="c"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
">
MyJSP'newstypelist.jsp'startingpage
--
-->
toadd"target="main">添加类别
类别ID | 新闻类别 | 操作 |
---|
forEachvar="newstype"items="${newstypelist}">
${newstype.id} | ${newstype.name} | --toupdate? id=${newstype.id}">修改 --> deletenewstype? id=${newstype.id}">删除
|
forEach>
添加新闻类别代码:
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
">
MyJSP'addnewstype.jsp'startingpage