tag 标签: web

相关博文
  • 热度 4
    2024-1-8 20:18
    338 次阅读|
    0 个评论
    软件体系结构课程设计 选课系统 一、 系统目标 学生选课系统是一个学校不可缺少的部分 , 它的内容对于学校的决策者和管理者来说都至关重要 , 所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点 , 如 : 效率低、保密性差 , 另外时间一长 , 将产生大量的文件和数据 , 这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高 , 计算机科学日渐成熟 , 其强大的功能已为人们深刻认识 , 它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分 , 使用计算机对选课信息进行管理 , 有着手工管理所无法比拟的优点 . 例如 : 检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率 , 也是企业的科学化、正规化管理 , 与世界接轨的重要条件。 因此,开发这样一套软件成为很有必要的事情。 二、总体设计 2 . 1 系统分析 在本系统中,有三类用户:系统管理员,教师和学生。三种不同的用户所具有的操作权限以及操作内容均不一样。 本选课系统给予教师很大的自主权,系统管理员只负责向系统中添加学生和教师的个人信息以及教学楼教室信息。系统管理员不参与开设课程、选择课程等,一切均由教师、学生等录网站自行完成。系统管理员设置一个选课时间段,在到达时间段以前,教师可以开设课程;到达时间段以后,学生可以登陆网站选择课程。 教师用户登陆网站后可以开设课程,为自己的课程编辑上课时间和地点,当系统中出现时间地点冲突的时候,系统向教师用户报告并推荐一个时间地点。每门课程可以是必修或则选修,教师为每门课程设置一个学分,并可以在课程结束后给予分数,如果学生及格,学生将获得该课程的学分。 对于学生用户,每个学生除了必须选择必修课程外,至少还要选择两门选修课程,学生可以对自己选课信息锁定,以免不小心被修改。当时候超过选课时段后,系统自动锁定学生的选课课程。系统可以根据学生的选课信息,生成一份学生自己的课表。课程结束后学生可登录网站查询成绩与学分。 根据上面的要求,从操作功能上可以分为两个类:一个是通用操作,主要实现用户的登录注销和修改密码等;另一种是为不同用户定制不同操作。 2.1.1 通用操作 ( 1 )登录与注销 每个用户都可以用自己的帐号登录系统。用户操作完成后推出系统,注销后可以重新登录系统。 ( 2 )修改密码 每个用户第一次登录都用默认密码(教师和学生与帐号一样)。 2.1.2 用户所具有功能 (1) 系统管理员 设置选课时间段:系统管理员通过此项功能设置选课时段,只有在选课时间段里,学生才可以选择课程,超过次时间段,学生选课信息被自动所定,不得修改。 录入学生与教师个人信息:通过此项功能可以实现对教师和学生的个人信息添加删除。 录入教学楼教室信息:通过此项功能可以把学校里所有的教学楼教室的信息录入到系统中,以便教师在开设课程时候设置上课的教室。 (2) 教师用户 显示和修改个人信息:教师用户登录系统后,可以查看和修改教师的个人信息,如姓名,电话, E-mail 地址等。 开设课程:教师用户登录系统后,可以开设课程,可以设置该课程为必修课程或则选修课程,可以设置该课程的最大人数。教师还可以为该课程设置一个前导课程,若学生没有学习或则选择前导课程则不能选择该课程。 编辑课程上课时间:教师在开设了课程后,可以灵活地设置上课时间和地点。 给学生分数:课程结束后,教师用户登录系统,可以为学过课程的学生给予相应的成绩,若 及格,给予学生学分。 (3) 学生用户 显示和修改个人信息:学生登录系统后,可以查看和修改学生的个人信息,如姓名,性别,电话等。 查看必修课程:学生登录后,可以查看所有的必修课程。查看该课程的信息,上课时间地点,开课教师信息等。 选择选修课程:学生登录系统后,在所有选修课程中可以选择至少两门选修课程。同时可以查看相关信息。 锁定选课信息:学生登录系统,确定了所选课程后,可以锁定自己的选课信息,以防被别人或则自己不小心修改。 查看最终选课信息:学生登录系统后,可列出已选择的课程,若选课信息未被锁定,则可以退选,若所选课程少于两门,系统会提示选择的课程少于两门。 查看学分和成绩 课程结束后,学生登录系统可查看自己学习课程的成绩和已获的学分。 2.2 系统总体设计 在前面的系统的系统功能分析中,将系统划分成 10 个模块,如图:   SHAPE   \* MERGEFORMAT 用户登录身份验证模块 设置选课时间模块 录入信息模块 开设课程模块 编辑程序时间地点模块 评分模块 查看课程模块 选课和锁定模块 数据库模块   数据库 访问模块 用户登录身份验证模块验证用户名和密码,并根据不同的用户类型,跳转到对应的页面中。设置选课时间模块提供给系统管理员修改选课时间段。录入信息模块提供给系统管理员,用来录入学生和教师信息,以及录入教学楼教室等信息。开设课程模块提供给教师用户,用来开设一门必修课程或则选修课程。编辑课程时间地点模块提供给教师用户,编辑课程的上课时间地点友好的界面和操作。评分模块用于教师用户给选修该教师开设的课程的学生评分。查看课程模块包括查看必修课程、查看选修课程、查看已选课程、查看课程成绩单。选课和锁定模块中实现选择选修课程和锁定选课信息的功能。 2.3 采用 B/S 的特点 B/S 模式最大特点是:用户可以通过 WWW 浏览器去访问 Internet 上的文本、数据、图像、动画、视频点播和声音信息,这些信息都是由许许多多的 Web 服务器产生的,而每一个 Web 服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中。客户端除了 WWW 浏览器,一般无须任何用户程序,只需从 Web 服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由 Web 服务器交给数据库服务器来解释执行,并返回给 Web 服务器, Web 服务器又返回给用户。在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。而各个企业可以在此结构的基础上建立自己的 Intranet 。 2.4 B/S 模式的优点和缺点 B/S ( Browser/Server 结构)结构即浏览器和服务器结构。它是随着 Internet 技术的兴起,对 C/S 结构 的一种变化或者改进的结构。在这种结构下,用户工作界面是通过 WWW 浏览器来实现,极少部分事务逻辑在前端( Browser )实现,但是主要事务逻辑在服务器端( Server )实现,形成所谓三层 3-tier 结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本( TCO )。以目前的技术看, 局域网 建立 B/S 结构的网络应用, Internet/Intranet 模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如 LAN, WAN, Internet/Intranet 等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。特别是在 JAVA 这样的跨平台语言出现之后, B/S 架构管理软件更是方便、速度快、效果优。  随着 Internet 和 WWW 的流行,以往的主机/终端和 C / S 都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了 B / S 型模式,即浏览器/服务器结构。 B/S 模式最大特点是:用户可以通过 WWW 浏览器去访问 Internet 上的文本、数据、图像、动画、视频点播和声音信息,这些信息都是由许许多多的 Web 服务器产生的,而每一个 Web 服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中。客户端除了 WWW 浏览器,一般无须任何用户程序,只需从 Web 服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由 Web 服务器交给数据库服务器来解释执行,并返回给 Web 服务器, Web 服务器又返回给用户。在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。而各个企业可以在此结构的基础上   2.5   B/S 结构的优点   ( 1 )、具有分布性特点,可以随时随地进行查询、浏览等业务处理。   ( 2 )、业务扩展简单方便,通过增加网页即可增加服务器功能。   ( 3 )、维护简单方便,只需要改变网页,即可实现所有用户的同步更新。   ( 4 )、开发简单,共享性强    B/S 模式的缺点   ( 1 )、个性化特点明显降低,无法实现具有个性化的功能要求。    (个性化的要求取决以软件框架,而非架构,分享 B/S 软件就蛮灵活)   ( 2 )、操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。   (如果辅助于插件,照样可以用键盘快速操作 )   ( 3 )、页面动态刷新,响应速度明显降低。   (分享软件用分页保证响应速度稳定)   ( 4 )、功能弱化,难以实现传统模式下的特殊功能要求。 (技术问题,用微软 C# 或 java 怎么会不能解决任何要求呢) 2.6 B/S 架构软件的优势与劣势  ( 1 )、维护和升级方式简单。目前,软件系统的改进和升级越来越频繁, C/S 系统的各部分模块中有一部分改变,就要关联到其它模块的变动,使系统升级成本比较大。 B/S 与 C/S 处理模式相比,则大大简化了客户端,只要客户端机器能上网就可以。对于 B/S 而言,开发、维护等几乎所有工作也都集中在服务器端,当企业对网络应用进行升级时,只需更新服务器端的软件就可以,这减轻了异地用户系统维护与升级的成本。如果客户端的软件系统升级比较频繁,那么 B/S 架构的产品优势明显 —— 所有的 升级操作只需要针对服务器进行,这对那些点多面广的应用是很有价值的,例如一些招聘网站就需要采用 B/S 模式,客户端分散,且应用简单,只需要进行简单的浏览和少量信息的录入。  ( 2 )、系统的性能   在系统的性能方面, B/S 占有优势的是其异地浏览和信息采集的灵活性。任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用 B/S 系统的终端。不过,采用 B/S 结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担,这使得服务器的负担很重。采用 C/S 结构时,客户端和服务器端都能够处理任务,这虽然对客户机的要求较高,但因此可以减轻服务器的压力。而且,由于客户端使用浏览器,使得网上发布的信息必须是以 HTML 格式为主,其它格式文件多半是以附件的形式存放。而 HTML 格式文件(也就是 Web 页面)不便于编辑修改,给文件管理带来了许多不便。比如说很多人每天上 “ 新浪 ” 网,只要安装了浏览器就可以了,并不需要了解 “ 新浪 ” 的服务器用的是什么操作系统,而事实上大部分网站确实没有使用 windows 操作系统,但用户的电脑本身安装的大部分是 windows 操作系统。 ( 3 )、系统的开发    C/S 结构是建立在中间件产品基础之上的,要求应用开发者自己去处理事务管理、消息队列、数据的复制和同步、通信安全等系统级的问题。这对应用开发者提出了较高的要求,而且迫使应用开发者投入很多精力来解决应用程序以外的问题。这使得应用程序的维护、移植和互操作变得复杂。如果客户端是在不同的操作系统上, C/S 结构的软件需要开发不同版本的客户端软件。但是,与 B/S 结构相比, C/S 技术发展历史更为 “ 悠久 ” 。从技术成熟度及软件设计、开发人员的掌握水平来看, C/S 技术应是更成熟、更可靠的。 三、网络结构 网上选课系统采用基于 .NET 下的三层 B/S 模式,把整个系统分为三层:表现层、业务逻辑层和数据访问层。系统的总体架构图如图 1 所示。 1 )表现层( UI ) 表现层通俗讲就是展现给用户的界面,即用户在使用一个系统的时候所见所得。在 .NET 框架中,常常基于 ASP.NET 进行表现层的开发。本系统的表现层主要通过 ASP.NET 中的 aspx 页面、 HTML 和 JavaScript 实现。 2 )业务逻辑层( BLL ) 业务逻辑层用于实现数据业务流程,该部分研究与设计在软件开发过程中是系统实现的核心环节,用于对上下层之间的交互数据进行逻辑处理,实现对应的业务目标。本系统的业务逻辑层主要通过 ASP.NET 中的 cs 代码实现。 3 )数据访问层( DAL ) 数据访问层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。本系统的数据访问层主要通过 ASP.NET 中的数据库操作类和 ADO.NET 实现。 四、系统功能的实现 系统采用 B/S 技术实现相应的功能。学生和老师都通过浏览器实现选课,退课,安排上课时间和上课教师。因为 B/S 系统的零客户端要求。因此通过 B/S 模式可以很容易的实现系统的访问。这样不受地点和环境的限制。只有有一台可以上网的计算机就可以实现网上选课。 整个系统有 4 个大的模块 (1) 学生选课模块: 实现主要的选课功能,包括填写选课信息、查看已选课程、修改选课等。 首先发布选课通知,即先对教师发出通知(教师得到通知后才可申请教课),然后对学生发出通知(此时已安排完有关选修课的所有信息)。 ( 2 )教师开课模块: 这个模块主要是让教师申请教课,同时教师可以修改个人信息、浏览基本课程以及查看学生的选课情况等。 获取教师申请教课的信息,包括教师信息及其所要教的课程课程信息;提供教师浏览课程的功能,即课程时间、教室等的安排;并提供查询学生选课情况的功能,即选此门课程的名单等;处理和统计教师对学生成绩的评定。 ( 3 )管理员管理模块: 这个模块的功能比较多,主要包括创建课程的指定任课老师、设定课程人数、统计学生选课信息、发通知等等。 ( 4 )通用功能模块:即用户登录、密码修改等功能的实现。 获取用户输入的用户名及密码; 若出现用户名、密码错误或不匹配现象,反馈错误提示; 在用户名及密码都正确的前提下,支持密码修改。 五、教师模块块设计 在选课系统中教师查看选课学生的信息,提交成绩;管理员添加学生、管理学生、管理成绩、添加教师、管理教师和管理课程等 开课模块 成绩设置模块 六、学生选课模块设计 学生使用选课系统可以很容易的实现以下的功能: 1. 选课。学生能够在网上实现正常学期的本专业本年级推荐选课、本院系开设课程、体育课、政治课、公共英语课、文科计算机课、通选课和公选课的选课;除此之外学生还可以进行暑期学校网上选课。 2 .成绩查询。学生能够在网上快速、便捷地查询到自己所有学期的课程成绩(包括本院系所学课程成绩、辅修 / 双学位成绩)。 3 .选课情况查询。学生从网上就可以了解自己的选课情况(包括正常学期和暑期学校的选课),避免了许多不必要的麻烦。 4 .退课情况查询。学生可以清楚地查看到自己退课的时间和所用的 IP 地址。 5 .体育课评估。 6 .修改密码。提供选课系统密码修改服务。 七、用户使用模块设计 用户登录模块 添加管理员模块 修改密码模块设计 八、数据库设计 数据库是此类系统的核心,系统中所有的信息都存储在数据库中,在页面中通过与数据库连接,操作数据库中的数据,从而实现所有需要的功能。数据库是网站的核心,数据库设计的合理与否对网站的建设有着至关重要的影响。一个良好的数据库开发过程一般是先系统分析,再逻辑设计,然后物理实现。系统分析中分析数据库用户需求,并画出 E-R 图直观地表示出数据库系统的需求。逻辑设计中根据系统分析设计的一个关系模型。物理设计为逻辑设计中的数据模型选取一个最合理的应用环境的物理结构,通常选取一个常用数据库软件,用数据库软件创建与逻辑设计中数据模型对应的数据库。 8.1 数据库系统分析 本系统的数据库实体主要有“学生”、“教师”、“教学楼”、“教室”、“课程”等。其中“教师”与“课程”存在“开设”联系,并且一个教师可以开设 N 门课程,即“教师”与“课程”之间是一对多的关系。同样“教学楼”与“教室”也存在一对多的关系。一个学生可以学习 N 门课程,一门课程可以有 M 个学生学习,即“学生”与“课程”之间是多对多的关系。同样“课程”与“教室”之间也是多对多的关系。整个数据库可以用一个 E-R 图表示,如图:   SHAPE   \* MERGEFORMAT n n 1 1 1 m m m m m 学生 学号 姓名 性别 专业 班级 密码 出生日期 学院 组成 编号 学院名称 学习 课程 课程号 类型 学分 学时 教师 课程名称 教师 组成 教授 开设 姓名 工号 性别 密码 联系电话 院部 8.2 数据库逻辑设计 数据库逻辑设计就是将 E — R 图转换为关系模型的过程,即将所有实体和关系转换成一系列的关系模式。转换过程中常见规则有: ( 1 )一个实体型转换为一个关系模式; ( 2 )一个一对一的联系可转换成一个独立的关系模式,也可与任意一端对应的关系模式合并; ( 3 )一个一对多的联系可以转换成一个独立的关系模式,也可与多的那一端对应的关系模式合并; ( 4 )一个多对多的关系转换成一个关系模式。 根据以上四条规则,下面将 E — R 图转换成关系模型。 对于“教学楼”、“教室”和两者之间的关系,就可以根据规则( 3 )转换成两个关系模式 教学楼( 教学楼 ID ,教学楼名称) 教室( 教室 ID ,教学楼 ID ,教室名称) 对于“学生”、“课程”和它们之间的“选修”关系就可以规则( 4 )转换成三个关系模式。 学生( 学号 ,姓名,性别,年龄,登陆密码,学分,地址,电话,电子邮件) 课程( 课程编码 ,课程名称,开课教师编号,学分,最大人数,课程简介,前导课程编号) 选课( 学号 , 课程编号 ,成绩) 依次类推,剩下的关系转换成下面三个关系模式: 教师( 教师编号 ,姓名,性别,年龄,电话,电子邮件,个人简介) 课程时间地点( 课程编号 , 开始周次 , 结束周次 , 上课时间 , 上课教室 ID ) 管理员( 帐号 ,密码) 九、采用 B/S 设计和采用 C/S 设计的比较   其实,无论是 B/S 还是 C/S ,他们都不新鲜。 C/S(Client/Server ,客户端 / 服务器 ) 技术从上世纪 90 年代初出现至今已经相当成熟,并得到了非常广泛的应用,其结构经历了二层 C/S 、三层 C/S 的更迭。 B/S(Browser/Server ,浏览器 / 服务器 ) 技术则是伴随着 Internet 的普及而来的。有必要说明的是, B/S 最早并不叫 “B/S” ,此类应用国外通常叫 Web 应用,是国内一些公司 “ 创造 ” 了 “B/S” 这个词。   应该说, B/S 和 C/S 各有千秋,他们都是当前非常重要的计算架构。在适用 Internet 、维护工作量等方面, B/S 比 C/S 要强得多;但在运行速度、数据安全、人机交互等方面, B/S 远不如 C/S 。综合起来可以发现,凡是 C/S 的强项,便是 B/S 的弱项,反之亦然。因此,问题也就因此而产生了,我们的 ERP 产品到底该用 B/S 还是 C/S 架构呢?一场关于 C/S 与 B/S 的口水战也由此在 ERP 业界拉开了序幕。在互联网泡沫盛行的 2000 年至 2002 年间,这场口水战达到了顶峰。但直到现在,人们也没有辩出谁是谁非。   事实上,从上面的分析可以看出,这场口水战不可能有胜负出现,因为 B/S 与 C/S 具有不同的优势与特点,他们无法相互取代。例如,对于以浏览为主、录入简单的应用程序, B/S 技术有很大的优势,现在全球铺天盖地的 Web 网站就是明证;而对于交互复杂的 ERP 等企业级应用, B/S 则很难胜任,从全球范围看,成熟的 ERP 产品大多采用二层或三层 C/S 架构, B/S 的 ERP 产品并不多见。    “B/S 还是 C/S” 也就由此成了 ERP 的技术之痛。难道这个痛就无药可救了吗?是否有可能将 B/S 与 C/S 的优势融合呢?答案是肯定的,在这几年的发展中将 B/S 与 C/S 的优势完美地结合起来,就是说该平台的应用系统能以 B/S 的方式发布运行,同时又具有 C/S 方式的极强的可操作性。这点从该平台生成的商品化的网络协同商务管理软件上得到充分的体现!   管理软件是为企业服务的,企业选用管理软件不仅要从技术上考虑,还要从商业运用方面来考虑,下文将从商业运用的角度对两种结构的软件进行比较。    1 ,投入成本比较。 B/S 结构软件一般只有初期一次性投入成本。对于集团来讲,有利于软件项目控制和避免 IT 黑洞,而 C/S 结构的软件则不同,随着应用范围的扩大,投资会连绵不绝。    2 ,硬件投资保护比较。在对已有硬件投资的保护方面,两种结构也是完全不同的。当应用范围扩大,系统负载上升时, C/S 结构软件的一般解决方案是购买更高级的中央服务器,原服务器放弃不用,这是由于 C/S 软件的两层结构造成的,这类软件的服务器程序必须部署在一台计算机上;而 B/S 结构(如 e 通管理系列)则不同,随着服务器负载的增加,可以平滑地增加服务器的个数并建立集群服务器系统,然后在各个服务器之间做负载均衡。有效地保护了原有硬件投资。    3 ,企业快速扩张支持上的比较。对于成长中的企业,快速扩张是它的显著特点。例如迪信通公司,每年都有新的配送中心成立,每月都有新的门店开张。应用软件的快速部署,是企业快速扩张的必要保障。对于 C/S 结构的软件来讲,由于必须同时安装服务器和客户端、建设机房、招聘专业管理人员等,所以无法适应企业快速扩张的特点。而 B/S 结构软件,只需一次安装,以后只需设立账号、培训即可。   其次,随着软件应用的扩张,对系统维护人才的需求有可能成为企业快速扩张的制约瓶颈。如果企业开店上百家,对计算机专业人才的需求就将是企业面临的巨大挑战之一。   抛开人力成本不说,一个企业要招到这么多的专业人才并且留住他们也是不可能的。所以,采用 C/S 结构软件必然会制约企业未来的发展。另外,大多数 C/S 结构的软件都是通过 ODBC 直接连到数据库的,安全性差不说,其用户数也是受限的。每个连到数据库的用户都会保持一个 ODBC 连接,都会一直占用中央服务器的资源,对中央服务器的要求非常高,使得用户扩充受到极大的限制。而 B/S 结构软件则不同,所有的用户都是通过一个 JDBC 连接缓冲池连接到数据库的,用户并不保持对数据库的连接,用户数基本上是无限的。   从以上的分析可以看出, B/S 结构的管理软件和 C/S 结构软件各有各的的优势。而从国外的发展趋势来看。目前,国外大型企业管理软件要么已经是 B/S 结构的,要么正在经历从 C/S 到 B/S 结构的转变。从国内诸多软件厂商积极投入开发 B/S 结构软件的趋势来看, B/S 结构的大型管理软件可能在将来的几年内占据管理软件领域的主导地位。 十、结语 通过此次课程设计我详细的了解了各种体系结构的风格和特点。特别是对 B/S 体系结构有了深入的学习和了解。知道了 B\S 结构的特点好优劣。我相信随 着时间和技术的发展。 B/S 结构将发挥更大的作用。 进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。在进行课程设计时遇到的问题通过向同学和老师请教最终解决了问题。完成了设计。也发现一些不足。
  • 热度 5
    2023-8-10 10:58
    2022 次阅读|
    0 个评论
    实验目的 本节视频的目的是学习TCP/IP协议的通信原理和Wed服务器的工作原理,实现搭建轻量级Web服务器。 官方公众号:创龙教仪 官方B站号:创龙教仪 官方网站:www.tronlongtech.com 实验原理硬件原理图 实验过程中使用的是网口。 WEB服务器 (WORLD WIDE WEB,环球信息网) 即万维网,主要功能是提供网上信息浏览服务。WWW 是 Internet 的多媒体信息查询工具,是 Internet 上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。正是因为有了WWW工具,才使得近年来 Internet 迅速发展,且用户数量飞速增长。 Web服务器是在运行在物理服务器上的一个程序,它永久地等待客户端(主要是浏览器,比如Chrome,Firefox等)发送请求。当收到请求之后,它会生成相应的响应并将其返回至客户端。Web服务器通过HTTP协议与客户端通信,因此也被称为HTTP服务器。 当我们在浏览器输入URL后,浏览器会先请求DNS服务器,获得请求站点的 IP 地址。然后发送一个HTTP Request(请求)给拥有该 IP 的主机,接着就会接收到服务器给我们的 HTTP Response(响应),浏览器经过渲染后,以一种较好的效果呈现给我们。这个过程中,正是Web服务器在幕后默默做贡献。 Web工作原理 Web服务器的工作原理并不复杂,一般可分成如下4个步骤: (1)建立连接 客户机通过TCP/IP协议建立到服务器的TCP连接。 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80。 Web浏览器向Web服务器发送请求命令一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。 (2)请求过程 客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档。 浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。 (3)应答过程 服务器向客户机发送HTTP协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“动态内容”,并将处理得到的数据返回给客户端。由客户端解释HTML文档,在客户端屏幕上渲染图形结果。 (4)关闭连接 Web服务器关闭TCP连接. 一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码:Connection:keep-alive,TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。 HTTP协议 (HyperText Transfer Protocol,超文本传输协议) HTTP协议是用于从WWW服务器传输超文本到本地浏览器的传送协议,是基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP是一个应用层协议,由请求和响应构成,永远都是客户端发起请求,服务器回送响应,是一个标准的客户端服务器模型。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。 HTTP是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。 LwIP协议栈 LwIP是一个轻量级的TCP/IP协议栈,可用于各种嵌入式的系统中。LwIP协议是一套用于嵌入式系统的开放源代码TCP/IP协议栈。LwIP含义是light weight(轻型)IP协议,在实现时保持了TCP协议的主要功能基础上减少对RAM的占用,一般它只需要几十K的RAM和40K左右的ROM就可以运行,这使LwIP协议栈很适合在低端嵌入式系统中使用。 LwIP协议栈的设计采用分层结构的思想,每一个协议都作为一个模块来实现,提供一些与其它协议的接口函数。所有的TCP/IP协议栈都在一个进程当中,这样TCP/IP协议栈就和操作系统内核分开了。而应用程序既可以是单独的进程也可以驻留在TCP/IP进程中,它们之间利用ICP机制进行通讯。如果应用程序是单独的线程可以通过操作系统的邮箱、消息队列等,与协议栈进程通讯。如果应用程序驻留在协议栈进程中,则应用程序可以通过内部回调函数和协议栈进程通讯。 EMAC (Ethernet Media Access Controller,以太网媒体访问控制器) 简单介绍集成在器件中的以太网媒体访问控制器(EMAC)和物理层(PHY)器件管理数据输入/输出(MDIO)模块的功能描述。 EMAC 模块用于在器件(device)和连接到同一网络的其他主机(host)之间搬移数据,遵从以太网协议。EMAC 控制从系统到 PHY 的包数据流。 MDIO 模块控制 PHY 配置以及状态监控。EMAC 和 MDIO 模块都是通过自定义接口连接到系统内核的,它允许高效率的数据发送和接收。这个自定义接口被称为 EMAC 控制模块,是 EMAC/MDIO 不可或缺的外设。 EMAC/MDIO 特点 EMAC/MDIO 具有以下特点: (1)同步 10/100 Mbps 操作。 (2)到物理层器件(PHY)的标准媒体独立接口(MII)或简化媒体独立接口(RMII)。 (3)EMAC 作为到器件内外存储空间的 DMA 主控 。 程序流程 操作现象硬件设备 本实验使用的硬件接口为网口,所需硬件为实验板、仿真器、网线、RS232 交叉串口母母线、USB转RS232串口线和电源。 硬件连接 (1)使用网线连接实验板的网口和路由器,程序默认是动态获取IP的。如果没有路由器,则使用网线连接实验板的网口和电脑的网口,请根据实验手册修改程序以及设置电脑的静态IP。 (2)使用 RS232 交叉串口母母线和 USB 转 RS232 串口线连接实验板的UART2串口和电脑的 USB口。 (3)连接仿真器和电脑的USB接口, (4)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。 软件操作 (1)先在设备管理器查看串口的端口号; (2)再设置串口调试工具,波特率设置为115200。 设置好串口调试工具后,在CCS里进行相关操作。 导入工程,选择Demo文件夹下的对应工程 编译工程 将CCS连接实验箱并加载程序 点击运行程序,串口终端会打印自动获取到的实验箱IP地址 在 Windows 开始菜单底部输入 cmd 进入控制台窗口,执行 ping 命令,确认实验箱的网络部分工作正常。 打开浏览器输入网址 http://192.168.0.116,就可以看到网址内容。 实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
  • 热度 20
    2012-7-24 16:54
    1280 次阅读|
    0 个评论
    视频地址:http://v.youku.com/v_show/id_XNDIzOTMxNjEy.html     基于WIZNET W5200以太网扩充包的启动开发板。   如果您有任何疑问,请直接留言或登录WIZnet官方网站:http://www.wiznettechnology.cn/ 或者来电:86-10-84539974(转166),QQ:2377211388, 邮箱:wiznetbj@wiznettechnology.com  联系人:Jerry ,谢谢! 公司微博是: http://weibo.com/wiznet2012 公司博客是:http://blog.csdn.net/WIZnet2012
  • 热度 23
    2012-6-1 10:36
    2027 次阅读|
    0 个评论
    DHOW-16LS是一款内含网页服务器的远程遥控网络控制开关。 用户只需要将网线插在路由器与设备之间,便可以使用手机/电脑通过浏览器控制设备。 设备可以单独控制16个电器,并且每个通道可以独立设置5组定时器,并且可以为定时器设置循环,定时起止时间等。 甚至还可以通过配置路由器可以在互联网上远程控制电器设备。 比如出门在外,不方便回家,但家里有什么电器需要让它工作,那么只需要登陆到易控网络开关器便可以轻松实现远程设备控制。 是您工作与居家的极好伴侣。   产品详情请查询深圳市晶通物控科技开发有限公司官方网站 http://www.jingtongact.cn
  • 热度 22
    2012-5-11 15:30
    1725 次阅读|
    0 个评论
    Before we plunge into the fray with reckless abandon, I have to confess that I spend a huge amount of time bouncing around the Internet looking at "stuff". For example, I generally have a bunch of writing projects in progress at any one time (articles, blogs, books...), so I'm always researching facts and figures and definitions and suchlike. I also have my hobby projects (Dioramas, Mosaics, Man versus Woman Meters...), for which I am constantly on the hunt for tips, tricks, techniques, parts, and materials. And then there are random topics that grab my attention, like my recent interest in Fuzzy Logic . Also, there are just so much interesting things on the Web – articles, and recipes, and book reviews, and... things in general... that I run across while on my travels. I'm sure things are much the same with you. The Web has become an indispensable tool. The only problem is keeping track of all the places you've been and the things you've seen. Of course you can always use your Web browser to bookmark Websites and Webpages of interest. I personally have hundreds and hundreds of bookmarks – so many, in fact, that it's a pain finding things. (You would not believe how many times I end up re-performing searches for things I already found days, hours, or even a few short minutes ago.) And yes, I know that you can create bookmark folders and organise things... but I never seem to get around to doing it. Another problem is that I have multiple computers at home and in my office, so a bookmark in one browser on one machine isn't available in a browser on another machine. Now, I have been vaguely aware that there are a variety of web-clipping applications running wild and free in the world. However, I haven't been sufficiently motivated to try one... until now... The thing is that I just received an email from the folks at Clipix ( www.clipix.com ). The full message is presented below for your delectation and delight. Suffice it to say that I was sufficiently intrigued to bounce over to their website to take a look, and I liked what I saw. I particularly like the way you can assign clips to different groups; also, the ways in which you can share things with other people if you wish. The bottom line is that I was sufficiently enthused to sign-up (it's Free, which is always a plus in my book) and install this little rascal. One point is that their instructions said that you should use the View menu to display your bookmark bar (if it wasn't already being displayed, of course). In my version of Firefox, however, I had to use the Firefox Options menu. The next thing I need to do is to work out how to install this on multiple machines such that they all see the same thing. Also, it just struck me that I don't know if this will work on my iPad; I hope it does – this is something else I will have to look into... Meanwhile, check out the full message from the folks at Clipex and see what you think: ————— The original message from Clipex is as follows————— How would you like to save ten hours a week? Ten more hours to hang out with your friends and family, spend time outside (especially as the weather gets warmer), and stalk on Facebook? Clipix is a free online and mobile tool that cuts down the time it takes to scour the internet for all the things you've come across and want to get back to – the cool pair of sunglasses you saw online the other day, that great article you've been meaning to read, that beach house you were thinking of renting, etc. This little video explains how it works. Although at first glance it might seem similar to other web-clipping applications out there, Clipix extends itself beyond pretty pictures and acts as more of a personal digital organiser for your life, keeping all of the stuff you email to yourself, stash in outlook folders, save onto your desktop, and put in your "favourite" book marks into one simple place. Below are some cool features: * Price Drop Alert – Clipix has a price drop alert function that lets parents select the price they are willing to pay for any clipped item, and notifies them via email when the product hits that price * File Uploads – Clipix users are not just restricted to items they find online, they can also upload documents from their desktop including photos, videos, Word Excel documents, and PDFs * Clip on the Go – Clipix is available in free iPhone and Android mobile app format to clip on the go and access Clipboards from anywhere * Privacy – Clipix users can elect to keep their Clipboards totally private OR share clipboards with only the people they choose. Although Clipix is social, it was created for people to use as a personal tool and share with people who care and not just share with anyone for the sake of sharing. 70% of daily clips are clipped to private Clipboards. * Syncboards – This is a shared Clipboard that is great for joint decision making and allows for users to organise collaboratively. Anyone with access to the board can add, delete and edit clips. * Copyright Protection – Clipix takes copyright seriously and watermarks each image that is uploaded to Clipix to ensure users' online safety when clipping content form the web and to protect image owners' copyrights. * International – available in 12 different languages to provide a native experience to millions of worldwide users. * URL Protection – All clips, even those re-clipped from other users, click back to the original source. Clipix takes privacy and personal content seriously, while helping you organise all the digital content that we all come across on a daily basis.  
相关资源
  • 所需E币: 0
    时间: 2024-3-5 11:46
    大小: 266.5KB
    上传者: 随遇而安1992
    本总结涵盖了软件测试的多个方面,包括登录、添加、查询、删除等基本功能测试,以及用户界面测试、控件测试等。
  • 所需E币: 0
    时间: 2024-1-5 14:07
    大小: 3.13KB
    Django是一个由Python编写的一个开放源代码的Web应用框架。Django是一个高级的PythonWeb框架,用于快速开发可维护和可扩展的Web应用程序。使用Django,只要很少的代码,Python的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的Web服务。第一步,安装PythonWindows下安装Python非常简单,去Python官方网站找到Python3的下载地址,根据你的系统选择32位或者64位的安装包,下载好后双击安装即可。第二步,安装django强烈推荐在虚拟环境下进行django的开发。虚拟环境是一种Python工具,使用它可以创建一个独立的Python环境第三步,virtualenv创建和管理虚拟环境virtualenv的使用非常简单,首先安装virtualenv,打开命令行工具,输入下面的命令即可安装第四步,Django框架的View视图展示机制Django框架采用了MTV设计模式,在工作机制上自然也有些特别之处,其中最显著的就是V视图(View)部分。请读者再看一下图2中的描述,MTV模式中的V视图(View)是不负责处理用户输入的,这一点就是MTV模式特殊之处。第五步,Django框架的用户操作流程Django框架设计的MTV模式也是基于传统的MVC模式的,本质上也是为了各组件之间保持松耦合关系,只是定义上有些许不同。MVC模式之所以能够成为Web框架最流行的设计标准,也是因为其比较完美地契合了用户的操作流程。MVC模式是软件工程中的一种通用的软件架构模式,同样也适用于Web应用程序。MVC将Web框架分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),并以一种插件式的、松耦合的方式连接在一起。第六步,Django框架的主要特点这里给大家介绍Django框架的主要特点,其他一些小优点,读者在学习过程中会慢慢体会:基于Python语言及MVC模式,具有开发快捷、低耦合、部署方便、可重用性高和维护成本低等显著特点。通过一个URL分发器模块进行URL分派,分发器使用正则表达式来匹配URL,支持开发人员采用自定义URL方式,且没有框架的特定限定,使用起来非常灵活。可以方便地生成各种表单模型,实现表单的有效性检验,且支持从自定义的模型实例生成相应的表单。具有强大且可扩展的模板语言,支持分隔设计、内容和Python代码,并且具有可继承性。以Python类的形式定义数据模型,通过ORM(对象关系映射)将模型与关系数据库进行连接,开发人员将得到一个非常容易使用的数据库API,同时也支持在Django框架中直接使用原始SQL语句。内置国际化系统,支持开发多种语言的Web网站。缓存系统采用与memcached、Redis等缓存系统联用的方式,提高了页面的加载速度。内置了一个可视化的、自动化管理员界面(AdminSite),其类似于一个CMS系统(内容管理系统),开发人员可以方便快捷地通过该界面进行人员管理和内容更新等操作。第七步,创建Django项目安装了Django之后,我们就可以使用Django的管理工具------>django-admin了我们创建一个名称为loginweb的Django项目,命令如下:#1激活虚拟环境cdD:\djangotestdjangoenv\Scripts\activate#2创建一个loginweb的项目django-adminstartprojectloginweb或者python-mdjangostartprojectloginweb一般一个项目包含多个app应用程序(当然,通用的app也可以在多个项目中使用)下面我们为loginweb项目,创建login#1激活虚拟环境cdD:\djangotestdjangoenv\Scripts\activate#2切到django项目中cdloginweb#3创建一个叫login的应用django-adminstartapplogin在com.example.emos.wx.config.shiro中创建ThreadLocalToken类。packagecom.example.emos.wx.config.shiro;importorg.springframework.stereotype.Component;@ComponentpublicclassThreadLocalToken{  privateThreadLocallocal=newThreadLocal();  publicvoidsetToken(Stringtoken){    local.set(token);  }  publicStringgetToken(){    return(String)local.get();  }  publicvoidclear(){    local.remove();  }}之前我们测试sayHello()方法的时候,因为客户端提交的参数不正确,所以后端系统向客户端返回了大量的异常内容。这里我们要对返回的异常内容做一下精简。在com.example.emos.wx.config中,创建ExceptionAdvice类。packagecom.example.emos.wx.config;importcom.example.emos.wx.exception.EmosException;importlombok.extern.slf4j.Slf4j;importorg.springframework.http.HttpStatus;importorg.springframework.web.bind.MethodArgumentNotValidException;importorg.springframework.web.bind.annotation.ExceptionHandler;importorg.springframework.web.bind.annotation.ResponseBody;importorg.springframework.web.bind.annotation.ResponseStatus;importorg.springframework.web.bind.annotation.RestControllerAdvice;@Slf4j@RestControllerAdvicepublicclassExceptionAdvice{  @ResponseBody  @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)  @ExceptionHandler(Exception.class)  publicStringvalidExceptionHandler(Exceptione){    log.error("执行异常",e);    if(einstanceofMethodArgumentNotValidException){      MethodArgumentNotValidExceptionexception=(MethodArgumentNotValidException)e;      //将错误信息返回给前台      returnexception.getBindingResult().getFieldError().getDefaultMessage();    }    elseif(einstanceofEmosException){      EmosExceptionexception=(EmosException)e;      returnexception.getMsg();    }    elseif(einstanceofUnauthorizedException){      return"你不具有相关权限";    }    else{      return"后端执行异常";    }  }}本文到处结束,感谢大家的阅读,有不足的地方大家多多指正!!
  • 所需E币: 0
    时间: 2023-5-12 11:02
    大小: 21.19MB
    精通CSS:高级web标准解决方案(第2版)-(图灵程序设计丛书)-[英]AndyBudd-SimonCollison-CameronMoll
  • 所需E币: 1
    时间: 2023-5-11 12:05
    大小: 100.91MB
    胜于言传:Web内容创作与设计的艺术(原书第2版)-(华章程序员书库)-[美]Janice(Ginny)Redish
  • 所需E币: 1
    时间: 2023-5-9 10:04
    大小: 58.72MB
    精通CSS:高级Web标准解决方案(第3版)-(图灵程序设计丛书)-[英]AndyBudd&[瑞典]EmilBjörklund
  • 所需E币: 1
    时间: 2023-5-6 12:10
    大小: 222.91MB
    Web安全攻防:渗透测试实战指南-徐焱-李文轩-王东亚
  • 所需E币: 1
    时间: 2023-4-25 14:52
    大小: 87.16MB
    Struts2Web开发学习实录-杨少敏-樊双灵
  • 所需E币: 1
    时间: 2023-4-26 11:34
    大小: 41.76MB
    WebGIS原理与应用开发
  • 所需E币: 1
    时间: 2023-4-24 10:25
    大小: 429.08KB
    上传者: 张红川
    基于单片机的无线嵌入式web服务器的研究.pdf
  • 所需E币: 2
    时间: 2023-4-20 09:54
    大小: 219.81MB
    黑客攻防技术宝典:Web实战篇-(第2版)-(图灵程序设计丛书)-[英]DafyddStuttard&MarcusPinto
  • 所需E币: 0
    时间: 2023-4-6 20:33
    大小: 21MB
    赢在用户-Web人物角色创建和应用实践指-steve-mulder-zivv-yarr
  • 所需E币: 1
    时间: 2023-4-6 20:42
    大小: 6.71MB
    ImprovingWebApplicationSecurity-ThreatsandCountermeasures
  • 所需E币: 0
    时间: 2023-4-6 20:49
    大小: 7.64MB
    (德)JavaWebServiceswithApacheAxis2
  • 所需E币: 1
    时间: 2023-4-7 16:46
    大小: 30.82MB
    白帽子讲Web安全-吴翰清
  • 所需E币: 1
    时间: 2023-4-10 11:48
    大小: 85.9MB
    白帽子讲Web安全(纪念版)-吴翰清
  • 所需E币: 1
    时间: 2023-4-10 12:10
    大小: 46.15MB
    Web前端黑客技术揭秘-钟晨鸣-徐少培
  • 所需E币: 1
    时间: 2023-3-29 16:46
    大小: 75.47MB
    Web安全测试-PacoHope-BenWaltber-著-傅鑫-译
  • 所需E币: 1
    时间: 2023-3-29 16:44
    大小: 271.99MB
    JavaScript&jQuery交互式Web前端开发-JonDuckett-清华大学出版社
  • 所需E币: 0
    时间: 2023-3-22 11:50
    大小: 696B
    上传者: 开心就很好了
    基于gin框架的GoWeb开发项目实战视频教程分享,提供配套的源码下载!基于Go语言和gin框架开发的个人博客系统,该项目可以帮助你的golang应用快速实现前端和后端系统。aiwen-gin-blog是一个基于go语言和gin框架开发的前端和后台管理系统,集成动态路由,日志,文件配置加载,鉴权等功能,让您把更多时间专注在业务开发上。 第1章学前准备第2章Web基础介绍第3章gin框架核心知识第4章Go操作MySQL数据库第5章Go操作Redis数据库第6章GoWeb项目案例实战
  • 所需E币: 1
    时间: 2023-3-28 20:53
    大小: 310.91KB
    上传者: 指的是在下
    基于Web服务复杂网络的服务社区构建方法.pdf