JSP 新闻发布系统实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要
现在是一个科学技术飞速发展、信息更替日新月异的世纪。

计算机已深入到各个领域,并且形成了功能强大、覆盖全球的信息传输网络。

各个领域都向系统化、规范化、自动化的方向发展,使得工作效率、工作成绩和生活水平都日益提高。

新闻网站也是绝大多数人了解时事的渠道,新闻信息管理系统包括对新闻网站信息的查询、删除、更新等,
本文详细论述了运用JavaWeb技术《新闻发布系统》的开发、设计环境及其具体的实现。

该系统采用模块化程序设计方法,便于系统功能的各种组合和修改。

可以及时根据企业需求进行新闻信息的添加、删除、修改等操作。

本系统采用oracle 数据库,进一步提高系统安全性。

本系统符合新闻发布的规定,能够满足新闻网站日常更新,并达到操作过程中的直观、方便、实用、安全等要求。

关键字:JavaWeb;新闻发布;新闻查询;新闻浏览;新闻编辑;新闻更新。

目录
摘要..................................................................................................................................................... I I 第一章系统概述 (1)
1.1 需求分析 (1)
1.2 目标设计 (1)
第二章系统设计 (2)
2.1 系统整体设计 (2)
2.2 管理员模块 (2)
2.3 数据库介绍 (3)
2.3.1 Oracle数据库 (3)
2.3.2 数据库的连接 (3)
2.4 数据库的逻辑设计 (3)
第三章系统实现 (5)
3.1 开发工具选择 (5)
3.2 开发平台 (5)
3.3 分页技术问题 (5)
3.3.31JDBC和分页 (5)
3.4 程序几个功能模块的主要代码 (7)
第四章系统运行 (15)
4.1运行环境 (22)
4.2运行效果 (22)
结束语 (28)
参考文献 (28)
第一章系统概述
1.1 需求分析
目前,网页制作如火如荼,网站建设热火朝天,及社会的竞争是越来越激烈,各厂家及生产公司都在不断的提高生产的产品质量,特别是电子上午的发展正在关键的时刻,各商家都在最后的冲刺、网页月月改版,信息日日更新,这时他们就得借助媒体来提高他们的产品的知名度,而网络新闻发布信息就是一种很好、很现代的工具。

JSP是一种简单的、安全的,性能非常之高的、动态的脚本语言。

JSP可以用来开发Web应用程序,JSP具有较高的执行效率,强大的数据库支持和网络支持, 具有多平台特性和极大的开放性和扩充性,拥有广泛的应用前景。

1.2目标设计
用JSP完成网络新闻发布系统的总体设计及各个细化模块的具体编程实现所开发的新闻发布网站系统必须具有新闻发布、新闻修改系统、各类新闻显示及相关内容浏览等功能。

在新闻浏览之前,要对新闻进行发布。

在发布的时候,出点错误和遗漏是在所难免,这时就需要对新闻进行修改。

因为新闻是直接与广大浏览者进行会面的,所以必须对所发布的新闻做到尽可能的正确、准确,这样浏览者才会经常浏览我们所发布的新闻。

第二章系统设计
2.1系统整体设计
此系统主要是内部新闻发布系统应用管理系统。

而系统的功能模块划分既要注重各个部分本身的功能,又要注重各个功能模块之间的联系,形成一套高效、快捷的新闻发布系统。

这就要求从管理需要和系统开发两个方面进行综合考虑,各个模块既有较强的独立性,又要留有适当的接口,以便日后对功能进行扩充和完善求。

2.2管理员模块
企业用户管理管理员可以对企业用户发送信息,可以查看他的基本资料,还可以删除这个用户.
2.3 常用数据库介绍
2.3.1 Oracle数据库
Oracle公司是第一个推出基于SQL标准的关系数据库产品的公司。

它推出的Oracle数据库系统支持多种硬件平台及操作系统,用户的Oracle应用可以很方便地从一种计算机配置移植到另一种计算机配置上。

Oracle数据库系统具有以下特点:严格遵守数据存取语言,操作系统,用户接口和网络通信协议的工业标准;适合于大型数据库和多用户的事务处理;支持分布式处理。

2.3.2数据库的连接
在Java的函数库中,有一组专门处理与数据库有关的API:JDBC(Java Database Connection).我们主要利用JDBC这组API来和数据库沟通。

