




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学计算机网络课程论文题目基于b/s模式的通讯录查询程序作者学院信息工程学院专业电子信息工程学号指导教师二一五年7月6日武汉理工大学信息工程学院课程论文诚信声明本人声明:所呈交的课程论文,是本人在指导老师的指导下,独立开展工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本课程论文不含任何其他个人或集体已经发表或创作过的作品成果。对本文工作做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。本科课程论文作者签名:二一五年 7月 6日课程论文成绩评定表质量评价指标(在相应栏目打)评 价 项 目论文与设计评价质量按对应项目打分工作量和态度(10分)分析问题能力(10分)解决问题能力(10分)内容完整层次分明(10分)设计、实验正确性(10分)书写规范(10分)流程图或拓扑图(10分)论证充分(10分)测试结果情况(10分)总体评价(10分)评定成绩(100分制)指导教师签名年 月 日题目6 基于b/s模式的通讯录查询程序1、设计要求采用b/s模式,编写程序,实现通过浏览器查询数据库里的通讯录的功能。 (1) 服务器端接收客户端的查询请求,验证客户身份,如通过身份验证,则将客户要查询的通信录记录返回客户端。(客户身份数据及通信录数据均为虚拟数据,可自行编制,客户身份至少应有客户id、客户密码(登录密码),通信录记录包括:人员编号id、姓名,单位地址、手机号码、单位电话、宅电等。所有字段的数据类型可自行设计)。(2) 客户端以网页方式接收用户输入的查询请求,向服务器发出查询并接收和显示查询结果。(3) 其他说明客户端需包括如下的按钮:l 连接。通过浏览器连接到服务器,回应:连接成功则显示登录页面;l 登录。用户登录(由服务器验证用户的身份)。回应:若用户不存在,提示“无此用户”;若用户存在,提示“密码:”,用户输入密码后,若正确提示“登录成功”,若不正确提示“密码错”。l 查询。根据用户id或姓名查询用户信息。回应:若用户号(或姓名)不存在,提示“错误的用户号(或姓名)”;若用户号(或姓名)存在,给出该记录的详细信息。l 退出。退出查询系统,断开与服务器的连接。服务器端的通讯录保存在数据库中,数据库类型不限。实现本程序需要了解网络基础知识,掌握c/s结构的工作特点,掌握数据结构、高级语言及网络编程知识,可以选择visual c+、c或java等语言实现。2、课程设计报告内容(1) 给出系统的结构;(2) 给出程序的流程图;(3) 给出服务器端的数据表结构;(4) 分别给出客户端和服务器端的程序源码;(5) 给出程序的部分运行测试结果。目录1.选题背景12.方案论证22.1 系统结构22.2 程序流程图32.3 数据表结构43.过程论述54.结果分析65.总结8参考文献9附件一:程序源代码101.登录页面login.jsp102.系统主页index.jsp113.查询结果页面clientsearchresult.jsp124.密码错误页面wrongpassword.jsp135.login.js146.user.java187.client.java198.commondao.java219.commondaoimpl.java2210.userdao2411.userdaoimpl2512.clientdao.java2513.clientdaoimpl.java2614.userservice.java2615.userserviceimpl.java2716.baseaction.java2917.homeaction.java3118.useraction.java3219.clientaction.java3320.classutil.java3421.generalfilter.java3522.mysql建表语句3723.mysql插入虚拟数据语句381. 选题背景计算机网络是电子信息工程专业的一门核心专业课程,是一门理论性强、思维抽象、难度较大的课程。在电子信息工程专业的课程体系中有着至关重要的地位,学好计算机网络对于提高理论认知水平和实践能力都有着极为重要的作用。通过本门课程的学习,我们应该能透彻地理解计算机网络的基础知识,理解数据传输的方法以及网络中的关键协议,并进一步培养良好的程序设计能力和解决实际问题的能力。java ee是sun公司推出的企业级应用程序版本。能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器端 java应用程序。java ee 是在 java se 的基础上构建的,它提供web 服务、组件模型、管理和通信 api,可以用来实现企业级的面向服务体系结构和 web 2.0应用程序。ssh在java ee项目中表示3种框架,即 spring + struts +hibernate。 struts对model,view和controller都提供了对应的组件。spring是一个轻量级的控制反转和面向切面的容器框架,是为了解决企业应用开发的复杂性而创建的,使用基本的javabean来完成以前只可能由ejb完成的事情。hibernate是一个开源的对象关系映射框架,它对jdbc进行了非常轻量级的对象封装,可以应用在任何使用jdbc的场合。mvc全名是model view controller,是模型视图控制器的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。mvc被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。2. 方案论证2.1 系统结构本系统采用mvc设计模式和spring+struts2+hibernate框架,层次清晰,各层各司其职。总体的结构图如下所示:用户通过浏览器访问tomcat服务器上的jsp页面,jsp页面将请求通过struts发送给action,action调用service执行相应的服务程序,service调用dao,dao再调用hibernate,hibernate再访问数据库,完成获取或者修改、保存相应数据的操作。spring通过依赖注入将struts和hibernate有机地结合了起来。2.2 程序流程图2.3 数据表结构user:用户表,存储用于登录的用户的信息。user字段是否主键约束描述username是主键约束,非空约束用户名passord否非空约束密码client:客户表,存储通讯录中的各条记录。client字段是否主键约束描述clientid是主键约束,非空约束客户的id号name否无姓名age否无年龄address否无地址mobile否无手机号tel否无电话号3. 过程论述首先,用户前往登录页面进行登录,才能进入本查询系统。为了防止用户不登录就进入系统,我在web.xml文件中配置了过滤器,将出了登录页面、错误页面和请求转到主页的action之外的所有页面都要进行拦截,判断session中是否有user对象,如果有,则放行,如果没有,统一跳转到登录页面。在用户登录时,页面会通过javascript脚本进行校验如果用户输入的用户名为空,则提示用户名不能为空。在用户输完用户名之后,页面会向服务器发送ajax请求,将输入的用户名作为参数,校验此用户是否存在,如果此用户存在则不做任何反应,如果此用户不存在,则提示此用户不存在,请重新输入。当用户将用户名和密码都输入完毕后,点击登录按钮时,javascript脚本会再次将用户名和密码进行校验,如果用户名为空或密码为空或用户名不存在,则停止程序的运行,使登录按钮失效,同时提醒用户更改相应信息。当用户名和密码都不为空且用户名存在时,用户名和密码作为参数发送给homeaction的home方法,此方法调用userservice验证密码是否正确,如果正确则将用户名和密码封装成一个用户对象存储到session中,同时跳转到系统的主页,即查询页面。如果密码不正确,则跳转到错误提示页面,要求用户重新登录。系统的主页有输入框、查询按钮和退出按钮,当用户在输入框中输入名字时,页面将提交到clientaction的search方法,此方法调用clientservice进行查询,并将查询的结果封装成一个list,存放到request中发送给页面,页面通过struts标签循环遍历list,将里面的信息读出显示到页面上;如果输入框的内容为空直接点击查询按钮,则将数据库中所有的记录都封装成list,发送到页面显示出来。当用户点击主页上的退出按钮时,将链接到homeaction的logout方法,此方法将清空session,并跳转到登录页面。4. 结果分析登录页面:系统主页查询结果(不输入姓名时)查询结果(输入alice时)5. 总结本次课程论文以 基于b/s模式的通讯录查询程序为目的,充分运用了所学的计算机网络知识以及其他课程知识,从而更加深刻的了解到了ip数据包企业级系统的结构及java ee的相关问题,从而对ssh框架的工作原理有更好的理解和认识。在这次数据结构设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题要不断地更正以前的错误思维。通过这次设计,我知道网络编程既是一件艰苦的工作,又是一件愉快的事情。这个过程中,如果遇到看似简单但又无法解决的问题,很容易灰心丧气,此时切不可烦躁,一定要冷静的思考,认真的分析,其过程为:面对问题,接受问题,处理问题,解决问题。同时我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名电子信息工程专业的学生,这次课程论文是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课很多基础的东西都还没有很好的掌握,但是靠着学习和实践,我相信自己一定能做的更好。再次对给过我帮助的所有同学和各位指导老师表示忠心的感谢!没有你们的帮助我想我是不能这么好的完成这项工作的。参考文献1.谢希仁等. 计算机网络(第六版) m. 北京:人民邮电工业出版社,2015.;2.陈国海我国高校学生评教研究综述j高等教育研究学报,2001,24(1):30-32.3.吴功宜等.计算机网络课程论文 m. 北京:机械工业出版社,20074.易建勋. 计算机网络设计 m. 北京:人民邮电出版社,2010 5.andrews.tanenbaum. 计算机网络(第四版) m. 北京:清华大学出版社,20136.(美)彼德森等. 计算机网络:系统方法 m. 北京:机械工业出版社,20127.孔宪君等. 计算机网络操作系统原理与应用 m. 北京:机械工业出版社,20118.王卫亚等. 计算机网络:原理、应用和实现 m. 北京:清华大学出版社,20109.董吉文等. 计算机网络技术与应用m. 北京:电子工业出版社,2013附件一:程序源代码1. 登录页面login.jspbase href=用户登录用户名密码2. 系统主页index.jspbase href=查询客户客户姓名:退出3. 查询结果页面clientsearchresult.jspbase href=查询结果0客户id姓名年龄地址手机电话无任何结果4. 密码错误页面wrongpassword.jspbase href=密码错误密码错误5. login.jsvar usernameuniqueflag=0;function login()var username=$(#username).val();var password=$(#password).val();if(!checkusername(username)return;if(!checkpassword(password)return;$(#login-form).submit();function checkusernameunique(u)$(#usernameerror).html();/ 第一步:创建ajax引擎var xmlhttp = createxmlhttprequest();/ 第二步:事件处理函数xmlhttp.onreadystatechange = function()if (xmlhttp.readystate = 4)if (xmlhttp.status = 200)var data = xmlhttp.responsetext;if (data = 1)usernameuniqueflag=1;$(#usernameerror).html(用户名不存在,请重新输入);elseif(data=0)usernameuniqueflag=0;/ 第三步:打开一个连接xmlhttp.open(post, useraction_checkusername, true);xmlhttp.setrequestheader(content-type,application/x-www-form-urlencoded);/ 第四步:发送请求xmlhttp.send(username= + u);/ajax引擎function createxmlhttprequest()var xmlhttp;try / firefox, opera 8.0+, safarixmlhttp = new xmlhttprequest();catch (e)try / internet explorerxmlhttp = new activexobject(msxml2.xmlhttp);catch (e)tryxmlhttp = new activexobject(microsoft.xmlhttp);catch (e)return xmlhttp;function checkusername(u)$(#usernameerror).html();if($.trim(u)=)$(#usernameerror).html(用户名不能为空);return false;elseif(1=usernameuniqueflag)$(#usernameerror).html(用户名不存在);return false;return true;function checkpassword(p)$(#passworderror).html();if($.trim(p)=)$(#passworderror).html(密码不能为空);return false;return true;6. user.javapackage net.contact.entity;import java.io.serializable;public class user implements serializableprivate string username;private string password;public string getusername()return username;public void setusername(string username)this.username = username;public string getpassword()return password;public void setpassword(string password)this.password = password;7. client.javapackage net.contact.entity;import java.io.serializable;public class client implements serializableprivate integer clientid;private string name;private string age;private string address;private string mobile;private string tel;public integer getclientid()return clientid;public void setclientid(integer clientid)this.clientid = clientid;public string getname()return name;public void setname(string name) = name;public string getage()return age;public void setage(string age)this.age = age;public string getaddress()return address;public void setaddress(string address)this.address = address;public string getmobile()return mobile;public void setmobile(string mobile)this.mobile = mobile;public string gettel()return tel;public void settel(string tel)this.tel = tel;8. commondao.javapackage net.contact.dao;import java.util.linkedhashmap;import java.util.list;public interface commondaopublic t getobjectbyid(serializable id);public list getobjectwithconditionnopagination(string condition,object params,linkedhashmap order);9. commondaoimpl.javapackage net.contact.dao.impl;import java.sql.sqlexception;import java.util.linkedhashmap;import java.util.list;import java.util.map;import net.contact.dao.commondao;import net.contact.util.classutil;import org.hibernate.query;import org.hibernate.hibernateexception;import org.hibernate.session;import org.springframework.orm.hibernate3.hibernatecallback;import org.springframework.orm.hibernate3.support.hibernatedaosupport;public class commondaoimpl extends hibernatedaosupport implements commondaoprivate class entityclass=classutil.getgenericsuperclass(this.getclass();public t getobjectbyid(serializable id)return (t) this.gethibernatetemplate().get(entityclass, id);public list getobjectwithconditionnopagination(string condition,final object params,linkedhashmap order)final string hql=from +entityclass.getname()+ o where 1=1;string ordercondition=this.generateorderhql(order);final string finalhql=hql+condition+ordercondition;/调用hibernate的session对象list list=(list)this.gethibernatetemplate().execute(new hibernatecallback()public object doinhibernate(session session) throws hibernateexception,sqlexceptionquery query=session.createquery(finalhql);if(null!=params¶ms.length0)for(int i=0;iparams.length;i+)query.setparameter(i, paramsi);return query.list(););return list;private string generateorderhql(linkedhashmap order)stringbuffer sb=new stringbuffer();if(null!=order&order.size()0)sb.append( order by);for(map.entry map:order.entryset()sb.append( +map.getkey()+ +map.getvalue()+,);/去掉最后的逗号sb.deletecharat(sb.length()-1);return sb.tostring();10. userdaopackage net.contact.dao;import net.contact.entity.user;public interface userdao extends commondao11. userdaoimplpackage net.contact.dao.impl;import net.contact.dao.userdao;import net.contact.entity.user;public class userdaoimpl extends commondaoimpl implements userdao12. clientdao.javapackage net.contact.dao;import net.contact.entity.client;public interface clientdao extends commondao13. clientdaoimpl.javapackage net.contact.dao.impl;import net.contact.dao.clientdao;import net.contact.entity.client;public class clientdaoimpl extends commondaoimpl implements clientdao14. userservice.javapackage net.contact.service;import java.util.list;import net.contact.entity.user;public interface userservicepublic list getuserbyusername(user user);public string checkusername(string username);public string checklogin(user u);15. userserviceimpl.javapackage net.contact.service.impl;import java.util.arraylist;import java.util.linkedhashmap;import java.util.list;import net.contact.dao.userdao;import net.contact.entity.user;import net.contact.service.userservice;import mons.lang3.stringutils;public class userserviceimpl implements userserviceprivate userdao userdao;public void setuserdao(userdao userdao)this.userdao = userdao;public list getuserbyusername(user user)string username=user.getusername();string condition=;list paramslist=new arraylist();linkedhashmap order=new linkedhashmap();list list=new arraylist();if(stringutils.isnotblank(username)condition+= and o.username=?;paramslist.add(username);object params=paramslist.toarray();list=userdao.getobjectwithconditionnopagination(condition, params, order);return list; public string checkusername(string username)user u=userdao.getobjectbyid(username);if(u=null)return 1;elsereturn 0;public string checklogin(user u)user u1=userdao.getobjectbyid(u.getusername();if(u1=null)return 0;/用户不存在if(u1!=null)if(!(u.getpassword().equals(u1.getpassword()return 1;/密码错误return 2;/验证成功16. baseaction.javapackage net.contact.action;import java.util.map;import javax.servlet.http.httpservletrequest;import javax.servlet.http.httpservletresponse;import net.contact.util.classutil;import erceptor.servletrequestaware;import erceptor.servletresponseaware;import com.opensymphony.xwork2.actionsupport;import com.opensymphony.xwork2.modeldriven;public class baseaction extends actionsupport implements modeldriven,servletrequestaware,servletresponseawarepublic t model;public httpservletrequest request;public httpservletresponse response;public map map;/泛类转换private class entityclass=classutil.getgenericsuperclass(this.getclass();public baseaction()trymodel=(t) entityclass.newinstance();catch (instantiationexception e)e.printstacktrace();catch (illegalaccessexception e)e.printstacktrace();public t getmodel()return model;public void setservletrequest(httpservletrequest request)this.request=request;public void setservletresponse(httpservletresponse response)this.response=response;17.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 爱的教育读书分享
- 幼儿身心健康活动指导体系
- 生命安全知识专题教育
- 电网改造场地调研与工程设计合同
- 车辆租赁行业法律法规咨询合同
- 智能新能源汽车维修服务及数据共享协议
- 车辆贷款风险控制与居间服务协议J
- 拉美跨境电商支付接口接入与风险管理协议
- 跨境电商平台股权架构调整与业务拓展合同
- 柴油销售与终端用户利益共享合同
- 2025年中国数据库市场研究报告
- 2024年包头市公安局招聘专职留置看护警务辅助人员笔试真题
- 【9语安徽中考卷】2025年安徽省中考招生考试真题语文试卷(真题+答案)
- 矿产资源国际合作-洞察及研究
- 【课件】无脊椎动物+第2课时课件-2024-2025学年人教版生物七年级上册
- 2025年凉山州昭觉县选聘社区工作者题库带答案分析
- 2025国开《调剂学(本)》形考任务1234答案
- 2025年员工持股平台合伙协议
- 2024-2025学年下学期初中道德与法治七年级期末复习试卷(含答案)
- 2025年政府采购管理实务考试卷及答案
- 2025连云港师范高等专科学校辅导员考试试题及答案
评论
0/150
提交评论