精华内容
下载资源
问答
  • Web应用工作原理动态网页技术

    万次阅读 2013-05-25 09:44:52
     什么是web应用程序?web应用程序又是如何进行工作的呢?什么是动态网页技术?又有  哪些动态网页技术呢?这次这篇文章需要探求总结的。  Web应用  我们知道应用程序有两种模式,C/S模式和B/S模式。C/S模式是...

             前言

                      什么是web应用程序?web应用程序又是如何进行工作的呢?什么是动态网页技术?又有

                 哪些动态网页技术呢?这次这篇文章需要探求总结的。

             Web应用

                      我们知道应用程序有两种模式,C/S模式和B/S模式。C/S模式是客户端/服务器模式,这类

                应用程序一般独立的运行。B/S模式是浏览器/服务器模型,需要借助浏览器来运行。

                      web应用程序一般就是B/S模式的,所谓的web应用程序就是基于HTTP等协议,通过web访问

                应用程序。

                              

                       通过对两者的对比简单的谈谈B/S的优缺点:

                        B/S优势:

                                1、开发成本低

                                2、管理和维护相对简单

                                3、产品升级便利(不需要客户端的维护)

                                4、用户使用方便,容易上手。

                                5、出现故障的概率较C/S小

                        B/S不足:

                                1、通过web进行访问安全性不足

                                2、客户端不能随心变化

                                3、浏览器产品过多,网页开发的时候兼容性问题较为严重。

                  Web应用工作原理

                             了解了Web应用程序的相关概念之后我们来看看web应用程序的工作原理

                        

                            通过上图可以服务器通过HTTP协议获取客户端请求信息,并向客户端返回处理之后

                    的响应。

                 HTTP协议通信原理

                            HTTP协议是位于OSI七层网络模型中的最上层。它是一种为操作兄和应用程序提供

                     访问网络接口的通信协议。

                            在web应用中,浏览器端发送请求数据包,服务器端返回响应数据包来实现web应用

                     程序的工作。当服务器向客户端返回响应后,整个连接就会关闭,是一种无状态的连接

                    

                  动态网页技术

                               在上述web应用工作的原理中,我们通过HTTP协议访问一个在服务端存在的文件,服务

                        器可以找到该文件并将其内容封装到HTTP请求体重,以消息体的形式返回给客户端。不过

                        这种方式无法和后台数据库进行交互,我们只能访问静态的页面

                                为了解决这种办法,动态网页技术也就诞生了。其解决的办法就是为web服务器配置

                        一个辅助的应用程序服务器,完成用户请求的动态生成。

                                最早期的动态网页技术就是CGI(common gateway interface)

                         CGI可以使用不同的程序语言来生成动态的文件,但是CGI程序会为每一个请求开启一个进程

                        对于服务器的消耗比较的打。

                               解决这一问题可以使用多线程的方式,为每一个请求开启一个线程,减少了服务器端的资源

                        消耗。Java方面解决这个问题就产生了Servlet技术。

                   Servlet(web容器管理)

                              servlet是与平台无关的服务器端组件,他是运行在web容器中例如Tomcat,servlet和客户端的

                         通信采用的是“请求/响应”模式,Servlet组件主要负责请求和响应,例如用户登录:接受浏览器发送

                         的登录信息,数据库后台的验证。之后以响应的形式返回处理的结果。

                              Servlet容器,这里以Tomcat为例,Tomcat处理servlet和客户端的通信,调用serlvet的方法。

                         之后Tomcat容器和web服务器之间进行数据交互,由web服务器将结果返回给客户端。

                         

                 Servlet规范和Servlet容器

                           servlet容器负责管理和运行servlet,从起初的设计上可以知道他是支持多线程的。

                       负责管理servlet的生命周期。并且可以和web服务器进行通信。使用servlet容器能够

                       提供一个较好的安全性,隐私数据的访问可以得到限制。有了servlet容器的支持后,coder

                       能够将更多的精力放在对业务逻辑的处理上。

                           需要说明的是现阶段有着各式的servlet容器,这就产生了一个规范性的问题,只有对servlet

                      容易有一个规范,web系统才能在不同的web容器上运行。

                          常用的servlet容器有Tomcat、JBoss、webLogic等,后续的学习中选用Tomcat。

                  Servlet容器在网络中的位置

                           以Tomcat为例,Tomcat为每个对servlet的请求都开启一个线程,tomcat同时负责管理

                       servlet的生命周期和他的运行。

                           在处理一个请求的时候,tomcat负责将请求以对象的形式(Request)传递给servlet,当servlet

                      处理请求后(Servlet运行结束),由tomcat刷新响应对象(Response),并将该对象返回给web

                      服务器,由web服务器返回给客户端。

                      

                  简单Java Web应用程序的组成

                             说了那么多那么一个简单的java web应用程序有哪些组成部分呢?(简单应用程序)

                             我们在Eclipse下简单的建立一个web功能来看看吧。

                                 

                          /WEB-INF目录:Web应用应用部署目录,浏览客户是看不到该目录下的文件的,该目录

                                                下的文件专供Web服务器专用。
                          web.xml:部署描述文件,/WEB-INF目录下最重要的文件,它描述了程序的部署、配置信息,

                                         为Web服务器所使用。
                         /classes:Web应用的类文件存放处,如Web应用中的Servlet类文件、一些实用java类如

                                        javaBeans的类文件等。该文件夹是在build目录下的,发布之后可以看见。
                          /lib:部署java类库文件存放处,Web应用使用的一些其他库文件存放处。
                          *.jsp:JSP文件,通常存放在Web应用程序的根目录上,有时为便于管理也可以存放在根目录

                                   下的其他目录下,如根目录下的jsp目录中。
                         *.html:HTML文件,通常存放在Web应用程序的根目录上,有时为了便于管理也可以存放在

                                     根目录下的其他目录下。
                         /src:源代码目录。

                       


    展开全文
  • 又称帕累托分析法或巴雷托分析法、柏拉图分析、主次因分析法 、ABC分析法、分类管理法、物资重点管理法、ABC管理法、abc管理、巴雷特分析法,平常我们也称之为“80对20”规则,EMBA、MBA等主流商管教育均对ABC分类法...

    ABC分类法

    ABC分类法(Activity Based Classification) ,全称应为ABC分类库存控制法。又称帕累托分析法或巴雷托分析法、柏拉图分析、主次因分析法 、ABC分析法、分类管理法、物资重点管理法、ABC管理法、abc管理、巴雷特分析法,平常我们也称之为“80对20”规则,EMBA、MBA等主流商管教育均对ABC分类法对企业管理的启示及对管理者组织决策的影响有所介绍。

    1、简介

    ABC分类法是由意大利经济学家维尔弗雷多·帕累托首创的。ABC分析法是储存管理中常用的分析方法,也是经济工作中一种基本工作和认识方法。ABC分析的应用,在储存管理中比较容易地取得以下成效:第一,压缩了总库存量;第二,解放了被占压的资金;第三,使库存结构合理化;第四,节约了管理力量。1879年,帕累托在研究个人收入的分布状态时,发现少数人的收入占全部人收入的大部分,而多数人的收入却只占一小部分,他将这一关系用图表示出来,就是著名的帕累托图。该分析方法的核心思想是在决定一个事物的众多因素中分清主次,识别出少数的但对事物起决定作用的关键因素和多数的但对事物影响较少的次要因素。后来,帕累托法被不断应用于管理的各个方面。1951年,管理学家戴克(H.F.Dickie)将其应用于库存管理,命名为ABC法。1951年~1956年,约瑟夫·朱兰将ABC法引入质量管理,用于质量问题的分析,被称为排列图。1963年,彼得·德鲁克( P.F.Drucker)将这一方法推广到全部社会现象,使ABC法成为企业提高效益的普遍应用的管理方法。


    标准帕累托图


    帕累托图

    此规则通过对同一类问题或项目进行排序,来认明其中少数争议较大的。帕雷托通过长期的观察发现:美国80%的人只掌握了20%的财产,而另外20%的人却掌握了全国80%的财产,而且很多事情都符合该规律。于是他应用此规律到生产上。他的主要观点是:通过合理分配时间和力量到A类-总数中的少数部分,你将会得到更好的结果。当然忽视B类和C类也是危险的,在帕雷托规则中,它们得到与A类相对少得多的注意。

    ABC分类法又称帕雷托分析法,也叫主次因素分析法,是项目管理中常用的一种方法。它是根据事物在技术或经济方面的主要特征,进行分类排队,分清重点和一般,从而有区别地确定管理方式的一种分析方法。由于它把被分析的对象分成A、B、C三类,所以又称为ABC分析法。

    在ABC分析法的分析图中,有两个纵坐标,一个横坐标,几个长方形,一条曲线,左边纵坐标表示频数,右边纵坐标表示频率,以百分数表示。横坐标表示影响质量的各项因素,按影响大小从左向右排列,曲线表示各种影响因素大小的累计百分数。一般地,是将曲线的累计频率分为三级,与之相对应的因素分为三类:

    A类因素,发生累计频率为0%~75%,是主要影响因素。

    B类因素,发生累计频率为75%~90%,是次要影响因素。

    C类因素,发生累计频率为90%~100%,是一般影响因素。

    2、应用与说明

    ABC分类法是根据事物在技术、经济方面的主要特征,进行分类排列,从而实现区别对待区别管理的一种方法。ABC法则是帕累托80/20法则衍生出来的一种法则。所不同的是,80/20法则强调的是抓住关键,ABC法则强调的是分清主次,并将管理对象划分为A、B、C三类。

    1951年,管理学家戴克首先将ABC法则用于库存管理。1951年至1956年,朱兰将ABC法则运用于质量管理,并创造性地形成了另一种管理方法——排列图法。1963年,德鲁克将这一方法推广到更为广泛的领域。

    2.1 ABC法则与效率

    面对纷繁杂乱的处理对象,如果分不清主次,鸡毛蒜皮一把抓,可想而知,其效率和效益是不可能高起来的。而分清主次,抓住主要的对象,却一定可以事半功倍。比如,在库存管理中,这一法则的运用就可以使工作效率和效益大大提高。

    在一个大型公司中,库存存货的种类通常会很多,动则就可能是十几万种甚至几十万种。鸡毛蒜皮一把抓的管理把管理者累得直不起腰,其收效却甚微,而且可能出现混乱,进而造成重大损失:

    第一,盘点清查非常困难,而且难以确保准确性。对于非重要的材料,比如低值易耗品,可能影响还不大,但对于重要材料,例如产品关键部件,如果计数错误,却可能导致缺料,生产自然也就不可避免地受到影响,进而不能满足市场需求,丧失市场机会,失去客户。

    第二,存量控制困难。重要材料的存量应该作为重点监控,确保不断料又不积压,非重要材料由于其重要性不高和资金占用量小,则可以按一定的估计量备货。如果实行一把抓式的管理,就可能将目光集中在大量非重要材料上,而疏忽了对重要材料的控制。

    有一句俗话,是“捡了芝麻,丢了西瓜”,说的就是不会应用ABC法则的人在我们处理日常事务上,ABC法则的效率和高回报也是显著的。面对众多的问题,如果进行ABC分类,然后处理主要问题,次要的和不重要的问题常常也会迎刃而解。

    2.2如何进行ABC分类

    我们面临的处理对象,可以分为两类,一类是可以量化的,一类是不能量化的。

    对于不能量化的,我们通常只有凭经验判断。对于能够量化的,分类就要容易得多,而且更为科学。我们以库存管理为例来说明如何进行分类。

    第一步,计算每一种材料的金额。

    第二步,按照金额由大到小排序并列成表格。

    第三步,计算每一种材料金额占库存总金额的比率。

    第四步,计算累计比率。

    第五步,分类。累计比率在0%~60%之间的,为最重要的A类材料;累计比率在60%~85%之间的,为次重要的B类材料;累计比率在85%~100%之间的,为不重要的C类材料。


    表1 库存ABC分析表

    通常情况下,我们使用ABC分析表来进行上述步骤。从表1可以看出,A、B、C、D、E为A类,F、G、H、I、J、K、L、M、N、0为B类,P、O、R为C类。

    对于不同的对象,分类时采用的指标是不一样的。上面库存管理,采用的是存货价值指标。对于客户管理,可以采用客户进货额或者毛利贡献额为指标。对于投资管理,可以采用投资回报额作为指标。

    应用时机:

    该工具经常被用于库存管理,实际上,它和80/20法则一样,是一个无处不在的管理工具,企业各项事务都可能用到它。

    应用典范:

    西斯科(Sysco,北美最大的食品服务销售企业)

    在2004年公布的世界500强企业排名中,西斯科位于第179位。

    ABC法则更多地应用于仓储和物流管理中,在以批发业务为主的西斯科公司,ABC法则的应用相当广泛。

    3、基本程序

    3.1开展分析

           1.ABC分析的理论基础。社会上任何复杂事物,都存在着“关键的少数和一般的多数”这样一种规律。事物越是复杂,这一规律便越是显著。如果将有限的力量主要(重点)用于解决这具有决定性影响的少数事物上,和将有限力量平均分摊在全部事物上。两者比较,当然是前者可以取得较好的成效,而后者成效较差。ABC分析便是在这一思想的指导下,通过分析,将“关键的少数”找出来,并确定与之适应的管理方法,这便形成了要进行重点管理的A类事物。这就能够以“一倍的努力取得7—8倍的效果”。

      2.ABC分析的一般步骤。此处仅以库存的ABC分析及重点管理方法为例。一般说来,企业的库存反映着企业的水平,调查企业的库存,可以大体搞清该企业的经营状况。虽然ABC分析法已经形成了企业中的基础管理方法,有广泛的适用性,但目前应用较广的,还是在库存分析中。

      ABC分析的一般步骤有:收集数据、处理数据、制ABC分析表、根据ABC分析表确定分类、绘ABC分析

    3.2实施对策

    这是“分类管理”的过程。根据ABC分类结果,权衡管理力量和经济效果,制定ABC分类管理标准表,对三类对象进行有区别的管理。

    4、具体步骤

    4.1收集数据

    按分析对象和分析内容,收集有关数据。例如,打算分析产品成本,则应收集产品成本因素、产品成本构成等方面的数据;打算分析针对某一系统搞价值工程,则应收集系统中各局部功能、各局部成本等数据。

    4.2处理数据

    对收集来的数据资料进行整理,按要求计算和汇总。

    4.3制ABC分析表

    ABC分析表栏目构成如下:第一栏物品名称;第二栏品目数累计,即每一种物品皆为一个品目数,品目数累计实际就是序号;第三栏品目 数累计百分数,即累计品目数对总品目数的百分比;第四栏物品单价;第五栏平均库存;第六栏是第四栏单价乘以第五栏平均库存,为各种物品平均资金占用额;第 七栏为平均资金占用额累计;第八栏平均资金占用额累计百分数;第九栏为分类结果。 制表按下述步骤进行:将第2步已求算出的平均资金占用额,以大排队方 式,由高至低填入表中第六栏。以此栏为准,将相当物品名称填入第一栏、物品单价填入第四栏、平均库存填入第五栏、在第二栏中按1、2、3、4...... 编号,则为品目累计。此后,计算品目数累计百分数、填入第三栏;计算平均资金占用额累计,填入第七栏;计算平均资金占用额累计百分数,填人第八栏。

    4.4确定分类

    按ABC分析表,观察第三栏累计品目百分数和第八栏平均资金占用额累计百分数,将累计品目百分数为5—15%而平均资金 占用额累计百分数为60—80%左右的前几个物品,确定为A类;将累计品目百分数为20—30%,而平均资金占用额累计百分数也为20—30%的物品,确 定为B类;其余为C类,C类情况正和A类相反,其累计品目百分数为60—80%,而平均资金占用额累计百分数仅为5—15%。

    4.5绘ABC分析图

    以累计品目百分数为横坐标,以累计资金占用额百分数为纵坐标,按ABC分析表第三栏和第八栏所提供的数据,在坐标图上取点,并联结各点曲线,则绘成ABC曲线。

    按ABC分析曲线对应的数据,按ABC分析表确定A、B、C三个类别的方法,在图上标明A、B、C三类,则制成ABC分析图。在管理时,如果认为ABC分析图直观性仍不强,也可绘成如图所示的直方图。

    5、案例分析

    人们以库存管理为例来说明ABC法的具体应用。如果人们打算对库存商品进行年销售额分析,那么:首先,收集各个品目商品的年销售量,商品单价等数据。

    其次,对原始数据进行整理并按要求进行计算,如计算销售额、品目数、累计品目数、累计品目百分数、累计销售额、累计销售额百分数等。

    第三,作ABC分类表。在总品目数不太多的情况下,可以用大排队的方法将全部品目逐个列表。按销售额的大小,由高到低对所有品目顺序排列;将必要的原始数据和经过统计汇总的数据,如销售量、销售额、销售额百分数填入;计算累计品目数、累计品目百分数、累计销售额、累计销售额百分数;将累计销售额为60~80%的前若干品目定为A类;将销售额为20~30%左右的若干品目定为B类;将其余的品目定为C类。如果品目数很多,无法全部排列在表中或没有必要全部排列出来,可以采用分层的方法,即先按销售额进行分层,以减少品目栏内的项数,再根据分层的结果将关键的A类品目逐个列出来进行重点管理。


    ABC分类法

    第四,以累计品目百分数为横坐标,累计销售额百分数为纵坐标,根据ABC分析表中的相关数据,绘制ABC分析图。如右图例所示:

    第五,根据ABC分析的结果,对ABC三类商品采取不同的管理策略。

    ABC分类法还可以应用到质量管理、成本管理和营销管理等管理的各个方面。

    在质量管理中,人们可以利用ABC分析法分析影响产品质量的主要因素,采取相应的对策。例如,人们列出影响产品质量的因素包括,外购件的质量、设备的状况、工艺设计、生产计划变更、工人的技术水平、工人对操作规程的执行情况等。人们以纵轴表示由于前几项因素造成的不合格产品占不合格产品总数的累计百分数,横轴按造成不合格产品数量的多少,从大到小顺序排列影响产品质量的各个因素。这样,人们就可以很容易地将影响产品质量的因素分为A类、B类和C类因素。假设通过分析发现外购件的质量和设备的维修状况是造成产品质量问题的A类因素,那么人们就应该采取相应措施,对外购件的采购过程严格控制,并加强对设备的维修,解决好这两个问题,就可以把质量不合格产品的数量减少80%。

    ABC分析法还可以应用在营销管理中。例如企业在对某一产品的顾客进行分析和管理时,可以根据用户的购买数量将用户分成A类用户、B类用户和C类用户。由于A类用户数量较少,购买量却占公司产品销售量的80%,企业一般会为A类用户建立专门的档案,指派专门的销售人员负责对A类用户的销售业务,提供销售折扣,定期派人走访用户,采用直接销售的渠道方式,而对数量众多,但购买量很小,分布分散的C类用户则可以采取利用中间商,间接销售的渠道方式。

    应当说明的是,应用ABC分析法,一般是将分析对象分成A、B、C类三类。但人们也可以根据分析对象重要性分布的特性和对象的数量的大小分成两类、或三类以上。

    6、起源

    ABC分析法是指将库存物资按照重要程度分为特别重要库存(A类物资),一般重要物资(B类物资)和不重要物资(C类物资)三个等级,根据不同类型的物资进行分类管理和控制的方法。ABC分析法是帕累托理论在物流管理领域中的应用。在18世纪,意大利经济学家威利弗雷德,帕累托在一项对米兰财富分布的研究中, 发现20%的人控制了80%的财富,而80%的却只占有20%的财富,他将这一关系用图表的方式表示出来,就是著名的帕累托定理。该分析的核心思想就是决定一个事物的众多因素中,少数因素对事物具有决定性作用,而多数属于对事物影响较小的次要因素。1951年,管理学家戴克将其应用在库存管理,命名为ABC分析法。后来,朱兰将其引入到质量管理,用于质量分析,被称为排序图。到了1963年,管理大师德鲁克将其推广到全社会,使其成为普遍使用的管理方法。

    欢迎关注微信公众号,与您分享更多精彩内容!



    展开全文
  • 18位身份证号验证算法的原理以及C#实现和在管理系统的应用 本博文介绍一下我自主开发的企业工资管理系统中关于员工18身份证号合法性验证的原理以及采用C#实现的代码、在实际的管理系统中应用!经过我自己的测试,...

    18位身份证号验证算法的原理以及C#实现和在管理系统的应用

        本博文介绍一下我自主开发的企业工资管理系统中关于员工18身份证号合法性验证的原理以及采用C#实现的代码、在实际的管理系统中应用!经过我自己的测试,是可以用的,而且代码我觉得写的不错!若有哪位博友想获取我这个管理系统的源码以及相关设计文档(可以当做“毕业设计”哦),可以加我QQ:1948831260与我交流,我愿意考虑出售给你!当然啦,我本意还是希望能与各位有所交流!

        本博文介绍的是针对18位合法的中国公民而开发的!至于16位身份证号的验证的网上搜索一番应该也有。对于18位的公民身份证号的验证主要是针对国家质量技术监督局在GB11643-1999《公民身份号码》中规定的18位标准身份证号。其中,18位身份证号由6位的地区代码、8位的生日码、3位编号和1位的校验码组成。

        下面是算法验证的原理(其实不是很难):

     

        算法首先会判断用户输入的身份证号的长度是否为18位,接着会对身份证号的前17位数字本体码做加权求和运算,运算采用的式子如下面所示:      

        上面的式子中 Ai表示第 i 位置上的身份证号码的数字值, Wi表示第i 位置上的加权因子, i的取值为从0到16,表示下标。其中 在 i位置上的对应取值如下表所示

        运行后得到结果Sum,然后将得到的结果Sum对11取模运算,运算式子如下:

                                  

        上面的式子经过计算得到的结果Y即为该身份证号的理论上的验证码

        记给定的待验证的18身份证号的最后一位实际的验证码为y,将Y按照下图对照获得的“对应取值yi”与y比较,如果正确,即该身份证号为合法的符合国家规定的18位身份证号。

        

     

         如例子:440705198403084543身份证号经过mode(Sum,11)的计算到Y=9,查找表5-2得到对应取值为3,正好与实际给定的身份证号的最后一位3相同!故而合法!

        下面是对应的身份证验证算法的代码,我将其放在一个cmmUtils中,以便在“工资管理系统”中通用!

     

    <span style="font-size:18px;">        /// 验证身份证合理性  
            /// </summary>  
            /// <param name="Id"></param>  
            /// <returns></returns>  
            public bool CheckIDCard(string idNumber)
            {
                if (idNumber.Length == 18)
                {
                    bool check = CheckIDCard18(idNumber);
                    return check;
                }
                else
                {
                    return false;
                }
            }
    
            /// <summary>
            /// 18位身份证号码验证
            /// </summary>
            /// <param name="idNumber"></param>
            /// <returns></returns>
            public bool CheckIDCard18(string idNumber)
            {
                long n = 0;
                if (long.TryParse(idNumber.Remove(17), out n) == false || n < Math.Pow(10, 16) || long.TryParse(idNumber.Replace('x', '0').Replace('X', '0'), out n) == false)
                {
                    return false;//数字验证  
                }
                string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
                if (address.IndexOf(idNumber.Remove(2)) == -1)
                {
                    return false;//省份验证  
                }
                string birth = idNumber.Substring(6, 8).Insert(6, "-").Insert(4, "-");
                DateTime time = new DateTime();
                if (DateTime.TryParse(birth, out time) == false)
                {
                    return false;//生日验证  
                }
                string[] arrVarifyCode = ("1,0,x,9,8,7,6,5,4,3,2").Split(',');
                string[] Wi = ("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(',');
                char[] Ai = idNumber.Remove(17).ToCharArray();
                int sum = 0;
                for (int i = 0; i < 17; i++)
                {
                    sum += int.Parse(Wi[i]) * int.Parse(Ai[i].ToString());
                }
                int y = -1;
                Math.DivRem(sum, 11, out y);
                Console.WriteLine("Y的理论值: " + y);
                if (arrVarifyCode[y] != idNumber.Substring(17, 1).ToLower())
                {
                    return false;//校验码验证  
                }
                return true;//符合GB11643-1999标准  
            }</span>


        下面是修改该员工的身份证号为不正确的,系统会进行提示!

     

        在实际项目中,我是在“身份证号”对应的文本框加上一个MouseLeave事件,其代码如下:

     

    <span style="font-size:18px;">        //身份证号验证
            private void textBoxYuanGongShenFenZheng_MouseLeave(object sender, EventArgs e)
            {
                String empCardNo=textBoxYuanGongShenFenZheng.Text.Trim();
                if (empCardNo!="")
                {
                    if (false == cmmUtils.CheckIDCard(empCardNo))
                    {
                        MessageBox.Show("员工身份证填写不规范-请保证员工身份证位18位且填写正确!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        textBoxYuanGongShenFenZheng.Focus();
                    }
                }
                
            }</span>

     

        经过测试,这个C#实现该算法的代码是完全可以投入项目中使用的!我感觉很有用哦,若有博友想咨询具体如何应用在项目中,可以加我QQ细聊!或者下面留言!

     

    展开全文
  • Spring AOP的实现原理应用场景(通过动态代理)

    万次阅读 多人点赞 2018-06-30 18:58:00
    AOP应用场景 场景一: 记录日志 场景二: 监控方法运行时间 (监控性能) 场景三: 权限控制 场景四: 缓存优化 (第一次调用查询数据库,将查询结果放入内存对象, 第二次调用, 直接从内存对象返回,不...

    AOP的作用

    作用:在不修改源代码的情况下,可以实现功能的增强。


    传统的纵向体系代码复用:
    这里写图片描述


    横向抽取机制(AOP思想):
    这里写图片描述
    AOP 思想: 基于代理思想,对原来目标对象,创建代理对象,在不修改原对象代码情况下,通过代理对象,调用增强功能的代码,从而对原有业务方法进行增强 !

    AOP应用场景

    场景一: 记录日志
    场景二: 监控方法运行时间 (监控性能)
    场景三: 权限控制
    场景四: 缓存优化 (第一次调用查询数据库,将查询结果放入内存对象, 第二次调用, 直接从内存对象返回,不需要查询数据库 )
    场景五: 事务管理 (调用方法前开启事务, 调用方法后提交关闭事务 )

    AOP的实现原理

    那Spring中AOP是怎么实现的呢?Spring中AOP的有两种实现方式:
    1、JDK动态代理
    2、Cglib动态代理

    JDK动态代理

    1.引入依赖,有spring,单元测,日志管理

    <dependencies>
            <!-- Spring -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
            </dependency>
    
            <!-- 单元测试 -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <scope>test</scope>
            </dependency>
            <!-- 日志 -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </dependency>
        </dependencies>

    2.UserDao接口

    public interface UserDao {
        public void saveUser();
    }
    

    3.UserDao实现类

    public class UserDaoImpl implements UserDao {
    
        @Override
        public void saveUser() {
            System.out.println("持久层:用户保存");
        }
    }

    4.动态代理

    @Test
        public void test1() {
    
            final UserDao userDao = new UserDaoImpl();
            // newProxyInstance的三个参数解释:
            // 参数1:代理类的类加载器,同目标类的类加载器
            // 参数2:代理类要实现的接口列表,同目标类实现的接口列表
            // 参数3:回调,是一个InvocationHandler接口的实现对象,当调用代理对象的方法时,执行的是回调中的invoke方法
            //proxy为代理对象
            UserDao proxy = (UserDao) Proxy.newProxyInstance(userDao.getClass().getClassLoader(),
                    userDao.getClass().getInterfaces(), new InvocationHandler() {
    
                        @Override
                        // 参数proxy:被代理的对象
                        // 参数method:执行的方法,代理对象执行哪个方法,method就是哪个方法
                        // 参数args:执行方法的参数
                        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                            System.out.println("记录日志");
                            Object result = method.invoke(userDao, args);
                            return result;
                        }
                    });
            //代理对象执行方法
            proxy.saveUser();
        }

    5.结果
    在没有修改原有类的代码的情况下,对原有类的功能进行了增强
    这里写图片描述

    Cglib动态代理

    在实际开发中,可能需要对没有实现接口的类增强,用JDK动态代理的方式就没法实现。采用Cglib动态代理可以对没有实现接口的类产生代理,实际上是生成了目标类的子类来增强。
     首先,需要导入Cglib所需的jar包。提示:spring已经集成了cglib,我们已经导入了spring包,所以不需要再导入其它包了。
    1.创建LinkManDao类,没有实现任何接口

    public class LinkManDao {
        public void save(){
            System.out.println("持久层:联系人保存....");
        }
    }

    2.动态代理

    @Test
        public void test2() {
            final LinkManDao linkManDao = new LinkManDao();
            // 创建cglib核心对象
            Enhancer enhancer = new Enhancer();
            // 设置父类
            enhancer.setSuperclass(linkManDao.getClass());
            // 设置回调
            enhancer.setCallback(new MethodInterceptor() {
                /**
                 * 当你调用目标方法时,实质上是调用该方法
                 * intercept四个参数:
                 * proxy:代理对象
                 * method:目标方法
                 * args:目标方法的形参
                 * methodProxy:代理方法
                */
                @Override
                public Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy)
                        throws Throwable {
                    System.out.println("记录日志");
                     Object result = method.invoke(linkManDao, args);
                    return result;
                }
            });
            // 创建代理对象
            LinkManDao proxy = (LinkManDao) enhancer.create();
            proxy.save();
        }

    3.结果
    这里写图片描述

    展开全文
  • 如何实现追踪? 答:RPC靠字节码增强,增加追踪id 目前中文文档较少,github上有中文翻译: https://github.com/naver/pinpoint/wiki#video-clips ...点击右上方pdf下载,其中有很好的
  • NAT ALG原理应用

    万次阅读 2016-08-29 23:10:44
    NAT ALG原理应用
  • 数据库原理应用课程设计

    千次阅读 多人点赞 2020-05-13 11:43:27
    数据库原理应用课程设计 西南石油大学 课 程 设 计 报 告 课程名称 数据库原理应用 设计题目 学生信息管理系统数据库设计与实现 专 业 网络空间安全 班 级 网安03 学 号 姓 名 完成日期 20200511 任 务 书 设计...
  • OCR原理浅析及应用场景

    千次阅读 2019-01-08 20:42:08
    OCR原理浅析 从整体上来说,OCR一般分为两个大步骤:图像处理以及文字识别。 参考:OCR 技术浅析         OCR应用场景 OCR是技术,基于OCR的应用场景就非常多了。比如:ocr综合文字识别、ocr视频文字...
  • Apache Ranger原理应用实践

    万次阅读 多人点赞 2019-05-15 23:20:18
    需求二、大数据安全组件介绍与对比1、Kerberos2、Apache Sentry3、Apache Ranger4、为什么我们选择Ranger三、Apache Ranger系统架构及实践1、架构介绍2、组件介绍3、权限模型4、权限实现Hdfs实现原理Hbase实现原理...
  •  之前在做项目中遇到spring无法进行事务代理问题,最后发现是因为没有写接口,原因当时明白了,看到这篇文章写的清楚些,转过来   我们先来分析一下Spring事务管理机制的实现原理。由于Spring内置...
  • 《数据库原理应用》复习总结

    万次阅读 多人点赞 2018-09-19 16:32:25
    《数据库原理应用》复习总结 数据库技术就是主要研究如何科学的组织和存储数据,高效的获取和处理数据,并可以满足用户各种不同的信息需求的技术,因为对数据库技术的需求非常大,所以学习这门课的知识和技术是...
  • P2P技术原理应用

    万次阅读 2018-06-21 12:01:54
    P2P技术原理应用 作 者:金海 廖小飞 摘要:对等网络(P2P)有3种主要的组织结构:分布式哈希表(DHT)结构、树形结构、网状结构。P2P技术已经延伸到几乎所有的网络应用领域,如分布式科学计算、文件共享、流媒体直播...
  • 物联网的原理应用和技能

    万次阅读 2019-02-09 10:29:17
    1物联网的原理 物联网是在计suanji互联网的基础shang,li用RFID、无xian数据通讯deng技能,构zaoyi个覆盖世界shang万shi万物的InternetofThings。在这个网络中,物pin商品)ke以互xiang进行“jiao流”,而无需人的...
  • flink基本原理应用场景分析

    万次阅读 2018-03-11 11:14:26
    应用程序状态管理:当程序变得更加的复杂,比简单的过滤或者增强的数据结构,这个时候管理这些应用的状态将会变得比较难(例如:计数器,过去数据的窗口,状态机,内置数据库)。flink提供了工具,这些状态是有效的,...
  • 文章目录第七章:数据库应用设计与开发实例一、需求描述与分析1.2.3.4.二、系统设计1.2.3.4.三、系统实现1.2.3.4.四、系统测试与维护1.基于PHP语言的Mysql数据库应用PHP操作Mysql数据库的基本步骤2.3.4.第八章:一、...
  • ALG原理应用

    万次阅读 2014-03-28 17:52:29
    普通NAT实现了对UDP或TCP报文头中的的IP地址及端口转换功能,但对应用层数据载荷中的字段无能为力,在许多应用层协议中,比如多媒体协议(H.323、SIP等)、FTP、SQLNET等,TCP/UDP载荷中带有地址或者端口信息,这些...
  • 浅谈实时数据库系统原理及其应用

    千次阅读 2013-07-26 08:46:23
    浅谈实时数据库系统原理及其应用 孙俊彦 苏州大学计算机科学与技术学院 摘要: 现代的工程和时间关键型应用对数据库的实时性和对数据直接分析和处理的能力要求特别高,单纯的传统关系数据库已经不能满足需要,实时...
  • Session的工作原理应用详解

    千次阅读 2020-04-22 10:41:03
    Session的工作原理应用详解1. Session 原理1.1 Session 背景信息1.2 Session 工作原理1.3 Session 创建、获取、销毁1.4 Session 共享范围1.5 Session 生命周期1.6 HTTP请求中 4 大共享数据方式对比2. Session 应用...
  • 无线通信原理应用第二版中文版

    千次下载 热门讨论 2010-10-31 20:52:41
    无线通信原理应用 第二版 中文版 作者:(美Theodore S.Rappaport著 译者: 蔡涛[同译者作品] 李旭 杜振民 出版社:电子工业出版社 目录回到顶部↑第1章 无线通信系统概述 1.1 移动无线通信发展 1.2 美国...
  • apiVersion: v1 kind: Pod metadata: name: nginx2 namespace: default labels: env: dev tie: front spec: containers: - name : nginx image: nginx:1.8 ports: - containerPort: 80
  • 安全帽识别的原理和系统应用

    千次阅读 2018-12-29 14:45:24
    安全帽识别的原理是用AI技术对工作现场的视频进行实时分析,如果发现工作人员未按要求佩戴安全帽或违规吸烟,系统会自动发出警报,在提醒监理人员的同时,系统会自动保存时间、地点及相应的照片,作为处罚的依据,AI...
  • 本书适合于从事广播电视系统和非广播专业成像系统的设计、规范、安装维护的技术工程人员,也是广播电视业界政策制定者、管理决策者、产业界的经营管理者的案头必备之作,还是想了解数字电视的非业界人士的理想读物。
  • [ERP]ERP原理应用试题(附答案)

    万次阅读 2016-07-06 08:59:33
    ERP原理应用期末综合练习 一、单项选择题 1. 最早提出ERP概念的咨询公司在( C )。 A.英国 B.中国 C.美国ff 2.时段MRP是在(B )学说的基础上形成的。 A.物料需求 一天今天第一B.物料独立需求和相关需求 C....
  • 大数据技术原理应用-林子雨版-课后习题答案

    万次阅读 多人点赞 2019-06-26 13:29:23
    答:IT基础设施层、数据源层、数据管理层、数据分析层、数据平台层、数据应用层。 11.定义并解释以下术语:云计算、物联网 答: 云计算:云计算就是实现了通过网络提供可伸缩的、廉价的分布式计算机能力,用户...
  • zookeeper的原理应用(非常详细透彻)

    万次阅读 多人点赞 2018-07-15 12:57:04
     官方说辞:Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。...
  • 网络攻防原理应用 知识梳理

    万次阅读 多人点赞 2019-06-16 02:04:44
    网络攻防原理应用 网络安全 密码应用技术 网络攻击技术 网络防御技术 IPSec SSL VPN 802.11 PKI 密码体系 认证技术 数据加解密技术 访问控制 IPS 入侵检测 安全审计 防火墙 信息收集、网络隐身、端口和漏洞扫描...
  • 《单片机原理应用》复习提纲

    万次阅读 多人点赞 2015-12-14 10:42:02
    《单片机原理应用》复习提纲 单片机应用系统的典型结构图   单片机应用系统核心硬件技术包括: 1.时序 2.中断 3.地址译码   单片机应用系统核心软件技术包括: 1.寻址...
  • NAT基本原理应用

    万次阅读 多人点赞 2017-07-03 20:31:36
    动态地址NAT只是转换IP地址,它为每一个内部的IP地址分配一个临时的外部IP地址,主要应用于拨号,对于频繁的远程联接也可以采用动态NAT。当远程用户联接上之后,动态地址NAT就会分配给他一个IP地址,用户断开时,这...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 626,882
精华内容 250,752
关键字:

动态管理原理的应用