JDBC最主要完成的事情有:与数据库创建连接;送SQL命令给数据库,操作数据库及数据表;接受及处理数据库所执行的结果。

不过在创建数据库连接前,我们必须合适的数据库连接的驱动程序。

目前JDBC根据数据库连接的方式,将驱动程序分成四种类型:Type1,Type2,Type3,Type4。

我使用第一种类型Type1来连接数据库。

Type1的驱动程序是通过与ODBC的连接来与数据库沟通(JDBC-ODBC Bridge),也就是JDBC会将所有要与数据库沟通的SQL命令通知ODBC,由ODBC来负责与数据库沟通。

由于JDBC API内部已经有这种驱动程序的存在,我们不用考虑太多驱动程序问题,只要将ODBC设置完成即可,而且不论是何种数据库,只要支持ODBC连接方式就可以连上,所以是一种简单又方便的方式。

不过利用此种方式有一定的缺点。

当项目很大或者用户很多时,维护的ODBC连接是一件麻烦又恼人的工作。

再者由于需要在JDBC与ODBC之前做数据传递及转换,许多时间浪费在这上面,造成性能上的不良后果。

2.4数据库的逻辑设计
在本新闻发布系统发布系统数据库中,本论文所描述的模块所涉及到的表有用户信息表PERSON、新闻信息表NOTE等。

分别对各个表进行设计说明,在用户信息表中,个人的ID为主键,这是字段的数据类型为自动编号,用自动编号做主键可以加快数据的读取速度,而且ID号是由oracle自动分配不可能出现重复的,所以选择个人的ID号为主键。

用户信息表用来保存用户的基本信息,关键字为用户的ID号。

设计如表3-4所示:
用户信息表:
表3-4
新闻信息表:
表3-5
第三章系统实现
3.1 开发工具选择
新闻发布系统作为提供新闻信息,必须具备一些基本的条件。

首先,它应该具有友好的界面,方便的操作,与用户之间有很好的沟通;其次,它对数据的处理,数据的交换有着较高的要求。

它应该具有速度快,容量大,便于管理的特点。

正是因为这些因素,我们选择了My Eclipse ,Oracle作为本次系统开发的工具。

JavaWeb是Java技术的一个分支,主要是JSP,JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。

JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。

Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。

插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。

JSP与Java Servlet 一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

3.2 开发平台
基于My Eclipse和oracle 对运行环境的要求,并考虑到目前学校的计算机硬件设备的实施情况,本系统采用Tomcat 6.0服务器,MyEclipse 8.5作为开发测试和运行平台。

3.3分页技术问题
3.3.1 JDBC和分页
在使用数据库的过程中,不可避免的需要使用到分页的功能,可是JDBC的规范对此却没有很好的解决。

对于这个需求很多朋友都有自己的解决方案,比如使用Vector等集合类先保存取出的数据再分页。

但这种方法的可用性很差,与JDBC本身的接口完全不同,对不同类型的字段的支持也不好。

这里提供了一种与JDBC兼容性非常好的方案。

Sun的JDBC规范的制定,在JDBC1.0中,对于一个结果集(ResultSet)你甚至只能执行next()操作,而无法让其向后滚动,这就直接导致在只执行一次SQL查询的情况下无法获得结果集的大小。

所以,如果你使用的是JDBC1.0的驱动,那么是几乎无法实现分页的。

好在Sun的JDBC2规范中很好的弥补了这一个不足,增加了结果集的前后滚动操作,虽然仍然不能直接支持分页,但我们已经可以在这个基础上写出自己的可支持分页的ResultSet了。

有一些数据库,如MySQL(和PHP搭配之最佳组合),比如MySQL(和PHP搭配之最佳组合)可以使用limit子句,Oracle(大型网站数据库平台)可以使用ROWNUM来限制结果集的大小和起始位置。

