1、甘肃政法学院本科生实验报告(三)姓名:学院:信息工程学院专业:计算机科学与技术 班级:实验课程名称:JavaEE实验日期: 2014 年 11 月 日指导教师及职称:实验成绩:开课时间: 2014 学年第一 学期甘肃政法学院实验管理中心印制实验题目 MVC 模式的会员管理系统 小组合作 否姓名 班级 学 号一、实验目的1.掌握一般 Web 应用中常用基本模块的开发方法和流程。2.掌握 MVC(JSP+JavaBean+Servlet)开发模式在实际 Web 应用开发中的用法。二实验环境计算机,MyEclipse,Tomcat6.0三、实验内容与步骤1.系统模块构成(1)会员注册:新会员填写表单
2、,包括会员名、Email 地址等信息。如果输入的会员名已经被其他用户注册使用,系统提示新用户更改自己的会员名。会员登录:输入会员名、密码。如果用户输入的会员名或密码有错误,系统将显示错误信息。(2)上传照片:如果登录成功,用户可以使用该模块上传自己的照片。浏览会员:成功登录的会员可以分页浏览其他会员的信息,比如其他会员的简历、照片等。如果用户直接进入该页面或没有成功登录就进入该页面,将被链接到“会员登录”页面。(3)修改密码:成功登录的会员可以在该页面修改自己的登录密码,如果用户直接进入该页面或没有成功登录就进入该页面,将被链接到“会员登录”页面。改注册信息:成功登录的会员可以在该页面修改自己
3、的注册信息,比如联系电话、通信地址等,如果用户直接进入该页面或没有成功登录就进入该页面,将被链接到“会员登录”页面。(4)退出登录:成功登录的用户可以使用该模块退出登录。2.数据库设计使用或 ACCESS 建立一个数据库 MakeFriend,该库有一个表:member 表。会员的注册信息存入 member 表中,member 表的主键是 logname,各个字段值的说明如下:logname :存储会员登录名字password :存储会员登录密码phone :存储会员会员的电话email :存储会员的 email 地址message :存储会员的简历pic :存储会员照片文件的名字3.页面管理
4、所有的页面将包括一个导航条,该导航条由注册、登录、上传照片、浏览会员、修改密码、修改个人信息组成。为了便于维护,其它页面通过使用 JSP 的标记将导航条文件:head.txt 嵌入自己的页面,head.txt 保存在mkfriend 的 WebRoot 下面。head.txt 的内容如下:网络交友会员注册会员登录上传照片浏览会员修改注册信息修改密码退出登录返回主页主页 index.jsp 由导航条、一个欢迎语和一幅图片 welcome.jpg 组成,welcome.jpg 保存在 mkfriend 中。用户可以通过在浏览器的地址栏中键入“http:/服务器 IP:8080/index.jsp”
5、或“http:/服务器 IP:8080/”访问该主页,主页运行效果下图:index.jsp欢迎您来这里结交朋友2JavaBean 与 servlet 管理本系统的 JavaBean 类的包名均为 mybean.data;Servlet 类的包名均为myservlet.control。3配置文件web.xmlregistermyservlet.control.HandleRegisterregister/helpRegisterloginmyservlet.control.HandleLoginlogin/helpLoginuploadmyservlet.control.HandleUpload
6、upload/helpUploadlookRecordmyservlet.control.HandleDatabaselookRecord/helpShowMembermodifyPasswordmyservlet.control.HandlePasswordmodifyPassword/helpModifyPasswordmodifyOldMessmyservlet.control.HandleModifyMessmodifyOldMess/helpModifyMessexitmyservlet.control.HandleExitexit/helpExitLogin4.会员注册当新会员注册
7、时,该模块要求用户必须输入会员名、密码信息,否则不允许注册。用户的注册信息被存入数据库的 member 表中。该模块的模型 Javabean 描述用户的注册信息;该模块视图部分由两个 JSP 页面构成,一个 JSP 页面负责提交用户的注册信息到控制器,另一个 JSP 页面负责显示注册是否成功的信息;该模块的控制器 servlet 负责将视图提交的信息写入数据库的 member 表中,并负责更新视图。5.会员登录用户可在该模块输入自己的会员名和密码,系统将对会员名和密码进行验证,如果输入用户名或密码有错误,将提示用户输入的用户名或密码不正确。该模块的模型 Javabean 描述用户登录的信息;该
8、模块视图部分由两个 JSP 页面构成,一个 JSP 页面负责提交用户的登录信息到控制器,另一个 JSP 页面负责显示登录是否成功的信息;该模块的控制器 servlet 负责验证会员名和密码是否正确,并负责更新视图。6.上传照片用户可在该模块上传自己的照片。如果 member 中已经存有一幅照片,新上传的照片将替换原有的照片。用户在注册时,注册模块给会员的照片是默认的一幅图像:public.jpg。该模块的模型 Javabean 描述用户上传的照片图像文件的有关信息;该模块视图部分由两个 JSP 页面构成,一个 JSP 页面负责提交图像文件到控制器,另一个JSP 页面负责显示上传操作是否成功的信
9、息;该模块的控制器负责将图像文件上传到服务器、将图像文件的名字写入数据库的 member 表中,必要时还需删除用户曾上传的图像文件;该 servlet 还负责更新视图,使用户能看到上传操作的结果。另外,控制器能阻止未登录用户上传照片。7.浏览会员信息该模块负责分页显示注册会员的信息,包括会员名、广告标题广告照片等,同时提供查找功能,即用户可以查找某个会员的信息。该模块的模型 Javabean 分别描述会员信息和分页信息;该模块视图部分由三个JSP 页面构成,一个 JSP 页面负责提交用户浏览会员信息的方式:分页浏览全部会员信息、浏览特定会员信息,另外两个 JSP 页面分别负责分页显示全体会员信
10、息和显示特定会员信息息;该模块的控制器 servlet 使用 doPost 方法查询数据库 member 表中的全部记录,并对记录进行分页处理,使用 doGet 方法查询数据库 member 表中特定的记录。另外,控制器能阻止未登录用户浏览和查询会员信息。8.修改密码登录的用户可在该模块修改密码。该模块的模型 Javabean 描述密码的有关信息。该模块视图部分由两个 JSP 页面构成,一个 JSP 页面负责提交用户的新旧密码到控制器,另一个 JSP 页面负责显示修改是否成功的信息。该模块的控制器servlet 负责修改密码。9.修改注册信息用户可在该模块修改曾注册的个人信息。该模块的模型 J
11、avabean 描述用户修改的信息;该模块视图部分由两个 JSP 页面构成,第一个页面负责提交用户的修改信息到控制器,第二个 JSP 页面负责显示修改是否成功的信息。该模块的控制器负责修改曾注册的信息,并能阻止未登录用户使用该模块。10.退出登录该模块只有一个名字为 exit 的 servlet 控制器,exit 负责销毁用户的 session对象,导致登录失效。四、实验过程与分析实验结果:1. index.jsp2.会员注册(1)视图(JSP 页面)本模块视图由两个 JSP 页面:Register.jsp 和showRegisterMess.jsp。Register.jsp 页面负责提供输入
12、注册信息界面;showRegisterMess.jsp 负责显示注册反馈信息,比如注册是否成功等。(2)控制器(servlet)控制器 servlet 对象的名字是 register(见 web.xml 配置文件) 。控制器register 负责连接数据库,将用户提交的信息写入到 member 表,并将用户转发到 showRegisterMess.jsp 页面查看注册反馈信息。3.会员登录(1)视图(JSP 页面)本模块视图由两个 JSP 页面:login.jsp 和 showLoginMess.jsp。login.jsp 页面负责提供输入登录信息界面;showLoginMess.jsp 负责
13、显示登录反馈信息,比如登录是否成功等。(2)控制器(servlet)该 servlet 对象的名字是 login(见 web.xml 配置文件) 。控制器 login 负责连接数据库,查询 member 表,验证用户输入的会员名和密码是否在 member 表中,并将用户转发到 showRegisterMess.jsp 页面查看登录反馈信息。4.上传照片(1)视图(JSP 页面)本模块视图由两个 JSP 页面:upload.jsp 和 showUploadMess.jsp。upload.jsp页面负责提供上传文件的表单;showUploadMess.jsp 负责显示上传文件的反馈信息。(2)控制
14、器(servlet)该 servlet 对象的名字是 upload(见 web.xml 配置文件) 。upload 控制器负责检查用户是否是登录用户,如果用户没有登录,upload 控制器将把用户定向到登录页面 login.jsp;对于登录的用户,upload 控制器负责把用户提交的图像文件保存到当前 Web 服务目录的特定子目录 image 中。保存的图像文件名字是在用户上传的文件名字前面添加上用户的会员名。upload 控制器同时负责将保存的图像文件名存入 member 表,然后将用户转发到 showUploadMess.jsp 页面查看上传操作的反馈信息。5.浏览会员信息(1)视图(JS
15、P 页面)本模块视图由三个 JSP 页面:choiceLookType.jsp、showAllMember.jsp 和showLookedMember.jsp。choiceLookType.jsp 负责将浏览会员的方式提交给控制器,showAllMember.jsp 负责分页显示全体会员的信息,showLookedMember.jsp 负责显示被查找的会员的信息。(2)控制器(servlet)该模块控制器的名字是 lookRecord(见 web.xml 配置文件) 。lookRecord 使用doPost 方法查询数据库 member 表中的全部记录,并对记录进行分页处理,使用 doGet
16、方法查询数据库 member 表中特定的记录。另外,控制器 lookRecord能阻止未登录用户浏览和查询会员信息。6.修改密码(1)视图(JSP 页面)本模块视图由两个 JSP 页面:modifyPassword.jsp 和showNewPasswor.jsp。modifyPassword.jsp 页面负责提供输入密码界面;showNewPasswor.jsp 负责显示修改密码的反馈信息。(2)控制器(servlet)控制器负责连接数据库,根据当前用户注册的会员名修改 member 表中该会员的password 字段的值,并转发修改信息到 showModifyMess.jsp 页面。另外,控
17、制器能阻止未登录用户浏览进行修改密码操作。7.修改注册信息(1)视图(JSP 页面)本模块视图由两个 JSP 页面:inputModifyMess.jsp 和showModifyMess.jsp。inputModifyMess.jsp 页面负责提供修改信息界面,showModifyMess.jsp 负责显示修改反馈信息。 (2)控制器(servlet)该 servlet 对象的名字是:modifyOldMess(见 web.xml 配置文件) 。modifyOldMess 负责连接数据库,将用户提交的新的信息写入到 member 表,并将用户转发到 showModifyMess.jsp 页面查
18、看修改反馈信息。8.退出登录控制器(servlet)HandleExit.javapackage myservlet.control;import mybean.data.*;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HandleExit extends HttpServlet public void init(ServletConfig config) throws ServletException super.init(config);public void doPost
19、(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException HttpSession session=request.getSession(true); Login login=(Login)session.getAttribute(“login“); boolean ok=true; if(login=null) ok=false; response.sendRedirect(“login.jsp“); if(ok=true) continueDoPost(reque
20、st,response);public void continueDoPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException HttpSession session=request.getSession(true); session.invalidate(); /销毁用户的 session 对象response.sendRedirect(“index.jsp“); /返回主页 public void doGet(HttpServletRequest req
21、uest,HttpServletResponse response) throws ServletException,IOExceptiondoPost(request,response);五、实验总结1.MVC 是软件开发过程中比较流行的设计思想。在了解 MVC 之前,首先要明确一点,MVC 是一种设计模式(设计思想) ,不是一种变成技术。2.在 Web 开发中,MVC 思想的核心概念如下:M(model) ,封装应用程序的数据结构和事务逻辑,集中体现应用程序的状态,当数据状态改变的时候,能够在试图里面体现出来。Javabean 非常适合这个角色。V(view) ,是 model 的外在表现
22、,模型状态改变时,有所体现。JSP非常适合这个角色。C(controller) ,对用户的输入进行相应,将模型和视图联系到一起,负责将数据写到模型中,并调用视图。Servlet 非常适合这个角色。3.MVC 的思想步骤如下:(1)用户在表单中输入,表单提交给 servlet,servlet 验证输入,然后实例化 JavaBean。(2)JavaBean 查询数据库,查询结果暂存在 JavaBean 中。(3)servlet 跳转到 JSP,JSP 使用 JavaBean,得到它里面的查询结果,并显示出来。MVC 模式非常重要,是以后学习 struts 等框架的基础。4.在软件的开发中,有一个原则一直被参照着,那就是解耦。它的目的是使各个模块之间的独立性越来越强,一个模块的变换不会对另一模块产生很大的影响。MVC 模式很好地做到了解耦。它使代码和页面分离,数据库操作与 servlet 操作分开,这样能够方便开发和以后的维护。