您的当前位置:首页正文

JSP+JDBC班级留言板

2022-04-22 来源:易榕旅网


课程设计论文

课题名称: 基于jsp的班级留言管理程序 学生姓名:解芸聪 班 级:08计软

指导教师:

二○壹一年 三月三日

题目:JSP + JDBC的班级留言管理程序

[摘 要]

用户登陆之后,可以发表、修改、浏览全部、查询、删除留言。

[关键词]

JSP的基础语法 request对象 response对象 session对象 JDBC操作 HTML表单

目 录

第1章Java Web 应用开发简介 ............................................................ 4 1.1 什么是Web编程 ............................................................................. 4 1.2 JSP简介 .......................................................................................... 4 1.3 JSP的优点 .................................................................................... 4 1.3.1 跨平 台运行 ......................................................................... 4 1.3.2 执行效率高 ........................................................................... 5 1.3.3 服务器端组件支持 ................................................................. 5 1.3.4 数据库支持 ............................................................................. 5 第2章 班级留言板的分析 ......................................................................... 8 第3章 班级留言板的数据库设计

3.1 用户信息表(person) ........................................................... 9 3.2 留言表(note) ....................................................................... 9 第4章 网络留言板的基本框架 ............................................................... 10 第5章 网络留言板系统各功能模块的设计和实现

5.1 公共模块 .................................................................................. 10 5.1.1 “gcl_include.jsp”文件 ...................................................... 10

5.2 用户登陆界面 .......................................................................... 11 5.3 欢迎界面 .................................................................................. 12 5.4 留言板管理页面 ...................................................................... 13 5.5 添加留言页面 .......................................................................... 15 5.6 查询留言 .................................................................................. 17 5.7 修改留言页面 .......................................................................... 18 5.8 删除留言 .................................................................................. 21 总结与体会 ................................................................................................. 23 附录 1 插图清单 ..................................................................................... 24 附录 2 查表清单 ................................................................................................................. 24 第1章Java Web 应用开发简介

WWW是目前Internet上的主要服务类型之一,WWW的基础是基于HTML的页面,使用在HTML基础上的脚本语言进行应用程序开发,可以创建动态生成内容的Web页面。JSP是一种在服务器端编译执行的Web设计语言,其脚本语言采用Java,并继承了Java的所有优点。 1.1 什么是Web编程

Web编程简单地说是基于WWW的Internet上的应用程序开发,随着Internet的普及与传播,越来越多的人通过WWW走进网络世界的大门。CGI(Common Gateway Interface)应用程序的第一次引入了动态交互的概念,这些运行于服务器端的脚本程序通常用Perl语言或C语言写成,需要编译才能运行。

随着Web应用程序技术的发展,CGI所引入的动态内容概念被很多新技术所实现和发展,基于程序运行的地点大致可以分为两大类:一类是随着HTML页面下载并运行于客户端的程序脚本,例如ActiveX控件,DHTML,Java Applet和JavaScript;另一类程序是基于服务器端的技术,例如Active Server Page(ASP),PHP, Java Server Page(JSP),Java Servlet等。 1.2 JSP简介

JSP[1]是Java Server Page技术的缩写,是由Java语言的创造者Sun公司提出、多家公司参与制定的动态网页技术标准。通过在传统的

2

(*.html,*.htm)中加入Java代码和JSP标记,构成后缀为*.jsp的JSP网页文件。

Web服务器在遇到访问JSP页面的请求时,首先执行其中的代码片断,然后将执行的结果以普通HTML方式返回客户浏览器,JSP页面中的程序代码在客户端是看不到的。这些内嵌的Java程序代码可以完成数据库的操作、文件上传、网页重定向、发送电子邮件的等功能,所有的操作均在服务器端进行,客户端得到的仅仅是运行的结果,因而对客户浏览器的要求很低。

JSP有Java Servlet技术为基础,利用可跨平台运行的Java Beans组件,可以方便的操作数据库,执行各种复杂的查询,使逻辑处理和显示互相分离。