这里以Oracle(和JAVAWEB搭配之最佳组合)为
所进行的更新,添加,删除,查询操作,成功后都会2秒后自动跳到新闻列表页创建person表的语句:
create table person
(id varchar2(20),
name varchar2(20),
password varchar2(20)
);
插在person 表中的用户名和密码如下:
insert into person values('luxiang','luxiang','luxiang');
insert into person values('yangsi','yangsi','yangsi');
insert into person values('liaofangjie','liaofangjie','liaofangjie');
insert into person values('licuiting','licuiting','licuiting');
insert into person values('zhangchunyan','zhangchunyan','zhangchunyan');
commit;
创建note表的语句:
create table note
(
id varchar2(10),
title varchar2(20),
author varchar2(20),
content varchar2(200)
);
在插入新闻时note 表中的主键是由序列生成创建序列的语句:
create sequence note_sequ;
3.4程序几个功能模块的主要代码
1.用户登录
Login.jsp
登陆界面,用户登录的表单.
<%
//判断是否有错误信息,若有则打印
//如果没些代码,则显示时会直接打印null if(request.getAttribute("err")!=null)
{
%>
<h2><%=request.getAttribute("err") %></h2> <%
}
%>
<form action="login_conf.jsp" method="post">
<table width="80%">
<tr>
<td colspan="2">用户登陆</td></tr>
<tr>
<td>
用户名:</td>
<td><input type="text" name="name"/></td></tr>
<tr>
<td>
密码:</td>
<td><input type="password" name="password"/></td></tr> <tr>
<td colspan="2">
<input type="submit" value="登陆">
<input type="reset" value="重置"></td></tr>
</table>
</form>
Login_conf.jsp
用户登录后的处理页面,连接到数据库中person表中的记录,用以验证用户名和密码是否正确:
<%
//声明一个boolean变量,用于用户是否合法的状态
boolean flag=false;
//接收数据
String id=request.getParameter("name") ;
String password=request.getParameter("password") ;
%>
<%
String sql="select name from person where name=? and password=?";
try
{
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,id);
pstmt.setString(2,password);
rs=pstmt.executeQuery();
if(rs.next())
{
//用户合法
flag=true;
//将用户名在session之中
session.setAttribute("name",rs.getString(1));
}
else
{
//保证错误信息
request.setAttribute("err","错误的用户名及密码");
}
rs.close();
pstmt.close();
conn.close();
}
catch(Exception e)
{}
%>
<%
if(flag)
{
%>
<jsp:forward page="login_success.jsp"></jsp:forward> <%
}
else
{
%>
<jsp:forward page="login.jsp"></jsp:forward>
<%
}
%>
2. 添加新闻功能,可以对数据库进行插入记录。

