精华内容
下载资源
问答
  • Web应用程序的开发方法

    千次阅读 2017-06-23 10:28:48
    也称为万维网,它是一种基于超文本和HTTP、全球性、动态交互、跨平台分布式图形信息系统我想刚接触Web方面人士来说肯定是是一脸懵逼,我想大家阅读这篇Web应用程序开发步骤后,肯定会对大家在Web应用程序...

           web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统我想刚接触Web方面的人士来说肯定是是一脸懵逼,我想大家阅读这篇Web应用程序开发步骤后,肯定会对大家在Web应用程序方面有所提升。

      如今已进入了高速发展的互联网时代,各种互联网的Web应用程序如雨后春笋般出现。

      那么作为一名Web开发人员,怎样去开发一款优秀的Web应用程序呢?

      这个问题没有一个简单的答案,甚至那些教育机构都未必能清楚的知道。所以,像大多数在这个领域里的web开发人员一样,我们只是通过去做, 去实验才学会了这些。没有人告诉我们如何去做,我们从给自己做点什么东西开始,学会如何开发web应用程序是在这个过程中的一个副产品。这是学习任何语言的一 个非常有效的方法。

      Web应用程序与网站之间的区别

      首先,我要说明,开发一个web应用程序跟开发一个网站是不一样的。虽然在总体上有很大相似之处,但开发它们所需要的时间有巨大的差别。那究竟web应用程序和网站有什么不同呢?通常,维基百科能帮助我们解释这个问题,让我们来看看维基百科是如何定义 应用软件的:

      应用软件,通常也被称作应用,指的是专门为帮助用户去执行一个或多个相关特定任务而设计的计算机软件。企业软件,会计软件,办公套件,绘图软件,媒体播放器等都属于这种软件。

      跟应用软件相对照的是系统软件和中间件,它们管理计算机效能,管理如何跟计算机集成,但通常这些工作并不会直接反映到使用户受益的任务执行上。举个例子,一个不是很恰当的实体类比,应用软件跟系统软件之间的关系就好比一个电灯泡和一个发电厂之间的关系,发电厂(系统软件)只是产生电能,它自己没有任 何真正的用途,除非利用一个电灯泡这样的应用工具才能为用户提供服务。

    Web应用程序的开发方法_web_开发_框架_课课家教育

    Web应用程序的开发过程

      现在特征已经弄清楚了,我们就可以开始定义开发一个web应用程序的整个过程了。当然,这依赖于工程的大小,过程中的某些步骤可能很小,在你的脑海 里就能完成这种工作,但把事情整个的了解一下总是有好处的。同时还有一点很重要的你要明白,这篇文章并不会对每个步骤进行深层次的描述。

      步骤一:分析

      开发一个web应用的第一步是分析你的需求。你此时应该定义出一个尽量周全的你的应用应该提供的功能清单。如果是你为一个客户做这些工作,你需要明白他们想要什么(要确保你们对方都知道对方在说些什么)。从你们的讨论中,你能总结出需求和软件规格。你即使是为自己开发,我也建议你把希望这个web应用能够做的功能写下来。

      步骤二:设计

      一旦你弄清楚了这个web应用需要做哪些事情,你就可以开始设计了。这个步骤通常会反反复复进行很多次,每一次都把设计细化一些。你第一要做的是画出页面流程图(画在纸上,或使用软件工具,凭各自所好吧。我喜欢用纸,这样我可以做更快速的改变)。页面流程图通常是很抽象的黑白绘画,画出你将要实现的web应用的样子(你可以加一些色彩,但尽量保持简单)。

    页面流程图通常是很抽象的黑白绘画,画出你将要实现的web应用的样子(你可以加一些色彩,但尽量保持简单)。

     

      这个步骤能够让你知道你的应用最终会是个什么样子。跟37signals倡导的相反,我建议使用一些词语描述,适度细化。当我想到一个很好的想法 时,或想 到事情该如何做时,我会把它标注到纸上(例如,当点击这个按钮时应该使另外一个元素改变或隐藏,我会把这写在流程图上)。

      当你对做出的草图满意后,你可以开始制作实体模型了。

      实体模型仍然是些图案,但有色彩和细节。最终的实体模型看起来应该像你将要实现的web应用的一个截屏图。如果你为一个客户开发,他会看看这些东西,并给你他的认可。然而,很多人都喜欢跳过这一步(大多数都是非设计人员),他们喜欢直接奔向网页原型。

      原型是用HTML开发出来,使用CSS渲染(有时也是有Javascript)。页面布局要做出来,链接能够点,颜色,字体,字体大小要设定好(如 果你做了实体模型,这个会很容易)。这一步非常的重要,因为这里所有的东西都能用于你最终的应用中。如果允许的话,在你的原型上做一些可用性测试,从长期的效果来看,这能使你避免大量的失误。

      在这个步骤的最后,你基本上就知道了你的web应用是如何组织到一起的了。登录页面有些什么,用户如何从主页转向到各个页面。

      步骤三:实现 选择一个框架

    现在我们已经知道了要去开发什么东西,那就要把它做出来。这一部分的工作很多,你大部分的时间都要花在这个上面。

         现在我们已经知道了要去开发什么东西,那就要把它做出来。这一部分的工作很多,你大部分的时间都要花在这个上面。你第一个要做的决定是如何着手,采用什么样的技术,什么框架。你有很多选择的余地,你需要选出一个适合你的。下面是一个最常用的框架的列表:

      ASP.NET

      php 上的任何一个流程的框架

      Python with Django

      Ruby on Rails

      没有一个明确的标准说哪个框架最好。它们都各有不同,每个都有自己的长处。最重要的是你要知道它们任何一个都能让你开发出好用的web应用。

      开发

      一旦你知道了如何去开发,那就要甩开臂膀开干了。这个开发工作可以看作有很多块,但说到底,这都是标准的编程活动了。在后台,你要创建类,对象,服 务,过程,以及持久层来把这些对象保存到数据库中。后台是整个应用的核心,对任何应用来说,它跟普通的编程没有什么区别。接着是前台的开发,你现在编写的 代码才是真正给用户使用的操作界面。你把后台的程序和原型界面集成到一起,把系统各部分集成到一起。你还可以把你在开发过程中想到的一些很炫的小功能用 JavaScript实现。

      再说一次,有很多种途径可以实现后台程序。建议你去读一读跟你选择的框架相关的资料,弄清楚如何实现这一部分的工作。通常,这些知识会跟面向对象编程有关,但有些框架正在慢慢的向领域驱动设计发展。

      步骤四:打磨抛光

      现在应用程序已经开发出来,各个独立的模块也集成到了一起。你需要通过测试来确保你在步骤一中定义的需求和软件规格是否被实现(这个问题在你开发的整个过程中都要记在脑中)。你要确保那些愚蠢的用户不能通过试图做一些你还没有实现的操作而把你的应用弄坏(参考 白盒 和 黑盒测试)。你同时还要确保你的程序能够在各种浏览器里(希望不是IE6)都能正确的运行。

      步骤五:发布和后续工作

      这最后一步(但不是就此完结)是发布你的应用,让用户能够真正使用它(如果这个应用是个公众开发的应用,别忘了做新闻宣传)。如果你愿意,先发布一 个Beta版,这样只有一小部分用户能够发现你的应用里的大问题(因为你的程序里肯定会有bug),他们会帮助你改进程序的质量。不要忙着增加功能,要专注于把你目前的程序变的稳固。

      当经过了beta阶段,你的程序已经变得十分的稳固,听取用户反馈的意见,自己试用一下自己的应用,你可以开始思考如何使应用变的更好。找出不和谐的地方,消除掉。以后每次的迭代都要经过上面所说的五个步骤,但就像我最初说的,你现在已经有了一个可以运行的应用程序,你很容易直接在心里完成这些步骤,直接奔向在代码里测试你的功能。

      后续

         要成为高产、高效的Web开发者,这需要我们做很多工作,来提高我们的工作方式,可以简化你的Web开发流程,使开发的每一个环节快速、流畅。

      要成为高产、高效的Web开发者,这需要我们做很多工作,来提高我们的工作方式,以及改善我们的劳动成果。

         恭喜,你已经自豪的成为一个web应用程序的作者了。

      web架构优点:

      浏览器/服务器架构(Browser/Server,简称B/S)能够很好地应用在广域网上,成为越来越多的企业的选择。浏览器/服务器架构相对于其他几种应用程序体系结构,有如下3方面的优点:

      (1)这种架构采用Internet上标准的通信协议(通常是TCP/IP协议)作为客户机同服务器通信的协议。

      这样可以使位于Internet任意位置的人都能够正常访问服务器。对于服务器来说,通过相应的Web服务和数据库服务可以对数据进行处理。对外采用标准的通信协议,以便共享数据。

      (2)在服务器上对数据进行处理,就处理的结果生成网页,以方便客户端直接下载。

      (3)在客户机上对数据的处理被进一步简化,将浏览器作为客户端的应用程序,以实现对数据的显示。

      不再需要为客户端单独编写和安装其他类型的应用程序。这样,在客户端只需要安装一套内置浏览器的操作系统,如Window98或Windows2000或直接安装一套浏览器,就可以实现服务器上数据的访问。而浏览器是计算机的标准设备。

      小结:我仿佛并没有考虑自己是否感兴趣,只是觉得只要努力,便能做到。道理我也懂,先把目前的工作搞好,既然从事的是软件,就老老实实把软件先做好,以上为Web应用程序的开发方法。

    展开全文
  • 这就意味着,例如,你可以调用一个服务器端脚本来从一个数据库中以XML方式检索数据,把数据发送到存储在一个数据库服务器脚本,或者简单地装载一个XML文件以填充你的Web站点而不需刷新该页面。然而,在这项新技术...
  • Web应用程序开发课程总结

    千次阅读 2020-06-06 20:36:24
    Web应用程序的定义: 顾名思义,Web应用是运行在Web上的应用程序。...Web应用程序的开发方法及应用范围: Java Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多

    Web应用程序的定义:

    顾名思义,Web应用是运行在Web上的应用程序。但是反过来,运行在Web上的应用程序都是Web应用吗?答案是否定的。这里所说的Web应用是指运行在网络上,以浏览器作为通用客户端的应用程序,在许多地方又被称为B/S(Browser/Server,浏览器-服务器)模式的应用。例如我们身边的教务系统,选课系统,都是基于浏览器进行访问的Web应用程序。

    Web应用程序的开发方法及应用范围:

    Java

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

    Python

    Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。目前Python典型的Web开发框架有Django、Flask、Tornado等。

    ASP

    ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。当服务器收到对ASP文件的请求时,它会处理包含在用于构建发送给浏览器的HTML(Hyper Text Markup Language,超文本置标语言)网页文件中的服务器端脚本代码。除服务器端脚本代码外,ASP文件也可以包含文本、HTML(包括相关的客户端脚本)和com组件调用。ASP简单、易于维护 , 是小型页面应用程序的选择,在使用DCOM (Distributed Component Object Model)和 MTS(Microsoft Transaction Server)的情况下,ASP甚至可以实现中等规模的企业应用程序。

    JSP

    我们这学期采用的就是JSP做前端模板,Java作为后端的开发形式。JSP(全称Java Server Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。

    PHP

    PHP原始为Personal Home Page的缩写,已经正式更名为 “PHP: Hypertext Preprocessor”,即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法,利于学习,使用广泛,主要适用于Web开发领域。PHP 语言作为当今最热门的网站程序开发语言,它具有成本低、速度快、可移植性好、 内置丰富的函数库等优点,因此被越来越多的企业应用于网站开发中。但随着互联网的不断更新换代,PHP语言也出现了不少问题。 根据动态网站要求,PHP语言作为一种语言程序,其专用性逐渐在应用过程中显现,其技术水平的优劣与否将直接影响网站的运行效率。其特点是具有公开的源代码, 在程序设计上与通用型语言,如C语言相似性较高,因此在操作过程中简单易懂,可操作性强。同时,PHP语言具有较高的数据传送处理水平和输出水平,可以广泛应用在Windows系统及各类Web服务器中。如果数据量较大,PHP语言还可以拓宽链接面,与各种数据库相连,缓解数据存储、检索及维护压力。随着技术的发展,PHP 语言搜索引擎还可以量体裁衣,实行个性化服务,如根据客户的喜好进行分类收集储存,极大提高了数据运行效率。

    学习心得

    这学期,基于一个电商网站的web应用程序。我开始了我的web应用程序开发之路,接触到了很多的新知识,当然也有对很多旧知识的复用。比如Java就是,新一次的学习,不光学习到了新的知识,对Java的理解仿佛也更加深刻了,这可能就是老师督促我们反复学习的原因所在。前端采用JSP模板,利用JSP这门脚本语言,动态的内嵌Java代码,形成了前端页面。当然,也要对CSS,HTML的运用得心应手。否则是出不来漂亮的页面的。还有Servlet,过滤器,监听,EL表达式等等,需要有自己的理解才能用的得心应手。当然,合理的开发模式也是必不可少的,我采用的就是MVC模式。将后端分成三层,合理分工,各司其职。做到程序的低耦合性,提高我们代码的健壮性。下面写一下自己的一点知识理解。

    MVC开发模式

    Java的开发模式也是历经周折,几次转变,才有了现在的三层架构。在最开始的时候,单纯的只有一个Servlet模块来作为衔接数据库和前端的程序。后来代码逻辑的复杂,使得有了JavaEE Model1版本,分成了JSP(C和V)和JavaBean(M),由JavaBean来和数据库交互再交给JSP。再后来不得不将JSP分开,分成了Servlet(C)、JSP(V)和JavaBean(M)。这样就有了最开始的MVC模型。M(Model,模型层):负责数据的操作,数据库的访问,数据的封装。也就是我们的JavaBean。V(视图层,View):负责生成视图的内容,和用户进行交互。也就是我们的JSP。C(Controller,控制器层):负责调度M和V,进行程序的控制。也即是我们的Servlet。再后来对数据封装的业务逻辑不断复杂,为了降低耦合度,我们又将JavaBean进行了拆分,分成了DAO持久层(负责进行数据库访问,也称Repository)和Service(负责数据的封装)两层,此时的JavaBean只是作为实体类来封装对象,在层与层之间产生作用。也就是我们现在使用的流水线式开发模式,各司其职,互不干扰。画了一幅图可以更好地加深理解。20200504181813

    Servlet

    浏览器内核中有通信模块,来和我们的服务器中的通信模块首先建立连接。当用户产生操作后,通信模块生成请求数据包,由浏览器发送给服务器,服务器收到后解析数据包,写入request,创建Servlet,由Servlet来读取request。经过Servlet的逻辑处理后,写入response,交由服务器通信模块来读取response,读取成功后会销毁request对象和response对象,并且生成响应数据包。发送给浏览器,浏览器解析响应数据包后,展示给用户。这就是完成的从用户产生操作到和用户产生交互的完整过程。

    其中Servlet的内部及其发展是这样的:

    • 为了保证服务器模块和开发者提供的代码判断能够正确的配合到一起,Sun公司设计了Servlet接口。
    • 其中init(ServletConfig)方法:当一个Servlet对象被创建后,我们的服务器,会马上调用该对象的init方法,实现初始化的逻辑。我们如果希望哪些逻辑希望在Servlet对象在被创建后立即执行,可以放入init方法。
    • destroy()方法:当服务器准备销毁一个Servlet对象之前,会主动调用该对象的destroy方法。我们如果希望哪些逻辑在Servlet对象销毁之前调用,可以放入destroy方法内。
    • service()方法:当服务器收到一份Servlet来响应用户的请求时,会调用该Servlet的service方法。处理用户的请求的逻辑应该放入service方法中。
    • init方法,destroy方法,service方法在一个Servlet的生命周期中分别会被调用1次,1次,多次。
    • 还有getServletInfo()方法和ServletConfig()方法目前的开发中一般不会应用到。
    • 并且,在实际开发中。我们一般仅仅只需要写service方法中的逻辑。
    • 因此,Sun公司对此重新定义了GenericServlet抽象类,该类实现了Servlet接口,和其他四个方法的空实现。我们现在的实际开发中,只需要继承GenericServlet抽象类即可。
    • 但是,浏览器访问服务器存在HTTP协议和HTTPS协议,GenericServlet是面向两种协议的协议,没有对HTTP协议的特殊支持。
    • 所以,Sun公司又开发了面向HTTP协议的HTTPServlet,继承了GenericServlet,并提供了很多处理HTTP协议请求的
    展开全文
  • Web应用程序开发方法研究

    千次阅读 2012-09-07 15:25:16
    Web应用程序开发方法研究   摘要:如今已进入了web2.0高速发展网络时代,各种基于互联网的Web应用程序如雨后春笋般出现。近几年,Web开发技术层出不穷,日趋成熟。本文介绍了Web技术前世今生,对计算机科学...

    Web应用程序开发方法研究

     

    摘要:如今已进入了web2.0高速发展的网络时代,各种基于互联网的Web应用程序如雨后春笋般出现。近几年,Web开发技术层出不穷,日趋成熟。本文介绍了Web技术的前世今生,对计算机科学前辈们孕育的软件设计模式、JavaEE平台下的流行开发框架进行了分析。总结了Web应用程序开发的一般步骤,提出了将软件复用技术,经典设计模式、开源框架合理应用于程序开发以达到高效开发大型Web项目的思路。

    关键词: Web应用程序  软件复用   设计模式    MVC   

     

    一、Web应用程序概述

        Web应用程序首先是“应用程序”,它和用标准的程序语言,如C、C++等编写出来的程序没有什么本质上的不同。然而Web应用程序又有自己独特的地方,就是它是基于Web的,而不是采用传统方法运行的。换句话说,它是典型的浏览器/服务器架构的产物。纵观历史,Web技术经历了以下几个发展阶段。

     客户端技术

    1、用超文本技术(HTML)实现信息与信息的连接。用统一资源定位技术(URI)实现全球信息的精确定位;用新的应用层协议(HTTP)实现分布式的信息共享。2、JavaApplets和JavaScript语言随心所欲地丰富HTML页面的功能。

    3、真正让HTML页面又酷又炫、动感无限的CSS(Cascading Style Sheets)和DHTML技术。

     服务器端技术:

     1、CGI(CommonGateway Interface)技术。CGI技术允许服务端的应用程序根据客户端的请求,动态生成HTML页面,使客户端和服务端的动态信息交换成为了可能。早期的CGI程序大多是编译后的可执行程序,其编程语言可以是C、C++、Pascal等任何通用的程序设计语言。后来的Perl语言结合了C语言的高效以及sh、awk等脚本语言的便捷,很快,Perl在CGI编程领域的风头就盖过了它的前辈C语言。随后,Python等著名的脚本语言也陆续加入了CGI编程语言的行列[9][13]

     2、专用于Web服务端编程的PHP(Personal Home Page Tools)语言。PHP语言将HTML代码和PHP指令合成为完整的服务端动态页面,Web应用的开发可以用一种更加简便、快捷的方式实现动态Web功能。

    3、Microsoft借鉴PHP的思想,在其Web服务器IIS 3.0中引入了ASP技术。ASP使用的脚本语言是我们熟悉的VBScript和JavaScript。

    4、Servlet技术问世,JSP技术诞生。Servlet和JSP的组合(还可以加上JavaBean技术)让Java开发者同时拥有了类似CGI程序的集中处理功能和类似PHP的HTML嵌入功能,此外,Java的运行时编译技术也大大提高了Servlet和JSP的执行效率[15][16]

    两种重要的企业开发平台:

      Web服务端开发技术的完善使开发复杂的Web应用成为了可能。两个最重要的企业级开发平台——J2EE和.NET在2000年前后分别诞生于Java和Windows阵营,它们随即就在企业级Web开发领域展开了你死我活的拼争。平台针锋相对的竞争关系促使了Web开发技术以前所未有的速度提高和跃进。J2EE是纯粹基于Java的解决方案,J2EE体系及相关的软件产品已经成为了Web服务端开发的一个强有力的支撑环境。和J2EE不同的是,Microsoft的.NET平台是一个强调多语言间交互的通用运行环境。ASP.NET超越了ASP的局限,可以使用VB.NET、C#等编译型语言,支持WebForm、.NET Server Control、ADO.NET等高级特性。可以说.NET平台中的ASP.NET是Web开发技术在Windows平台上的一个集大成者。

    XML语言及相关技术:

       XML语言对信息的格式和表达方法做了最大程度的规范,应用软件可以按照统一的方式处理所有XML信息。这样一来,信息在整个Web世界里的共享和交换就有了技术上的保障。HTML语言关心的是信息的表现形式,而XML语言关心的是信息本身的格式和数据内容。从这个意义上说,XML语言不但可以将客户端的信息展现技术提高到一个新的层次,而且可以显著提高服务端的信息获取、生成、发布和共享能力。

       可以预见的是,在未来的几年里,还会有许多新的开发技术或开发平台出现。从静态技术到动态技术,从开发平台到应用模型,从传统Web到语义化Web……为了让更多的人获得更有价值的信息服务,Web开发者们也许还会经历一次又一次的技术浪潮,还会面临更为严峻的技术挑战。

     

    二、基于JavaEE平台的Web开发技术

    在基于JavaEE阵营的web应用开发过程中,JSP/Servlet是主要的实现技术。但是JSP并没有很好地实现业务逻辑与用户界面的分离,符合MVC设计模式的Struts框架很好地解决了这一问题。这里首先对MVC设计模式进行概要介绍,然后对Struts、Hibernate等框架应用的主要思想进行详细的描述。

     

    1、MVC设计模式

    MVC(ModeI—View—Controller),即把一个应用按照Model,View,Controller的方式进行分离,这样一个应用被分成三个层一模型层、视图层、

    控制层,如图1所示:

     

     

     

     

     

     

     

     

     

     

     

     

     


    (1)视图层

    视图(View)代表用户交互界面,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理以及用户的请求,而不包括对视图上的业务流程的处理。

    (2)模型层

    模型(Model)就是业务流程/状态的处理以及业务规则的制定。模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计是MVC最主要的核心。(3)控制层

        控制(Controller)可以从用户接收请求,将模型与视图匹配在一起.共同完成用户的请求,可将其视为一个分发器.控制层并不做任何的数据处理。MVC设计模式达到了分而治之的目的,但是在具体实现上并不是千篇一律。比如我们熟悉的Struts框架只是其中的一种实现[13]

     

    2、流行Web开发框架介绍

    软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。框架,即framework,其实就是某种应用的半成品,把不同应用程序中有共性的一些东西抽取出来,做成一个半成品程序,这样的半成品就是所谓的程序框架。这样每次开发就不用白手起家,而是可以在这个基础上开始搭建。

    使用框架的最大好处:减少重复开发工作量、缩短开发时间、降低开发成本。同时还有其它的好处,如:使程序设计更合理、程序运行更稳定等。基于这些原因,基本上现在在开发中,都会选用某些合适的开发框架,来帮助快速高效的开发应用系统。

     常见的JAVA框架:

    (1)Struts框架

    Struts是一种基于Java的技术。web应用程序开发人员通过Struts即可充分利用面向对象设计、代码重用以及“编写一次、到处运行”的优点,它是使用Servlet和JSP技术的一种MVC实现。Struts本质上是一款开源软件。Struts的作用是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlet和JSP的优点来建立可扩展的应用,Struts是一个不错的选择[5]

    (2)Spring框架

    Spring 也表示是一个开源框架,是为了解决企业应用程序开发复杂性由Rod Johnson创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益[6]

    (3)Hibernate框架

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任[5]

    (4)SSH框架

    SSH为struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring完成业务逻辑[5]

     

    三、Web应用软件复用性的探讨

    从上面提到的开发框架产生的背景中可看出,随着软件规模的不断扩大,其复杂度将不断提高。随着时间的推进,技术的进步,开发者们从其他工业领域借鉴的经验中认识到只有实行软件工业化生产.才能满足日益增长的软件需求。同时不断提出各种技术、理论和方法来开发软件,希望以最小的人力、物力和财力资源来获得更大的软件生产规模以及更可靠的软件质量[1]

    (1)基于构件的软件复用

    在众多的软件复用开发方法中,基于构件的软件开发方法是一条有效实际的软件复用途径。所谓构件是指系统中可以明确辨识的构成成份,软件构件是系统中具有一定意义的独立构成成份。

    构件应具备的基本特征:(1)复用:复用是构件最基本的性质。构件的设计必须满足能在新的应用项目中使用;(2)封装:是对外界隐藏构件的设计和实现细节,仅通过接口与外界交互,可以保证构件功能复用的完整性和构件开发及交互的独立性;(3)组装:构件可以通过组装形成新的构件或系统,组装是构件复用的手段;(4)粒度:构件是有大小的,与领域相关的构件粒度大;(5)层次:构件可以按层次进行划分,企业级应用系统的复杂逻辑可以通过分层来解决[2]

    开发某个应用时,在设计各个模块、类等时就要注入软件重用的思想,因为在软件设计分析阶段的软件复用更有通用性和重用性。这样就能设计出重用性相对较高的复用构件。并方便构件库的设计.在以后进行类似系统开发时,可以根据需求从构件库中选取合适构件直接加以复用,而不用重新设计开发。在构件库中查找不到的情况下,按照软件复用的思想设计新的复用构件,并加以存储[1]

     (2)基于范式抽象的软件复用

    所谓范式就是抽象的解决方案模板,它可在不同具体项目中使用。范式抽象就是在此基础上提出的对范式的设计方法。针对不同的问题域,就应该有与之对应的设计方法,这样可以使范式的设计达到很高的重用性。针对面向对象分析阶段具体现状,总结出下列范式抽象方法[4]

    (1)关系抽象 

    针对具体的项目,会分析出大量的关系模型。例如在学校排课表系统中,需要定义教师类,它包括教师姓名、性别、职称等有关教师的基本信息,同时,为了便于教师很快得出自己的上课表,还需要定义一个与教师对应的教师课表类,这个类显示了一周中教师的课程安排情况;在网上购物系统中,需要定义一个购物者类,包括了购物者的相关信息,同时为了得到购物者所购的物品,还需定义一个购物车类,该类描述了购物者与所购买的物品的对应关系。这两个系统的具体业务是不同的,但教师类与教师课表类、购物者类与购物车类的关系却是基本相同的,都是一个实体对另一个实体的拥有关系,同样,所进行的操作也基本相同,诸如都涉及到对所拥有实体的查询操作等。因此可将这种关系抽象出来,定义为拥有关系,然后在此关系的基础上定义相应的操作。这种关系就可以以范式的形式保存起来,在不同的项目中都可重用这种范式。同样,还可抽象出许多其他的关系范式,如实体——内容关系,上下级关系等。这些关系都是不依赖于具体的项目和业务的,可重复使用,只是在针对具体的业务时,在相关属性和方法上稍作修改就可以了[3]

    (2)相似对象抽象 

    在不同项目的OOA阶段,还会分析出大量的相似对象或类,例如用户、用户组、角色、权限等在所有涉及到权限管理的系统中都会出现这类对象;在一些相同领域的项目中,由于涉及的领域的标准化,有些对象的相似性以及相同的机率会更大。对于这些相似程度如此大的对象来说,由于其在项目开发中的相对独立性,把这些对象模型以范式的形式保存起来会使分析的结果得到更大的重用[3]

    按照上述思想进行的范式抽象称为相似对象抽象,这种抽象依据的是分析阶段的对象模型,这种对象模型具有独立的、高度的相似性,抽象出来的范式可称为对象范式。这种范式与具体项目之间的相似可称为表面相似性。表面相似越接近,范式的重用性就越大。

     

    四、浅谈软件设计模式

        首先引出模式的概念:对于某领域内的专家知识和成功经验的文档记录以及总结,这样的经验在特定的环境下对于某类问题具有广泛的适用性,并且模式定义了一组和成功经验以及问题解法相关联的词汇[8]。在辩证法的角度来看:模式是广义化的并可重复使用的人类经验总结,从这一角度来看,软件工程领域的软件重用概念与模式的理论是相通的。软件设计模式其实就是“程序员进行面向对象代码重用时的一种技术手段,进而成为程序员之间、各项工程之间的通讯手段”。软件设计模式属于在更高层次上对程序代码、程序流程图的抽象,是对软件编程思路、软件设计流程的另一种表述。随着计算机科学技术发展,前辈们多年来的智慧结晶创造出了一些经典的设计模式。如创建型的单件模式、工厂模式,结构型的适配器模式、外观模式,行为型的迭代器模式、命令模式、状态模式、解释器模式等。软件设计模式在软件的发展过程中起到了里程碑的作用,促进了软件质量,提高了软件可靠性。更为重要的是,它提高了软件的可读性,为软

    件设计师们进行软件设计理念的交流提供了平台。同时它为软件设计师们开辟了一条通往其他领域优秀理念的大路,相信会有更多在其他行业广泛应用的理念会应用于软件设计领域,从而产生更多的软件设计模式。软件设计模式的出现是必然的,它反映了人类思维活动的规律,反映了各学科之间存在着必然的联系;软件设计活动同样是人类智慧的结晶,多种软件模式的产生正是其他学科领域的词汇移植的结果。但是模式毕竟只是模式,实用高效才是硬道理,具体实践中还要视实际情况灵活变通[7][8]

     

    五、Web应用程序的开发一般过程

    不管是用什么平台,什么技术,开发每个Web应用程序都有其共同的一些工作。技术、平台要根据客户要求、项目情况而定,关键是开发程序的整体思想、解决方案。笔者总结出如下通俗易懂的步骤。

    步骤(1):分析

    开发一个web应用的第一步是分析客户的需求。此时应该

    定义出一个尽量周全的该应用应该提供的功能清单。开发者需要明白客户想要什么(和客户沟通时要确保你们对方都知道对方在说些什么)。从与客户的交流讨论中总结出需求和软件规格。

    步骤(2):设计

    一旦弄清楚了这个Web应用需要做哪些事情,就可以开始设计了。可以结合一些经典的设计模式,将其灵活运用。这个步骤通常会反反复复进行很多次,每一次都把设计细化一些。第一要做的是画出页面流程图。页面流程图通常是很抽象的黑白绘画,画出将要实现的web应用的样子(可以加一些色彩,但尽量保持简单)。当你对做出的草图满意后,你可以开始制作实体模型了。实体模型仍然是些图案,但有色彩和细节。最终的实体模型看起来应该像你将要实现的Web应用的一个截屏图。不要忘记及时与客户交流沟通,他会看看这些东西,并给予他的认可。

    步骤(3):实现、选择一个框架

    现在已经知道了要去开发什么东西,那就要把它做出来。这一部分的工作很多,大部分的时间都要花在这个上面。第一个要做的决定是如何着手,采用什么样的技术,什么框架。这里有很多选择的余地,开发人员需要选出一个适合自己的。下面是一些常用的Web技术列表:

       ·ASP.NET

       ·PHP

       ·JSP

       ·Ruby on Rails

       ·Struts

     

    没有一个明确的标准说哪个框架最好。它们都各有不同,每个都有自己的长处。最重要的是要知道它们任何一个都能让你开发出好用的web应用。

    步骤(4):开发

    一 旦知道了如何去开发,那就要甩开臂膀开发了。开发工作可以看作有很多块,但说到底,这都是标准的编程活动了。在后台,要创建类,对象,服务,过程,以及持久层来把这些对象保存到数据库中。后台是整个应用的核心,对任何应用来说,它跟普通的编程没有什么区别。接着是前台的开发,你现在编写的代码才是真正给用户使用的操作界面。你把后台的程序和原型界面集成到一起,把系统各部分集成到一起。你还可以把你在开发过程中想到的一些很炫的小功能用JavaScript实现。

    步骤(5):逐步完善

    现在应用程序已经开发出来,各个独立的模块也集成到了一起。开发者需要通过测试来确保在步骤一中定义的需求和软件规格是否被实现。要确保用户不能通过试图做一些你还没有实现的操作而把你的应用弄坏(参考白盒和黑盒试)。同时还要确保你的程序能够在各种浏览器里都能正确的运行。可以做一些小的调整,改进应用程序给人的感觉,让它趋于完美。

    步骤(6):发布和后续工作

    这是最后一步即发布你的应用,让用户能够真正使用它(如果这个应用是个公众开发的应用,别忘了做新闻宣传)。使用者会帮助你改进程序的质量。不要忙着增加功能,要专注于把目前的程序变的稳固。听取用户反馈的意见,思考如何使应用变的更好。找出不和谐的地方,消除掉。以后每次的迭代都要经过上面所说的六个步骤。至此,一个Web应用程序开发完成。

    步骤(7):小结

    完成项目的交付后可以全面地总结此次开发的收获,有哪些地方做的好的要继续保持,哪些地方欠缺的以后改进。写成相应的文档,保存相应的代码,留着日后参考,免得每次做项目从零开始,减少重复劳动。

    六、总结

        本文在参阅大量资料的基础上对Web应用程序开发进行了分析总结。从Web应用程序的发展讲起,介绍了计算机前辈们的软件设计思想、框架。随着当前软件项目复杂度的提升,怎样快速高效即“多、快、好、省”地开发Web应用程序成为人们关心的话题。笔者尝试将软件复用技术、设计模式、主流框架灵活运用于实际的Web项目开发,以构建高效的开发方法。

    参考文献:

    [1] 董跃华,马亚飞.软件复用在综合教务信息管理系统中的探索[J].江西理工大学学报,2011,32(3):26-29.

    [2] 江龙强,汪海涛.基于构件的软件复用技术研究及在 MIS中的应用[J].微型机与应用,2011,30(17):16-18.

    [3] 肖振南,陈纪铭.浅析软件复用技术的应用[J].电脑知识与技术,2011,7(21):5163-5164.

    [4] 熊风光.基于构件的软件复用技术的研究[D].山西:中北大学,2005.

    [5] 百度百科. http://baike.baidu.com/view/25603.htm

    [6] 维基百科. http://zh.wikipedia.org/wiki/Spring

    [7] 阎宏.JAVA与模式[M].北京:电子工业出版社,2002.

    [8] 王越超,姚娱.探讨软件设计模式背后的科学方法与科学哲学[J]. 广州城市职业学院学报,2010,4(1):45-49.

    [9] 徐长盛,戴超,谢立.一种快速开发Web应用程序方法的研究[J]. 计算机工程与设计,2004,6(7):25-29.

    [10] 景晓玺,葛玮,郝克刚. 基于JMS的企业即时通讯系统的设计与实现[J]. 计算机应用与软件,2009,26(3):167-169.

    [11] 徐晶,许炜.消息中间件综述[J].计算机工程,2005,31(16):73-76.

    [12] 余童兰,张娟,何杰[J].电脑知识与技术,2010,6(25):7049-7051.

    [13] 孙卫琴.Java网络编程精解[M].北京:电子工业出版社,2007.

    [14] PaulJ.Deitel,Harvey M.Deitel.Java for programers[M]. 北京:电子工业出版社,2010.

    [15]Eckel B.Thinking in Java[M].America:Person Education,2003.

    [16]EnterpriseEngineering Software[EB/OL].http://www.intergraph.com/

    展开全文
  • 第2章iOS开发基础知识本章内容概要iOS应用程序开发方法与实践 掌握如何创建类定义类成员变量方法属性和继承关系等掌握如何使用类包括类实例化调用对象实例方法与类静态方法等掌握协议接口创建和使用方法...
  • 使用streamlt开发简单图像处理Web应用程序 Streamlit是功能强大而又简单平台,用于开发基于python应用程序。 在此项目中,streamlit已用于使用OpenCV库创建图像处理应用程序。 在OpenCV库中,可以使用多种算法...
  • Linux应用程序开发 基础知识 目录 1. C语言基础 1.1. 数据类型 1.2. 关键字 1.3. 变量等级 1.4. 特殊字符表示方法 1.5. 格式化字符串 1.6. 指针与数组 1.7. 结构体 1.8. typedef--自定义类型名 1.9. 函数和宏 1.10...
  • 它用于开发Android和iOS应用程序,也是创建应用程序的主要方法。我们的解决方案使用Laravel(Web ArtisansPHP框架)。 Laravel是一个Web应用程序框架,具有表达力强,优雅的语法。 我们已经奠定了基础-让您自由创作...
  • 据我所知,有 3 种方法可以从 MATLAB 构建 Web 应用程序: i) MATLAB Web 应用程序服务器ii) MATLAB 编译器 SDK(.net、python、java) iii) MATLAB 生产服务器在这里,我不会解释构建 Web 应用程序的不同方法的优...
  • 火龙果软件工程技术中心 如何使用ajax开发web应用程序(一) 如何使用ajax开发web应用程序(二) 如何使用ajax开发web应用程序(三) 如何使用ajax开发web应用程序(一) 在过去,由于为了获得新数据而不得不重新加载...
  • web应用插件开发 我们需要制作多个具有很多共享功能基于Web项目。 为此,某种插件系统将是一个不错选择(作为粘贴粘贴内容替代方法)。 有些框架(例如grails)可以选择制作Web插件,但大多数没有,因此...

    web应用插件开发

    我们需要制作多个具有很多共享功能的基于Web的项目。 为此,某种插件系统将是一个不错的选择(作为粘贴粘贴内容的替代方法)。 有些框架(例如grails)可以选择制作Web插件,但大多数没有,因此需要实现定制的东西。

    首先,让我们定义所需的功能。 “插件”:

    • 应该通过通过maven / ivy导入简单地包括在内
    • 如果使用了一个类,则应在依赖项注入容器中注册所有类(自动或通过单行配置)
    • 应该是垂直的–即包含所有文件,从javascript,css和模板到控制器,再到服务层类
    • 不需要需要在项目之间复制粘贴的复杂配置
    • 应该允许容易的开发和调试而无需重新部署

    将Java类放入jar文件中,然后添加到lib目录中,因此也添加到了类路径中,这是简单的部分。 但是我们需要将Web资源提取到各个位置,其余的代码可以在这些位置使用它们。 可以使用三种通用方法:构建时提取,运行时提取和从类路径加载运行时。

    最后一种方法将需要一个控制器(或servlet),该控制器从类路径(相应的jar)中加载资源,对其进行缓存并提供服务。 这有两个明显的缺点,其中之一就是放在罐子里,在开发过程中不容易更换它们。 使用类路径资源也很棘手,因为您事先不知道文件名。

    其他两种方法非常相似。 例如,Grails使用构建时提取–插件是一个zip文件,其中包含所有必需的资源,并且在构建项目时将它们提取到各自的位置。 很好,但是需要更多的配置(在我们的例子中是Maven),可能还需要在项目之间复制。

    因此,我们选择了运行时提取方法。 它在启动时发生–加载应用程序时,某种启动侦听器(在我们的示例中为带有@PostConstruct的spring组件)会遍历lib文件夹中的所有jar文件,并从特定文件夹中提取文件(例如,“ web ”)。 因此,jar文件的结构如下所示:

    com
       company
          pkg
             Foo.class
             Bar.class
    web
       plugin-name
           css
               main.css
           js
              foo.js
              bar.js
           images
              logo.png
           views
              foo.jsp
              bar.jsp

    最终结果是在启动应用程序后,您可以从应用程序访问所有必需的Web资源,因此可以将它们包含在主应用程序的页面(视图)中。

    而且提取的代码非常简单(将zip4j用于zip部分)。 这可以是servlet上下文侦听器,而不是spring bean –没什么区别。

    /**
     * Component that locates modules (in the form of jar files) and extracts their web elements, if any, on startup
     *
     * @author Bozhidar
     */
    @Component
    public class ModuleExtractor {
    
    	private static final Logger logger = LoggerFactory.getLogger(ModuleExtractor.class);
    
    	@Inject
    	private ServletContext ctx;
    
    	@SuppressWarnings("unchecked")
    	@PostConstruct
    	public void init() {
    		File lib = new File(ctx.getRealPath("/WEB-INF/lib"));
    		File[] jars = lib.listFiles();
    		String targetPath = ctx.getRealPath("/");
    		String viewPath = "/WEB-INF/views"; //that can be made configurable
    		for (File jar : jars) {
    			try {
    				ZipFile file = new ZipFile(jar);
    				for (FileHeader header : (List<FileHeader>) file.getFileHeaders()) {
    					if (header.getFileName().startsWith("web/") && !fileExists(header)) {
    						// extract views in WEB-INF (inaccessible to the outside world)
    						// all other files are extracted in the root of the application
    						if (header.getFileName().contains("/views/")) {
    							file.extractFile(header, targetPath + viewPath);
    						} else {
    							file.extractFile(header, targetPath);
    						}
    					}
    				}
    			} catch (ZipException ex) {
    				logger.warn("Error opening jar file and looking for a web-module in: " + jar, ex);
    			}
    		}
    	}
    
    	private boolean fileExists(FileHeader header) {
    		return new File(ctx.getRealPath(header.getFileName())).exists();
    	}
    }

    因此,为了制作插件,您只需制作一个带有jar包装的Maven项目,并将其作为依赖项添加到您的主项目中,其他所有工作都将得到处理。 如果未启用对bean的类路径扫描(或选择使其成为侦听器),则可能需要注册ModuleExtractor

    注意:此解决方案并非旨在成为能够解决所有问题的功能齐全的插件系统。 它不支持版本控制,子模块等。这就是标题为何“简单”的原因。 但是您可以用它做很多事情,而且它的复杂性非常低。


    翻译自: https://www.javacodegeeks.com/2013/08/a-simple-plugin-system-for-web-applications.html

    web应用插件开发

    展开全文
  • 该提议引入了一个新提议,Web应用程序开发人员可以更直接地使用它来解决他们对历史内省,变异和观察/拦截用例。 应用程序历史记录API Web现有历史记录API由于许多原因而存在问题,这使得它很难用于Web应用程序。...
  • 首先需要将web应用文件夹复制到tomcat安装目录下webapps文件夹中,然后启动tomcat服务器,再打开IE浏览器,最后在IE浏览器地址栏中输入“http://服务器IP:端口号/应用程序名称”形式URL地址,例如...
  • 1.掌握ASP.NET Web应用程序开发的方法。 2.掌握利用存储过程实现数据访问和操作的方法。 3.掌握基于三层结构开发ASP.NET Web应用程序。 二.实验内容: 按照实验七中“C#学习网”功能及源代码,开发一个基于三...
  • 一个应用程序是Web应用程序开发的新鲜事物。 它由服务器组成,该服务器提供使用组件构建单页应用程序,并利用允许通过独立开发,测试和部署Holocron模块进行代码拆分。 我们目标是提供一个Web应用程序框架,...
  • cargonauts-Rust Web框架文档cargonauts是一个Rust Web框架,旨在构建可维护,结构合理的Web应用程序。 这个产品-Rust Web框架Documentation cargonauts是一个Rust Web框架,旨在构建可维护,结构合理的Web应用...
  • 介绍了用JAVA和JSP进行Web应用程序开发的简单方法,并提供了调试成功实例源代码。
  • 本企业门户网站是一个最基本的Web应用程序,包含了开发企业门户网站应该掌握的技术和方法,对于ASP.NET的初学者而言,本源程序对于掌握Web应用程序的开发具有很好的指导意义。 软件平台:  操作系统:Windows ...
  • Notejam是使用不同服务器端框架实现统一示例Web应用程序(不仅仅是“ Hello World”)。 目前支持python,php,ruby和javascript框架。 支持框架 Python PHP / Ruby Java Javascript(node.js) 进行中 ...
  • web应用程序的身份验证 身份验证是大多数网站的基本要求。 但是,有许多机制可以实现身份验证,并且它们并不是很可互换的。 根据业务需求,开发人员需要为其应用程序选择最合适的身份验证方法。 除非人们很好地了解...
  • 这是构建Go Web应用程序/服务自以为是准则(或可以扩展到任何应用程序)。 我意见是在使用Go构建Web应用程序/服务超过5年时间里形成,旨在实现和 。 即使我提到过go.mod和go.sum ,该指南也适用于1.4+版本...
  • 第1章和第2章的内容是Web开发的基础,介绍Web应用程序的体系结构、开发环境配置以及HTTP等基础理论知识;第3章至第12章的内容是进行Web开发各阶段的算法分析,以专题形式讨论了Web应用程序开发中的各种具体问题及其...
  • JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的新标准 Java 框架。它提供了一种以组件为中心来开发 Java Web 用户界面的方法,从而简化了开发。JavaServer Faces 还引起了广大 Java/Web 开发人员的兴趣。...
  • 以RIDL或JSON架构格式编写服务器api接口,然后运行webrpc-gen为服务器和客户端应用程序生成网络源代码。webrpc是一种架构驱动的方法,用于为Web编写后端服务器。 以RIDL或JSON架构格式编写服务器api接口,...
  • JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的新标准 Java 框架。它提供了一种以组件为中心来开发 Java Web 用户界面的方法,从而简化了开发。JavaServer Faces 还引起了广大 Java/Web 开发人员的兴趣。...
  • 包jsonrpc实现了用于编写JSON-RPC Web应用程序的微框架。 jsonrpc-go程序包jsonrpc实现了用于编写JSON-RPC Web应用程序的微框架。 方法方法定义为:func(ctx context.Context,params T)(interface {},error)//...
  • 上回说到可以用改名的方法来解决VS.NET开发Web应用程序和Subversion冲突,但是用起来还是稍嫌麻烦,这次就来说一下另一个方法:转换。上次说到只有Web应用程序会出现这个问题,其他类型应用程序没有问题,那么...
  • 本篇主要写了在PHP中编写web应用程序的一些技巧,包括一些表单的验证,web应用程序的安全性等。 针对服务器设置调整行为:    ini_get()函数可以检验某些脚本是否打开,如ini_get('Magic Quotes'),  ini_...
  • 商务Web应用程序的设计常常被人们所忽视。我看到许多程序,它们既不符合商业目标,也不满足用户需求,它们有很差的用户体验,并造成了商业利润的损失。更夸张的是,有些设计师根本没有参与整个程序的开发流程,而是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,413
精华内容 3,365
关键字:

web应用程序的开发方法