1.3 JSP的优点 1.3.1 跨平台运行

JSP的最大优势在于平台可移植性,利用Java语言的平台无关性,任何JSP程序只要编译一次,就可以在任何服务器平台使用。 1.3.2 执行效率高

JSP在服务器端被Java 虚拟机编译成Servlet执行,编译的过程只在第一次执行时进行,以后Servlet对于每个客户端请求都使用内存中的同一副本处理,而不像CGI那样需要为每个请求创建单独的进程,而只要在Java虚拟机中装载一个Servlet ,因而节省了大量的服务器资源,执行时性能优化,代码效率高。 1.3.3 服务器端组件支持

服务器端编程语言往往由于缺少强大的服务器组件支持而受到限制,JSP使用成熟的Java Beans技术,可以轻松得到各种服务器组件的支持。 1.3.4 数据库支持

JSP技术利用Java语言的数据库操纵能力可以与任何JDBC兼容数

3

据库建立连接,执行常用的查询、添加、更新、删除操作和复杂的逻辑代数。利用Sun公司开发的JDBC-ODBC 桥,JSP还可以访问现有的ODBC(Open DataBase Connection)[2]驱动的数据库系统。目前市场上的主流数据库产品都带有ODBC支持,所以JSP可以访问Oracle、Microsoft SQL Server和My SQL等数据库产品。 第2章 班级网络留言板的分析

网络留言板,即班级留言管理程序,是一个可以在用户登陆以后,进行查询、发表、修改、浏览全部、删除留言等功能。

用户使用ID及PASSWORD登录网上留言版,随后进入欢迎界面,然后留言管理页面,根据用户需要,看是否要查找、添加、修改或删除留言。

根据以上分析,网络留言板应该具有如下功能: 2.1 用户登陆

用户在进入留言板前,必须验证身份。即只有已注册的用户才能进行留言管理。 2.2 添加留言

用户可以在留言板上添加留言。 2.3查询留言

查询出现所要查询字的相关留言信息。 2.4修改留言

用户登录系统后,可以修改留言信息。

4

2.5删除留言

用户登录系统后,删除数据库留言。

第3章 网络留言板的数据库设计

根据以上的分析,设计出下面的数据库表。 3.1 用户信息表(person)

用户信息表实,主要用来记录用户的详细信息。

用户信息表如表3-1所示

列名 Id Name password 表3-1用户信息表 数据类型 是否为空 说明 varchar(20) 否 id,主键 varchar(20) 否 用户姓名 Varchar(20) 否 密码 3.2留言表(note)

留言表,主要用于记录用户留言信息。

留言表表详细信息如表3-2所示:

表3-2留言表 列名 数据类型 是否为空 说明 Id varchar(20) 否 留言序号,主键,自动增长 Title varchar(20) 否 主题 author varchar(20) 否 留言者 content varchar(200) 否 内容

5

第4章 网络留言板的基本框架

网络留言程序目录部署如图4-1所示:

第5章 网络留言板系统各功能模块的设计和实现

5.1 公共模块

5.1.1 “gcl_include.jsp”文件

“gcl _include.jsp”文件包含其它JSP文件中需要的登陆验证。 “gcl_include.jsp”文件的程序清单如下:

<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"UTF-8\"%> <%

