河南理工大学
计算机科学与技术学院实训报告
2010 — 20##学年第1学期
课程名称 JSP实用教程
设计题目 留言管理系统
学生姓名 陈明垒
学 号 410920050146
专业班级 信息管理<二>班
指导教师 陈玮
20##年 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
第一章 基础知识
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系统总设计图:
2.3系统用例图:
第3章 详细设计
3.1数据表设计
数据库选用机房安装的MySQL 5.1,配置见视频(数据库配置.exe)。数据库表设计如下:
表1 用户表`admin
表2 消息表mess
3.2建立数据库表的sql语句
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() {
}
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", 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", 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"));
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", 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", 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", messlist);
} else if (flag) {
tourl = "login.jsp";
error = "对不起,该用户已经登录!";
} else {
tourl = "login.jsp";
error = "对不起,请检查你的用户名与密码!";
}
session.setAttribute("admin", admin);
request.setAttribute("error", error);
} else {
listAdmin = adminbiz.search(0, 0);
tourl = "";
session.setAttribute("listAdmin", listAdmin);
}
request.getRequestDispatcher(tourl).forward(request, response);
}
public void init() throws ServletException {
}
}
3.4注册功能
注册面板设计如图3所示:
图3 注册面板
实现:可实现用户的注册,然后留言,可以查看留言本首页以及留言内容。
3.5留言页面
留言界面,如图4所
图4 留言界面
实现:可以编辑留言内容,并且选择心情图像和头像,辅助表达自己的情感。
如图:
3.6 修改留言功能
3.7查看留言
部分实现代码如下:
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 {
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", list);
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", messlist);
}
} else if ("update".equals(path)) {
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", messlist);
tourl = "main.jsp";
} else if ("toupdate".equals(path)) {
list = mbiz.select(1, id);
Mess mess = (Mess) list.get(0);
request.setAttribute("mess", mess);
tourl = "edit.jsp";
} else if ("toreply".equals(path)) {
list = mbiz.select(1, id);
Mess mess = (Mess) list.get(0);
request.setAttribute("mess", 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", messlist);
tourl = "main.jsp";
}else {
list = mbiz.select(0, id);
session.setAttribute("list", list);
tourl = "";
}
request.getRequestDispatcher(tourl).forward(request, response);
}
public void init() throws ServletException {
}
总 结
本项目我试图用JSP+servlet开发一个留言板系统,并运行成功。能够有效地运用MVC开发模式去进行编程开发,并且掌握了MVC模式的核心思想,即:“视图”,“模型”以及“控制器”。Struts以及其他流行的WEB框架,我学的不太好,所以这次项目并未采用。我会继续学习框架的运用,争取下次开发运用到。并且只用了JDBC来连接数据库,并未采用更高技术层次的框架技术。
谢谢老师的教授。
[1]