ImageVerifierCode 换一换
格式:DOCX , 页数:48 ,大小:11.69MB ,
资源ID:4761656      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4761656.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(软件标准体系结构报告书.docx)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

软件标准体系结构报告书.docx

1、 软件体系结构汇报书 基于MVC模式软件体系 小型项目标应用 组 号: 24 成 员:01613240 李 尧 01613232孙雨晨 01613227 钱 磊 完成日期: /11/8 项目提要 1、 项目介绍 ①、整体概况介绍 ②、Client端介绍 ③、服务器Tomcat介绍 ④、数据库SQL Server R2

2、介绍 ⑤、整个项目框架图 2、 Model层 ①、数据库连接 ②、添加用户 ③、删除用户 ④、修改用户 ⑤、查询用户 ⑥、为每个登录用户添加Cookie/Session机制 ⑦、定时跳转 ⑧、添加分页功效 ⑨、提供下载功效 ⑩、安全退出后续操作 3、 View层 ①、登录主界面 ②、管理主界面 ③、显示用户管理/用户查询查询结果 ④、显示添加用户元件 ⑤、查找用户界面 ⑥、修改用户主界面 ⑦、删除用户成功/添加用户成功/登陆成功界面/登陆错误页面/修该用 户信息成功页面 ⑧、防盗链页面 4、 Controller层 ①、用户登录控

3、制 ②、防盗链控制(非法登录控制) ③、数据库连接控制 ④、分页控制 ⑤、添加用户页面显示控制 ⑥、定时页面跳转控制 5、 项目测试 项目介绍 1、 整体概况介绍 本项目是基于MVC模式软件体系小型项目标应用,即基于模型(model)-视图(view)-控制器(controller)之间Client端、服务器Tomcat、SQL Server R2数据库应用操作项目。采取MVC框架,是一个软件设计典范,用一个业务逻辑、数据、界面显示分离方法组织代码,将业务逻辑聚集到一个部件里面,在改善和个性化定制界面及用户交互同时,不需要重新编写业务逻辑。MVC被独特发展起来用

4、于映射传统输入、处理和输出功效在一个逻辑图形化用户界面结构中。简单步骤描述能够概括为:用户经过用户端(Client端)访问页面→经过服务器响应用户请求→到数据库中查询数据→返回给用户端(Client端),在这里我们用户端为浏览器端,类似B/S架构。在这种结构下,用户工作界面是经过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,不过关键事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。B/S结构是WEB兴起后一个网络结构模式,WEB浏览器是用户端最关键应用软件。这种模式统一了用户端,将系统功效实现关键部分集中到服务器上,简化了系统开发、维护和使用。用户机上只

5、要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器经过Web Server同数据库进行数据交互。 这么就大大简化了用户端电脑载荷,减轻了系统维护和升级成本和工作量,降低了用户总体成本(TCO)。 2、 Client端介绍 用户端(Client)或称为用户端,是指和服务器相对应,为用户提供当地服务程序。除了部分只在当地运行应用程序之外,通常安装在一般用户机上,需要和服务端相互配合运行。因特网发展以后,较常见用户端包含了如万维网使用网页

6、浏览器,收寄电子邮件时电子邮件用户端,和即时通讯用户端软件等。对于这一类应用程序,需要网络中有对应服务器和服务程序来提供对应服务,如数据库服务,电子邮件服务等等,这么在用户机和服务器端,需要建立特定通信连接,来确保应用程序正常运行。本项目中使用Internet Explorer 11,360急速浏览器充当用户端。 3、 服务器Tomcat介绍 Tomcat服务器是Apache软件基金会项目中一个开源Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多场所下被普遍使用,是开发和调试JSP 程序首选。对于一个初学者来说,能够这么认为,当在一台机器上配置好Apach

7、e 服务器,可利用它响应HTML(标准通用标识语言下一个应用)页面访问请求。实际上Tomcat 部分是Apache 服务器扩展,但它是独立运行,所以当你运行tomcat 时,它实际上作为一个和Apache 独立进程单独运行。本项目使用是Tomcat 8.0版本(最新)。 4、 数据库SQL Server R2介绍 SQL Server R2 在Microsoft数据平台上公布,能够组织管理任何数据。能够将结构化、半结构化和非结构化文档数据直接存放到数据库中。能够对数据进行查询、搜索、同时、汇报和分析之类操作。数据能够存放在多种设备上,从数据中心最大服务器一直到桌面计算机和移

8、动设备,它全部能够控制数据而不用管数据存放在哪里。SQL Server R2关键应用于小型项目开发,安全稳定,所以本项目将采取它作为我们数据库管理。 5、 整个项目框架图 项目框架图.xlsx,,,,,,项目框架图.htm Model层 1、 数据库连接 数据库连接需要含有JDBC驱动(JDBC“Java Data Base Connectivity,java数据库连接”是一个用于实施SQL语句Java API,能够为多个关系数据库提供统一访问,它由一组用Java语言编写类和接口组成。JDBC提供了一个基准,据此能够构建更高级工具和接口,使数据库开发人员能够编写数据库应用程

9、序。)、需要数据库连接地址和数据库用户名和密码。 实现代码以下: private static Connection dbconn =null; private static final String diverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; private static final String dbURL="jdbc:sqlserver://localhost:1433; DatabaseName=LoginData"; private static final String UserName=