Insert.jsp
<td colspan="2">添加新闻</td></tr>
<tr>
<td>标题:</td>
<td><input type="text" name="title"/></td></tr>
<tr>
<td>作者:</td>
<td><input type="text" name="author"/></td></tr>
<tr>
<td>内容:</td>
<td><textarea cols="60" name="content" rows="10"></textarea></td></tr> <tr>
<td colspan="2"><input type="submit" value="添加"/>
</td>
<td colspan="2"><input type="reset" value="重置"/>
</td></tr>
</table>
</form>
<h3><a href="list_notes.jsp">回到新闻列表页面</a></h3> <%}
else
{
//用户未登录,提示请登陆
response.setHeader("refresh","2;url=login.jsp");
%>
您还未登陆,请先登陆!!<br/>
两秒后自动跳转到登陆窗口<br/>
如果没有跳转,请点<a href="login.jsp">这里</a>!Insert-do.jsp
添加新闻处理页面:
<%//进行乱码处理
request.setCharacterEncoding("gb2312");
%>
<%if(session.getAttribute("name")!=null)
{%><%!
String DBDRIVER="oracle.jdbc.driver.OracleDriver";
String DBURL ="jdbc:oracle:thin:@127.0.0.1:1521:lfj";
String DBUSER="scott";
String DBPASSWORD="tiger";
Connection conn=null;
PreparedStatement pstmt =null;
//ResultSet rs=null;
%> <%
//声明一个boolean变量,用于用户是否合法的状态
boolean flag=false;
//接收数据
String title=request.getParameter("title") ;
String author=request.getParameter("author") ;
String content=request.getParameter("content");
%>
<%
//现在note表中的主键是sequence生成
String sql="insert into note values(note_sequ.nextVal,?,?,?)";
try
{ Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD); pstmt=conn.prepareStatement(sql);
pstmt.setString(1,title);
pstmt.setString(2,author);
pstmt.setString(3,content);
pstmt.executeUpdate();
pstmt.close();
conn.close();
//如果插入成功,则肯定能执行到此代码
flag=true;
}
catch(Exception e)
{} %> <%
response.setHeader("refresh","2;url=list_notes.jsp");
if(flag)
{ %>
新闻添加成功,两秒后跳转到新闻列表页!
如果没有跳转,请点<a href="list_notes.jsp">这里</a> <%}
else
{
%>
新闻添加失败,两秒后跳转到新闻列表页!
如果没有跳转,请点<a href="list_notes.jsp">这里</a>
<%
}%><%}
else
{
//用户末登录,提示请登陆
response.setHeader("refresh","2;url=login.jsp");
%>
您还末登陆,请先登陆!!<br/>
两秒后自动跳转到登陆窗口<br/>
如果没有跳转,请点<a href="login.jsp">这里</a>!
3. 删除功能,可以删除数据库中note表的记录Delete.jsp
<%if(session.getAttribute("name")!=null)
{}
else
{//用户末登录,提示请登陆
response.setHeader("refresh","2;url=login.jsp");
%>
您还末登陆,请先登陆!!<br/>
两秒后自动跳转到登陆窗口<br/>
如果没有跳转,请点<a href="login.jsp">这里</a>!
Delete-do.jsp
删除处理功能
//声明一个boolean变量,用于用户是否合法的状态
//boolean flag=false;
//接收数据
String title=request.getParameter("title") ;
String author=request.getParameter("author") ;
String content=request.getParameter("content");
int id=0;
try{
id=Integer.parseInt(request.getParameter("id"));}
catch(Exception e)
{}
%>
<%//若有内容,则删除id号对应的内容。

String sql="delete from note where id=?";
boolean flag=false;
try
{
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD); pstmt=conn.prepareStatement(sql);
//pstmt.setString(1,id);
//pstmt.setString(2,password);
pstmt.setInt(1,id);
pstmt.executeUpdate();
flag=true;
pstmt.close();
conn.close();
}
catch(Exception e)
{}
%>
<%
response.setHeader("refresh","2;url=list_notes.jsp");
if(flag)
{
%>
新闻删除成功,两秒后跳转到新闻列表页!
如果没有跳转,请点<a href="list_notes.jsp">这里</a> <%
}
else
{
%>
新闻删除失败,两秒后跳转到新闻列表页!
如果没有跳转,请点<a href="list_notes.jsp">这里</a> <%}%>
<%}
else
{
//用户末登录,提示请登陆
response.setHeader("refresh","2;url=login.jsp");
%>
您还末登陆,请先登陆!!<br/>
两秒后自动跳转到登陆窗口<br/>
如果没有跳转,请点<a href="login.jsp">这里</a>!
4. 显示所有新闻及查询新闻功能,可以对数据库的记录进行查询。

List-notes.jsp
if(session.getAttribute("name")!=null)
{%>
<%!String DBDRIVER="oracle.jdbc.driver.OracleDriver";
String DBURL ="jdbc:oracle:thin:@127.0.0.1:1521:lfj";
String DBUSER="scott";
String DBPASSWORD="tiger";
Connection conn=null;
PreparedStatement pstmt =null;
ResultSet rs=null;
%>
<%//若有内容,则
int i=0;
String sql=null;
String keyword=request.getParameter("keyword");
if(keyword==null)
{//没有任何查询条件
sql="select id,title,author,content from note";
}
else
{//有查询条件
sql="select id,title,author,content from note where title like ? or author like ? or content like ?";
}
try { Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
pstmt=conn.prepareStatement(sql);
//pstmt.setString(1,id);
//pstmt.setString(2,password);
//如果存在查询内容,则要设置查询条件
if(keyword!=null)
{//存在查询条件
pstmt.setString(1,"%"+keyword+"%");
pstmt.setString(2,"%"+keyword+"%");
pstmt.setString(3,"%"+keyword+"%");
}
rs=pstmt.executeQuery();
%>
<form action="list_notes.jsp" method="post">
请输入要查询的新闻:<input type="text" name="keyword"/>
<input type="submit" value="查询"/></form>
<h3><a href="insert.jsp">添加新闻</a></h3>
<table width="80%" border="1">
<tr>
<td>新闻id</td> <td>标题</td> <td>作者</td> <td>内容</td><td>删除</td></tr>
<%
while(rs.next())
{i++;
//循环打印,所有内容提要
int id=rs.getInt(1);
String title=rs.getString(2);
String author=rs.getString(3);
String content=rs.getString(4);
if(keyword!=null)
{ title=title.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>"); author=author.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>"); content=content.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>"); }
%>
<tr>
<td><%=id%></td>
<td><a href="update.jsp?id=<%=id %>"><%=title%></a></td>
<td><%=author%></td>
<td><%=content%></td>
<td ><a href="delete_do.jsp?id=<%=id %>">删除</a></td></tr>
<% }
//判断i 的值是否有变化,
if(i==0)
{%>
<tr>
<td colspan="5">没有任何内容!</td></tr>
<%
}
%>
</table>
<%
rs.close();
pstmt.close();
conn.close();
}
catch(Exception e)
{} %> <%}
else{//用户末登录,提示请登陆
response.setHeader("refresh","2;url=login.jsp");
%>
您还末登陆,请先登陆!!<br/>
两秒后自动跳转到登陆窗口<br/>
如果没有跳转,请点<a href="login.jsp">这里</a>!
<%
}
%>
5.修改新闻功能,可以对数据库的note 表中的记录进行修改。

Update.jsp
<%if(session.getAttribute("uname")!=null)
{
%>
<%!
String DBDRIVER="oracle.jdbc.driver.OracleDriver";
String DBURL ="jdbc:oracle:thin:@127.0.0.1:1521:news"; String DBUSER="scott";
String DBPASSWORD="tiger";
Connection conn=null;
PreparedStatement pstmt =null;
ResultSet rs=null;
%>
<%
int id=0;
try{
id=Integer.parseInt(request.getParameter("id")); }
catch(Exception e)
{}%>
<%//若有内容,则
int i=0;
String sql="select id,title,author,content from note where id=?"; try
{
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD); pstmt=conn.prepareStatement(sql);
//pstmt.setString(1,id);
//pstmt.setString(2,password);
pstmt.setInt(1,id);
rs=pstmt.executeQuery();
%>
<%
if(rs.next())
{i++;
//循环打印,所有内容提要
id=rs.getInt(1);
String title=rs.getString(2);
String author=rs.getString(3);
String content=rs.getString(4);
%>
<form action="update_do.jsp" method="post">
<table>
<tr>
<td colspan="2">添加新闻</td></tr>
<tr>
<td>标题:</td>
<td><input type="text" name="title" value=<%=title %>/></td></tr>
<tr>
<td>作者:</td>
<td><input type="text" name="author" value=<%=author %>/></td></tr>
<tr>
<td>内容:</td>
<td><textarea cols="60" name="title" rows="10" <%=content %>></textarea></td></tr>
<tr>
<td colspan="2">
<input type="hidden" name="id " value=<%=id %>/>
<input type="submit" value="更新"/>
<input type="reset" value="重置"/>
</td></tr>
</table>
</form>
<%
}
else
{
%>
没有发现要更新的内容,<br>请确认要更新的新闻存在<%
}
%>
<%
rs.close();
pstmt.close();
conn.close();
}
catch(Exception e)
{}
%>
<h2><a href="list_notes.jsp">回到新闻列表</a></h2> <%
}
else
{
//用户末登录,提示助记词登陆
response.setHeader("refresh","2;url=login.jsp");
%>
您还末登陆,请先登陆!!<br/>
两秒后自动跳转到登陆窗口<br/>
如果没有跳转,请点<a href="login.jsp">这里</a>!<%
}
%>
Update_do.jsp
新闻更新处理页面
<%
//进行乱码处理
request.setCharacterEncoding("gb2312");
%>
<%if(session.getAttribute("name")!=null)
{
%>
<%!
String DBDRIVER="oracle.jdbc.driver.OracleDriver"; String DBURL ="jdbc:oracle:thin:@127.0.0.1:1521:news"; String DBUSER="scott";
String DBPASSWORD="tiger";
Connection conn=null;
PreparedStatement pstmt =null;
//ResultSet rs=null;
%>
<%
//声明一个boolean变量,用于用户是否合法的状态boolean flag=false;
//接收数据
String title=request.getParameter("title") ;
String author=request.getParameter("author") ;
String content=request.getParameter("content");
int id=0;
try{
id=Integer.parseInt(request.getParameter("id"));}
catch(Exception e)
{}
%>
<%
//更新note表的数据
String sql="update note set title=?,author=?,content=? where id=?";
try
{
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD); pstmt=conn.prepareStatement(sql);
pstmt.setString(1,title);
pstmt.setString(2,author);
pstmt.setString(3,content);
pstmt.setInt(4,id);
pstmt.executeUpdate();
pstmt.close();
conn.close();
//如果插入成功,则肯定能执行到此代码
flag=true;
}
catch(Exception e)
{}
%>
<%
response.setHeader("refresh","2;url=list_notes.jsp");
if(flag)
{
%>
留言更新成功,两秒后跳转到新闻列表页!
如果没有跳转,请点<a href="list_notes.jsp">这里</a> <%
}
else
{
%>
留言更新失败,两秒后跳转到新闻列表页!
如果没有跳转,请点<a href="list_notes.jsp">这里</a> <%
}
%>
<%
}
else
{
//用户末登录,提示助记词登陆
response.setHeader("refresh","2;url=login.jsp");
%>
您还末登陆,请先登陆!!<br/>
两秒后自动跳转到登陆窗口<br/>
如果没有跳转,请点<a href="login.jsp">这里</a>!<%
}
%>
第四章系统运行4.1运行环境
开发语言:JSP
后台数据库:Oracle 9i
服务器:Tomcat 6.0
客户端运行平台:Windows xp(中文版)以上4.2运行效果
新闻分页页面
用户登陆界面:
用户名或密码错误:
登陆成功图:
新闻列表页图:
添加新闻页图:
添加成功页图:
删除新闻图:
根据关键字查询新闻,若查到了,则所查到的新闻以红色字体出现:
根据关键字查询新闻,若没查到,则显示没有结果:
更新新闻页:
更新成功页:
结束语
经过长时间的努力,新闻发布系统基本开发完毕。

其功能基本符合新闻发布需求,能够完成新闻发布、新闻修改和新闻显示以及新闻评论。

并提供部分系统维护功能,使用户方便进行新闻浏览和管理员对新闻进行修改、数据删除。

对于新闻同类性的问题也通过程序进行了有效的解决。

但是由于设计时间较短,所以该系统还有许多不尽如人意的地方,比如页面设计内容不是十分丰富,用户界面不够美观,出错处理不够等多方面问题。

这些都有待进一步的改善。

参考文献
[1][美] C. Thomas Wu著. 候国峰等译.An Introduction to Object-Oriented Programming with Java (中文版:面向对象程序设计导论). 北京:电子工业出版社,2002.06:196-208
[2] 《JDBC数据库程序设计》Time研究室箫仁惠陈锦辉中国铁道出版社
[3] 《Java程序设计》清华大学出版社
[4] 《轻松学用Java 2》Barry Burd著安境等译电子工业出版社
[5] 《Java程序设计》辛运帏饶一梅张钧清华大学出版社
[6] 《Java课程设计》耿祥义清华大学出版社
[7] 《Java项目开发实践》陆正武蒋武刘军石正贵中国铁道出版社
[8] 《Java How to Program》Harvey M. Deitel Paul J. Deitel Prentice Hall
[9] 《尚学堂马士兵老师项目实战教程》马士兵
[10]张卫民等.Java语言及应用.北京:清华大学出版社,19%年
[11]罗运模.SQLSeryer数据库系统基础.北京:高等教育出版社,2002年
[12]刘永坡.JSP应用开发技术.北京:人民教育出版社,2005年
[13]屈辉立,陈可明,石武信.JSP网站编程教程.北京:北京希望电子出版社,2002年
[14]屈辉立,陈可明,石武信.JSP网站编程教程.北京希望电子出版社,2002
[15]耿祥义,张跃平.JSP实用教程.清华大学出版社,2003
[16]何雄等.JSP网络程序设计.人民邮电出版社,2000
[此文档可自行编辑修改,如有侵权请告知删除,感谢您的支持,我们会努力把内容做得更好]。

相关文档
最新文档