if(session.getAttribute(\"name\") == null){

request.setAttribute(\"error\您没有登录,请您先登录!!\");

request.getRequestDispatcher(\"/gcl_login.jsp\").forwar

6

d(request,response); } %>

5.2 用户登陆界面

用户登陆页面程序“gcl_login.jsp” 代码如下:

<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"utf-8\"%> <%

String path = request.getContextPath(); String basePath =

request.getScheme()+\"://\"+request.getServerName()+\":\"+request.getServerPort()+path+\"/\"; %>

\">

My JSP 'gcl_login.jsp' starting page

content=\"keyword1,keyword2,keyword3\">

08计软留言板

用户登录页面

<%

if(request.getAttribute(\"error\") != null){ %>

color=\"red\" ><%=request.getAttribute(\"error\") %>

<% } %>

用户名:
密   码:

上述程序主要是定义一个表单以及相关的输入框,用于输入用户信息。填写完毕单击“登陆”按钮,程序会检验用户名和密码是否能在数据库查找到。

5.3 欢迎界面

5.4 留言板管理页面

言办管理页面程序“gcl_list_notes.jsp”如下:

<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"utf-8\"%>

<%@ page import=\"java.sql.Connection\" %> <%@ page import=\"java.sql.DriverManager\" %>

<%@ page import=\"java.sql.PreparedStatement\" %> <%@ page import=\"java.sql.ResultSet\" %> <%

String path = request.getContextPath(); String basePath =

request.getScheme()+\"://\"+request.getServerName()+\":\"+request.getServerPort()+path+\"/\"; %>

\">

9

My JSP 'gcl_list_notes.jsp' starting page

content=\"keyword1,keyword2,keyword3\">

08网络班级留言板

留言管理列表

请您输入查询内容:  

10

<%!

String DBDRIVER = \"com.mysql.jdbc.Driver\"; String DBURL =

\"jdbc:mysql://localhost:3306/guestbook\"; String DBUSER = \"root\"; String DBPASSWORD = \"jsj\"; Connection conn = null;

PreparedStatement pstmt = null; ResultSet rs = null; String sql = null; int result = 0; %> <%

request.setCharacterEncoding(\"utf-8\"); String keyword = request.getParameter(\"keyword\"); try{

Class.forName(DBDRIVER);

conn =

DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD); 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 ?\"; }

pstmt = conn.prepareStatement(sql); if(keyword != null){

pstmt.setString(1,\"%\" + keyword + \"%\"); pstmt.setString(2,\"%\" + keyword + \"%\"); pstmt.setString(3,\"%\" + keyword + \"%\"); }

rs = pstmt.executeQuery(); while(rs.next()){ result++;

int id = rs.getInt(1);

String title = rs.getString(2); String author = rs.getString(3);

11

String content = rs.getString(4);

title = title.replaceAll(keyword,\"\" + keyword +\"\");

author = author.replaceAll(keyword,\"\" + keyword +\"\"); content =

content.replaceAll(keyword,\"\" + keyword +\"\"); %>

<% }

if(result == 0){ %>

<% }

rs.close(); pstmt.close(); conn.close(); }catch(Exception e){ e.printStackTrace(); } %>

留言编号标题 作者 内容 操作
<%=id %> <%=title %> <%=author %> <%=content %> \">修改|\"

onclick=\"javascript:return p_del()\" >删除

这个班级的同学太懒,一条留言都没有,这样很不好!

添加新留言

 

12

5.5 添加留言页面

添加留言程序“gcl_insert.jsp”如下:

<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"UTF-8\"%> <%

String path = request.getContextPath(); String basePath =

request.getScheme()+\"://\"+request.getServerName()+\":\"+request.getServerPort()+path+\"/\"; %>

\"> My JSP 'gcl_insert.jsp' starting page

content=\"keyword1,keyword2,keyword3\">

08网络班级留言板

添加新留言

标题:
作者:
内容:

14

回复留言管理列表

 

上述程序主要是给用户用来添加留言的。

5.6 查询留言页面

查询留言代码在留言板管理页面程序“gcl_list_notes.jsp”中。

5.7 修改留言

如图5-6用户修改留言页面效果

修改留言页面程序“gcl_update.jsp”代码如下:

<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"UTF-8\"%>

<%@ page import=\"java.sql.Connection\" %> <%@ page import=\"java.sql.DriverManager\" %>

<%@ page import=\"java.sql.PreparedStatement\" %> <%@ page import=\"java.sql.ResultSet\" %> <%

String path = request.getContextPath(); String basePath =

request.getScheme()+\"://\"+request.getServerName()+\":\"+request.getServerPort()+path+\"/\"; %>

\">

My JSP 'gcl_update.jsp' starting page

15

content=\"keyword1,keyword2,keyword3\">

<%!

String DBDRIVER = \"com.mysql.jdbc.Driver\"; String DBURL =

\"jdbc:mysql://localhost:3306/guestbook\"; String DBUSER = \"root\"; String DBPASSWORD = \"jsj\"; Connection conn = null;

PreparedStatement pstmt = null; ResultSet rs = null; String sql = null; int result = 0;

16

%>

08网络技术班级网络留言板

修改新留言

<%

request.setCharacterEncoding(\"utf-8\"); int id =

Integer.parseInt(request.getParameter(\"id\"));

try{

Class.forName(DBDRIVER); conn =

DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD); sql = \"select id,title,author,content from note where id=\" + id;

pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery();

if(rs.next()){ id = rs.getInt(1);

String title = rs.getString(2); String author = rs.getString(3); String content = rs.getString(4); %>

\" />

标题:
作者:
内容:

回复留言管理列表

<% }

rs.close(); pstmt.close(); conn.close();

}catch(Exception e){ e.printStackTrace(); } %>

 

上述代码用于给用户修改留言。

5.8 删除留言

删除留言页面程序“gcl_delete.jsp”代码如下:

18

<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"UTF-8\"%>

<%@ page import=\"java.sql.Connection\" %> <%@ page import=\"java.sql.DriverManager\" %>

<%@ page import=\"java.sql.PreparedStatement\" %> <%

String path = request.getContextPath(); String basePath =

request.getScheme()+\"://\"+request.getServerName()+\":\"+request.getServerPort()+path+\"/\"; %>

\">

My JSP 'gcl_insert_do.jsp' starting page

content=\"keyword1,keyword2,keyword3\">

<%!

String DBDRIVER = \"com.mysql.jdbc.Driver\"; String DBURL =

\"jdbc:mysql://localhost:3306/guestbook\"; String DBUSER = \"root\"; String DBPASSWORD = \"jsj\"; Connection conn = null;

PreparedStatement pstmt = null;

String sql = null;

19

boolean flag = false; %> <%

request.setCharacterEncoding(\"utf-8\"); int id =

Integer.parseInt(request.getParameter(\"id\")); try{

Class.forName(DBDRIVER); conn =

DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD); sql = \"delete from note where id = ?\"; pstmt = conn.prepareStatement(sql); pstmt.setInt(1,id);

pstmt.executeUpdate(); pstmt.close(); conn.close(); flag = true;

}catch(Exception e){ e.printStackTrace(); } %> <%

if(flag){

response.setHeader(\"refresh\p\");

%>

您删除成功!!

两秒钟自动跳转到留言管理页面!!
如何没有跳转,请点击href=\"gcl_list_notes.jsp\">这里!!

<% }else{

response.setHeader(\"refresh\p\");

%>

您删除失败!!

两秒钟自动跳转到留言管理页面!!
如何没有跳转,请点击20

href=\"gcl_list_notes.jsp\">这里!!

<% } %>

上述代码用来给用户删除留言信息的。

总结与体会

经过半个学期的坚持不断的对Java及JSP的学习,这段时间,对这个网络留言板的基本掌握,经过测试,可以使用。 通过对课程设计的制作,原来我对JSP+JDBC由不是很熟悉到逐渐熟悉,感觉收获很大。而且,动手和不动手有很大差距。

课程设计虽然做完了,但我认为这只是一个开始,我们即将跨入社会,如果我们将来参加计算机行业的工作,我觉得这次做课程设计的经验会给我们以后的发展和进步起到很大的引导和促进作用,使我少走些弯路。

21

因篇幅问题不能全部显示,请点此查看更多更全内容