10、"Yeoo_Server"; private static final String PassWord="liyao5926362"; try { Class.forName(diverName); //加载驱动程序 dbconn = DriverManager.getConnection(dbURL, UserName, PassWord); //连接数据库 System.out.println("SQL Server Connection Successful!"); } catch (SQLException e) { e.printStackTra

11、ce(); } catch (ClassNotFoundException e) { throw new ServletException("加载数据库驱动失败."); }finally{ try { if(dbconn!=null){ dbconn.close(); } } catch (SQLException e) { e.printStackTrace(); } } 2、 添加用户 添加用户功效用AddUserServlet.java实现,服务器经过用户端获取到输入新用户名和密码,然后在数据库中添加一个新用户

12、 代码实现: 数据库连接....(略过) private static PreparedStatement ps; //获取数据库操作对象 private static String SQL_Insert; //数据库查询语句 //从用户端获取到用户输入新用户 String NewUser = request.getParameter("C_Username"); //从用户端获取到用户输入新密码 String NewPass = request.getParameter("C_Password"); //给数据库查询语句赋值 SQL_Inser

13、t = "insert into Table_1(UserName,PassWord) values('"+NewUser+"','"+NewPass+"')"; ps = con.prepareStatement(SQL_Insert); //实施操作语句 ps.executeUpdate(); //更新结果 3、 删除用户 添加用户功效用DeleteServlet.java实现,用户经过用户端点击需要删除用户,由服务器获取到要删除用户UserName,然后在数据库中用语句进行删除。 代码实现: 数据库连接....(略过) private stati

14、c PreparedStatement ps = null; //获取数据库操作对象 String s= request.getParameter("Username"); //获取要删除ID //实施删除语句操作 ps = con.prepareStatement( "delete from Table_1 where UserName='"+s+"'"); ps.executeUpdate(); //更新结果 4、 修改用户 修该用户操作用ModifyUser.jsp(显示目前用户信息)和 ModifySu

15、ccess.jsp(修改目前用户信息)实现,修改用户分为显示目前用户信息,和修改用户信息,同理用户经过在用户端输入需要修改信息,然后又服务器进行获取,在数据库中进行语句修改。 代码实现: 数据库连接....(略过) //显示目前用户信息 PreparedStatement ps = null; //获取数据库操作对象 ResultSet rs =null; String Username = request.getParameter("Username"); //获取ID String PassWrod=null,Email=null,TelePhone=

16、null; //查询改ID全部信息 ps = con.prepareStatement("select PassWord,Email,TelePhone from Table_1 where UserName='"+Username+"'"); rs=ps.executeQuery(); //把结果储存在ResultSet中 while(rs.next()){ //把查询到结果输出到界面 PassWrod = rs.getString("PassWord"); Email = rs.getString("Email");

