河南理工大学
计算机科学与技术学院实训报告
2010 — 2011学年第1学期
课程名称 JSP实用教程
设计题目 留言管理系统 学生姓名 陈明垒 学 号 410920050146 专业班级 信息管理<二>班 指导教师 陈玮
2011年 1月1日1
1
目 录
第一章 基础知识 ............................................................................................................................. 1
1.1 项目说明:........................................................................................................................ 1 1.2 本项目开发环境 ................................................................................................................ 1 1.3 MVC开发模式 .................................................................................................................. 1 第2章 总体设计 ............................................................................................................................. 1
2.1需求分析:......................................................................................................................... 1 2.2系统总设计图: ................................................................................................................. 1 2.3系统用例图: ..................................................................................................................... 2 第3章 详细设计 ............................................................................................................................. 3
3.1数据表设计 ......................................................................................................................... 3 3.2建立数据库表的sql语句 .................................................................................................. 3 3.3登录功能 ............................................................................................................................. 5
部分实现代码如下: ....................................................................................................... 5 3.4注册功能 ............................................................................................................................. 8
注册面板设计如图3所示: ........................................................................................... 8 3.5留言页面 ............................................................................................................................. 8 3.6 修改留言功能 .................................................................................................................... 9 3.7查看留言............................................................................................................................. 9
部分实现代码如下: ..................................................................................................... 10
总 结 ............................................................................................................................................ 13
I
第1章 基础知识
第一章 基础知识
1.1 项目说明:
本项目主要是根据网上常见的交互式模块留言板为蓝本制作而成。
1.2 本项目开发环境
操作系统: Windows 2007 JDK环境: JDK1.6.0
IDE工具: MyEclipse6.0GA
数据库: Mysql 5.0.41 字符集设置:utf-8 Web容器: Tomcat 6.0.14
测试通过的浏览器: IE6.0,IE7.0、FireFox2.0。
1.3 MVC开发模式
Jsp+servlet实现的留言板开发系统,采用MVC模式,多个javabean对象,用于存储数据。视图由多个JSP页面组成,由多个servlet构成控制器,读取数据库或文件。 第2章 总体设计
2.1需求分析:
2.2系统总设计图:
1
第1章 基础知识
2.3系统用例图:
2
第2章 功能实现
第3章 详细设计
3.1数据表设计
数据库选用机房安装的MySQL 5.1,配置见视频(数据库配置.exe)。数据库表设计如下:
表1 用户表`admin 列名 id `webtitle` `adminhttp 数据类型 int varchar(50) varchar(50) 否 否 否 否 否 是 是 允许空 主键,自增, 站点名称 站点地址 站长姓名 密码 站内公告 表2 消息表mess 说明 `adminname varchar(50) `adminpass` varchar(50) `adminmail webadvice varchar(2) varchar(50) 列名 id `headimg` name title` content qq Email mood http sex pubtime repcontext reptime ip 数据类型 int int(5) varchar(50) varchar(100) varchar(11) varchar(50) int(11) varchar(50) int(11) varchar(50) varchar(50) varchar(50) 否 否 否 否 否 是 是 否 是 否 否 是 否 否 允许空 主键,自增 头像 用户名 留言题目 留言内容 qq Email 心情图像 主页 性别 发布留言时间 回复内容 回复时间 Ip地址 说明 3.2建立数据库表的sql语句
#创建数据库 create database if not exists `gbooks`; #切换数据库
3
第2章 功能实现
use gbook;; #创建admin表 DROP TABLE IF EXISTS `admin`; CREATE TABLE `admin` ( `id` int(11) NOT NULL auto_increment, `webtitle` varchar(50) default NULL, `adminhttp` varchar(50) default NULL, `adminname` varchar(50) default NULL, `adminpass` varchar(50) default NULL, `adminmail` varchar(50) default NULL, `webadvice` varchar(50) default NULL, `adminqq` varchar(50) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk; insert into `admin`(`id`,`webtitle`,`adminhttp`,`adminname`,`adminpass`,`adminmail`,`webadvice`,`adminqq`) values (1,'123','http://163.net','1','1','xmh@tom.com','welcome','876'); #创建messs表 DROP TABLE IF EXISTS `mess`; CREATE TABLE `mess` ( `id` int(11) NOT NULL auto_increment, `headimg` int(5) default NULL, `name` varchar(50) default NULL, `title` varchar(100) character set gb2312 default NULL, `content` mediumtext, `qq` varchar(11) default NULL, `email` varchar(50) default NULL, `http` varchar(50) default NULL, `mood` int(11) default NULL, `sex` int(11) default NULL, `pubtime` varchar(50) default NULL, `repcontext` mediumtext, `reptime` varchar(50) default NULL, `ip` varchar(50) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
4
第2章 功能实现
3.3登录功能
登录窗口如图1所示:
图1 登录窗口
实现:站长登录网站,实现对网站的维护,对留言的回复,编辑,删除等。 部分实现代码如下: package cml.servlet;
import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;
import cml.beans.Admin; import cml.beans.UserList; import cml.biz.AdminBiz; import cml.biz.MessBiz; import cml.utils.ConvertUtil;
public class AdminServlet extends HttpServlet { public void destroy() { }
5
第2章 功能实现
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\"text/html;charset=gb18030\"); PrintWriter out = response.getWriter(); String path = request.getParameter(\"path\"); AdminBiz adminbiz = new AdminBiz(); ConvertUtil cutils = new ConvertUtil(); HttpSession session = request.getSession(); List listAdmin = new ArrayList(); UserList userList = UserList.getInstance(); String tourl = \"\"; String error = \"\"; if (\"add\".equals(path)) { Admin admin = new Admin(); admin.setAdminhttp(request.getParameter(\"adminhttp\")); admin.setAdminmail(request.getParameter(\"adminmail\")); admin.setAdminname(request.getParameter(\"adminname\")); admin.setAdminpass(request.getParameter(\"adminpass\")); admin.setAdminqq(request.getParameter(\"adminqq\")); admin.setWebadvice(request.getParameter(\"webadvice\")); admin.setWebtitle(request.getParameter(\"webtitle\")); boolean flag = adminbiz.add(admin); listAdmin = adminbiz.search(0, 0); tourl = \"\"; session.setAttribute(\"listAdmin\ } else if (\"dele\".equals(path)) { int tmpid = cutils.strToInt(request.getParameter(\"id\")); boolean flag = adminbiz.delete(tmpid); listAdmin = adminbiz.search(0, 0); tourl = \"\"; session.setAttribute(\"listAdmin\ } else if (\"update\".equals(path)) { Admin admin = new Admin(); int tmpid = cutils.strToInt(request.getParameter(\"id\")); admin.setAdminhttp(request.getParameter(\"adminhttp\")); admin.setAdminmail(request.getParameter(\"adminmail\")); admin.setAdminname(request.getParameter(\"adminname\")); admin.setAdminpass(request.getParameter(\"adminpass\"));
6
第2章 功能实现
}
admin.setAdminqq(request.getParameter(\"adminqq\")); admin.setWebadvice(request.getParameter(\"webadvice\")); admin.setWebtitle(request.getParameter(\"webtitle\")); admin.setId(tmpid);
boolean flag = adminbiz.update(admin);
listAdmin = adminbiz.search(0, 0); tourl = \"\"; session.setAttribute(\"listAdmin\} else if (\"toupdate\".equals(path)) { int tmpid = cutils.strToInt(request.getParameter(\"id\")); Admin admin = (Admin) adminbiz.search(1, tmpid).get(0); tourl = \"\"; session.setAttribute(\"admin\} else if (\"login\".equals(path)) { String name = request.getParameter(\"name\"); String pass = request.getParameter(\"pass\"); Admin admin = adminbiz.search(name, pass); boolean flag = userList.isExist(admin); if (admin != null && !flag) { tourl = \"mana.jsp\"; MessBiz messbiz = new MessBiz(); List messlist = new ArrayList(); messlist = messbiz.select(0, 0); request.setAttribute(\"manamlist\ } else if (flag) { tourl = \"login.jsp\"; error = \"对不起,该用户已经登录!\"; } else { tourl = \"login.jsp\"; error = \"对不起,请检查你的用户名与密码!\"; } session.setAttribute(\"admin\ request.setAttribute(\"error\} else { listAdmin = adminbiz.search(0, 0); tourl = \"\"; session.setAttribute(\"listAdmin\}
request.getRequestDispatcher(tourl).forward(request, response);
public void init() throws ServletException { }
7
第2章 功能实现
}
3.4注册功能
注册面板设计如图3所示:
图3 注册面板
实现:可实现用户的注册,然后留言,可以查看留言本首页以及留言内容。
3.5留言页面
留言界面,如图4所
图4 留言界面
实现:可以编辑留言内容,并且选择心情图像和头像,辅助表达自己的情感。 如图:
8
第2章 功能实现
3.6 修改留言功能
3.7查看留言
9
第2章 功能实现
部分实现代码如下:
package cml.servlet;
import java.io.IOException; import java.util.ArrayList; import java.util.List;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;
import cml.beans.Mess; import cml.biz.MessBiz; import cml.utils.ConvertUtil;
public class MessServlet extends HttpServlet { public void destroy() { } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
10
第2章 功能实现
}
doPost(request, response);
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String path = request.getParameter(\"path\"); MessBiz mbiz = new MessBiz(); Mess mess1 = new Mess(); List list = new ArrayList(); ConvertUtil cutils = new ConvertUtil(); HttpSession session = request.getSession(); int id = cutils.strToInt(request.getParameter(\"id\")); String tourl = \"\"; if (\"add\".equals(path)) { Mess mess = new Mess(); mess.setContent(request.getParameter(\"content\")); mess.setEmail(request.getParameter(\"email\")); mess.setHeadimg(cutils.strToInt(request.getParameter(\"headimg\"))); mess.setHttp(request.getParameter(\"http\")); mess.setIp(request.getRemoteAddr()); mess.setMood(cutils.strToInt(request.getParameter(\"mood\"))); mess.setName(request.getParameter(\"name\")); mess.setPubtime(cutils.getTime()); mess.setAqq(request.getParameter(\"qq\")); mess.setRepcontext(request.getParameter(\"\")); mess.setReptime(\"2008/1/1 00:00:00\"); mess.setSex(cutils.strToInt(request.getParameter(\"sex\"))); mess.setTitle(request.getParameter(\"title\")); boolean flag = mbiz.add(mess); list = mbiz.select(0, 0); session.setAttribute(\"messlist\ tourl = \"main.jsp\";
} else if (\"delete\".equals(path)) { boolean flag = mbiz.delete(id); if (flag) { tourl = \"mana.jsp\"; MessBiz messbiz = new MessBiz(); List messlist = new ArrayList(); messlist = messbiz.select(0, 0); request.setAttribute(\"manamlist\ }
} else if (\"update\".equals(path)) {
11
第2章 功能实现
}
String content= request.getParameter(\"content\"); Mess mess =new Mess(); mess.setId(id); mess.setContent(content); boolean flag = mbiz.update(mess,\"u\"); //跳到首页面 List messlist = new ArrayList(); messlist = mbiz.select(0, 0); request.setAttribute(\"messlist\ tourl = \"main.jsp\";
} else if (\"toupdate\".equals(path)) { list = mbiz.select(1, id); Mess mess = (Mess) list.get(0); request.setAttribute(\"mess\ tourl = \"edit.jsp\";
} else if (\"toreply\".equals(path)) { list = mbiz.select(1, id); Mess mess = (Mess) list.get(0); request.setAttribute(\"mess\ tourl = \"reply.jsp\";
} else if (\"reply\".equals(path)) { String repcontext= request.getParameter(\"repcontext\"); Mess mess =new Mess(); mess.setId(id); mess.setRepcontext(repcontext); boolean flag = mbiz.update(mess,\"r\"); //跳到首页面 List messlist = new ArrayList(); messlist = mbiz.select(0, 0); request.setAttribute(\"messlist\ tourl = \"main.jsp\"; }else { list = mbiz.select(0, id); session.setAttribute(\"list\ tourl = \"\"; }
request.getRequestDispatcher(tourl).forward(request, response);
public void init() throws ServletException { }
12
总 结
总 结
本项目我试图用JSP+servlet开发一个留言板系统,并运行成功。能够有效地运用MVC开发模式去进行编程开发,并且掌握了MVC模式的核心思想,即:“视图”,“模型”以及“控制器”。Struts以及其他流行的WEB框架,我学的不太好,所以这次项目并未采用。我会继续学习框架的运用,争取下次开发运用到。并且只用了JDBC来连接数据库,并未采用更高技术层次的框架技术。
谢谢老师的教授。
13
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- xiaozhentang.com 版权所有 湘ICP备2023022495号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务