17、 TelePhone = rs.getString("TelePhone"); out.println( "

UserName : "+Username+"

"); out.println( "

PassWord : "+PassWrod+"

"); out.println( "

Email : "+Email+"

"); out.println( "

TeleP

18、hone : "+TelePhone+"

"); } //修该用户操作 PreparedStatement ps = null; //获取数据库操作对象 String PassWord = request.getParameter("PassWord"); //原始密码 String Email = request.getParameter("Email");//原始邮箱 String TelePhone = request.getParameter("TelePhone");//原始电话 String

19、UserName = request.getParameter("UserName"); //默认用户名字 String NewUserPassWord = request.getParameter("PassW"); //修改后密码 //判定新密码是否为空,为空设置为原始密码 if(NewUserPassWord.equals("")){ NewUserPassWord=PassWord; } String NewUserEmail = request.getParameter("Em"); //修改后

20、邮箱 //判定新邮箱是否为空,为空设置为原始邮箱 if(NewUserEmail.equals("")){ NewUserEmail=Email; } String NewUserTelePhone = request.getParameter("Tele"); //修改后电话 //判定新电话是否为空,为空设置为原始电话 if(NewUserTelePhone.equals("")){ NewUserTelePhone=TelePhone; } //实施删除操作语句 ps=c

21、on.prepareStatement("update Table_1 set PassWord='"+NewUserPassWord+"',Email='"+NewUserEmail+"',TelePhone="+NewUserTelePhone+" where UserName='"+UserName+"'"); ps.executeUpdate(); //更新数据 5、 查询用户 查询用户操作用FindUsers.jsp来实现。直接在数据库中进行查询即可,然后输出。 代码实现: 数据库连接....(略过) ResultSet rs =null; //定义

22、数据库结果集对象 PreparedStatement ps = null; //定义数据库操作对象 int pageNow=1; //目前页 int pageSize=6; //每页显示条数 //查询用户全部信息,显示6条 ps = con.prepareStatement("select top 6 UserName,PassWord,Email,TelePhone from Table_1 where UserName not in(select top "+((pageNow-1)*pageSize)+" UserName from Table_1)");

23、 rs = ps.executeQuery(); //把查询储存到ResultSet中 while(rs.next()){ //将结果输出 //获取查询结果中UserName列 User = rs.getString("UserName"); //获取查询结果中PassWord列 Pass = rs.getString("PassWord"); //获取查询结果中Email列 Email = rs.getString("Email"); //获取查询结果中TelePhone列 Te

24、lePhone = rs.getString("TelePhone"); //将结果输出到表格中 out.println(""+User+""+Pass+""+Email+""+TelePhone+""); } 6、 为每个登录用户添加Cookie/Session机制 登录成功后为每个用户添加Cookie/Session机制,可储存用户信息,可预防用户非法登录等等功效。 代码实现: String str_User = request.getParame

25、ter("text_1"); //获取用户ID Cookie mycookie = new Cookie("id", str_User); //创建Cookie mycookie.setMaxAge(7*2*24*3600); //设置Cooike生命周期为两周 mycookie.setPath("/"); //设置储存Cookie路径 response.addCookie(mycookie); //添加Cookie给用户端 //获取Session,没有则创建一个 HttpSession session = request.getSession();

26、 session.setAttribute("User", str_User); //向Session中设置属性和属性值 //Cookie使用,为每个用户储存ID,在每个页面显示欢迎每个ID String id= ""; //定义一个变量用于储存要显示ID Cookie []c = request.getCookies(); //获取Cookie for(int i=0;i

27、ue(); //把值(用户ID)赋值给id } } //Session使用,可用于用户非法登录(服务器端) //取出Session中值 String User = (String)request.getSession().getAttribute("User"); if(User == null){ request.getRequestDispatcher("/Error_2.jsp").forward(request, response); return; //立即跳转,假如没有return话会等候页面全部加

28、载完再跳转。 } 7、 定时跳转 定时跳转需要用HTML、JavaScript结合使用。 代码以下: HTML:

Successfully add a new user to the database , Back home side after 3 seconds

JavaScript:

29、 language="javascript"> var time = 4; clock(); function clock(){ window.setTimeout('clock()', 1000); --time; times.innerHTML = time; } 8、 添加分页功效 //定义分页需要四个变量 int pageNow = 1; //现在处于第几页 //接收用户pageNow String s = request.getParameter("p

30、ageNow"); if(s!=null){ pageNow = Integer.parseInt(s); } int pageSize = 7; //每页显示条数 int rowCount; //一共有多少条统计(数据库中) int pageCount; //一共要显示多少页(计算出来) ps = con.prepareStatement("select count(*) from Table_1"); rs = ps.executeQuery();

31、rs.next(); //把游标(数据库)向下以一个 rowCount = rs.getInt(1); //获取到一共有多少条统计 pageCount = rowCount%pageSize==0 ? rowCount/pageSize : rowCount/pageSize+1; //计算出一共有多少页 ps = con.prepareStatement("select top 7 UserName,PassWord from Table_1 where UserName not in(select top "+((pa

32、geNow-1)*pageSize)+" UserName from Table_1)"); rs = ps.executeQuery(); //显示分页 out.println("

"); if(pageNow!=1){ //假如目前页不等于第一页,显示第一页超链接 out.println("Previ

33、ous Page"); } for(int i=0;i"+(i+1)+""); } if(pageNow!=pageCount){//假如目前页不等于最右一页,显示最终一页 out.println("

34、MyWebServer/Manager_User.jsp?pageNow="+(pageNow+1)+"\">Next Page"); } 9、 提供下载功效 下载功效由DownLoadServlet.java实现 response.setHeader("Content-Disposition", "attachment; filename=2.jpg"); String path = this.getServletContext().getRealPath("2.jpg"); FileInputStream fin = new FileInput

35、Stream(path); byte[] buff = new byte[1024]; int len=0; OutputStream os = response.getOutputStream(); while((len=fin.read(buff))>0){ os.write(buff, 0, len); } os.close(); fin.close(); 10、 安全退出后续操作 安全退出返回登录主界面(MyJsp.jsp)之外,还需要销毁Cookie和Session,即清除用户登录痕迹和为用户保留用户信息。 实现原理为

36、把Cookie和Session生命周期设为0. 关键代码: mycookie.setMaxAge(0); session.setMaxInactiveInterval(0); View层 1、 登录主界面 由MyJsp.jsp实现,需要用到CSS样式表。 效果图: 样式表内容: Body内容:

Username :


Password  :


2、 管理主界面 由LoginMain.jsp实现,需要用到CSS样式表。 效果图: 样式表内容: Body内容:

Welcome <%=id %> To Visit This Website!

Main interface

44、


Add New Users To The Database
UserName :

Password  :

47、t type="submit" value="Submit" class="a"/>

3、 显示用户管理/用户查询查询结果 由Manager_User.jsp实现。需要用到CSS样式表和JSP输出。 效果图: CSS样式表: