工作-2017.08.06-周记总结篇(二)

拦截器(比如CXF框架中的)和过滤器都是拿来做什么的???都有些什么作用???

参考链接

http://blog.csdn.net/tanggao1314/article/details/48415555CXF

框架拦截器 - 积累沉淀 - CSDN博客

CXF拦截器(Interceptor)的使用 - 熔岩 - 51CTO技术博客  http://lavasoft.blog.51cto.com/62575/167288/

目前的理解是两者都有!因为拦截器的存在就是为了扩展WS或者是CXF的功能。这种扩展总得有处理对象吧?处理的对象就是拦截器‘拦’下的,处理的动作就是由自定义的或者原生的具有一定功能的拦截器发出的。至于是扔掉还是加东西,‘服饰’之类的,就要看具体的场景了。拦截器可以说相当于是个过滤器:就是把不想要的或不想显示的内容给过滤掉。

说明:

拦截器,注意这个词的重点,是拦截!什么意思呢,如果没有它,请求就像排队的人流一样,在不设卡的条件下一股脑的往景区里冲;加上拦截器后,有两个作用,一来是验证进入景区人员的合法性(是否持有门票,是否为合法公民----》为否的自然就会被挡在门外,被拉去喝茶),二来是为了保证旅客入区的安全性(有秩序,才能有安全的保障),以更好的协调游客(客户端的请求)和景区工作人员(后台)间的关系,从另一个层面来讲,这种方式也是提升效率的方法之一!

         https://zhidao.baidu.com/question/583953960492530045.html

      javaweb 过滤器跟拦截器的区别和使用_百度知道 

过滤器是一个程序,它先于与之相关的servletJSP页面运行在服务器上。过滤器可附加到一个或多个servletJSP页面上,并且可以检查进入这些资源的请求信息。在这之后,过滤器可以作如下的选择:

以常规的方式调用资源(即,调用servletJSP页面)。

利用修改过的请求信息调用资源。

调用资源,但在发送响应到客户机前对其进行修改。

阻止该资源调用,代之以转到其他的资源,返回一个特定的状态代码或生成替换输出。

说个在Servlet中过滤器的基本原理

Servlet作为过滤器使用时,它可以对客户的请求进行处理。处理完成后,它会交给下一个过滤器处理,这样,客户的请求在过滤链里逐个处理,直到请求发送到目标为止。例如,某网站里有提交修改的注册信息的网页,当用户填写完修改信息并提交后,服务器在进行处理时需要做两项工作:判断客户端的会话是否有效;对提交的数据进行统一编码。这两项工作可以在由两个过滤器组成的过滤链里进行处理。当过滤器处理成功后,把提交的数据发送到最终目标;如果过滤器处理不成功,将把视图派发到指定的错误页面。(把要处理的数据用东西包装好,然后呈递给前端页面;如果包装失败,则给予其提示)

     延伸补充:拦截器与过滤器的区别 :

     1. 拦截器是基于java的反射机制的,而过滤器是基于函数回调。

     2. 拦截器不依赖与servlet容器,过滤器依赖与servlet容器。

     3. 拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。

     4. 拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。

     5. action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次(什么意思呢??由于http请求是一次性的请求(从发起请求--到返回结果结束),过滤器filter是在web.xml配置文件中设置的,当web程序部署成功后,一旦启动,这个filter就生成了。只要是在web程序的有效生命期内,这个filter都会存在,而它是在第一次时被创建的,所以就叫调用一次。而interceptor呢?它的话,因为不同的请求可能有不同的应用【比如验证啦,日志设定啦】场景,而这些拦截器又是被配置在struts.xml文件中的,相当于是web程序中的一个工具。自然就需要被多次调用!)

 

 

 

 

 

     json类型数据和jsonp的联系和区别?

         以下内容摘录,来自:

http://www.cnblogs.com/iovec/p/5312464.html#undefined

json与jsonp区别浅析(json才是目的,jsonp只是手段) - IoveC - 博客园

一言以弊之,json返回的是一串数据,而jsonp返回的则是一段脚本代码(包含一个函数调用)

json优点,xml已成前辈,同源下的前后端数据交换(嘛是同源?),

跨域请求访问资源,padding打包,json是目的&jsonp是手段,jquery已经集成了jsonp

更新时间:12:50

json易于人阅读和编写,也易于机器解析和生成,相对网络传输速率较高,功能型网站前后端往往要频繁大量交换数据,而json凭借其强大的表现力和高颜值渐渐地成为理想的前后端数据交换语言。那xml前辈呢,我觉得应该会像微软的xp那样功成身退。

同源(也就是同一个资源页面里),前后端的数据交互格式自然就用的是json了。那跨域呢??就得用上jsonp了!~

【附:

所谓同源是指,域名,协议,端口相同。

当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面

当浏览器的百度tab页执行一个脚本的时候会检查这个脚本是属于哪个页面的,

即检查是否同源,只有和百度同源的脚本才会被执行。

来自---360百科

jsonp原理是这样的,网站A需要获取网站B的数据,网站B说我给你们一个方法,【1. 你们使用<script src="http://www.B.com/open.js"></script>标签先获取到open.js文件(网站B的责任),这里边有你们需要的数据。2. 你们获取数据后处理数据(总得处理数据吧)的方法名必须命名为foo(数据请求者的责任和义务)】,这里相当于B网站和请求获取数据者之间建立了一个协议,要求请求者务必按照规则办事,如果请求者不能同时遵守上面两条就不能按预期获取数据。额..,这也算相当于建立了一个潜规则吧

jsonp全名叫做json with padding,很形象,就是把json对象用符合js语法的形式包裹起来以使其它网站可以请求得到,也就是将json数据封装成js文件;

json是理想的数据交换格式,但没办法跨域直接获取,于是就将json包裹(padding)在一个合法的js语句中作为js文件传过去。这就是json和jsonp的区别,json是想要的东西,jsonp是达到这个目的而普遍采用的一种方法,当然最终获得和处理的还是json。所以说json是目的,jsonp只是手段。json总会用到,而jsonp只有在跨域获取数据才会用到。

jquery中ajax请求json数据实例:

(同源):

$.ajax({

    url:"persons.json",

    success:function(data){

    console.log(data);

    //ToDo..

  }

});

(跨域)

$.ajax({

url:"http://www.B.com/open.php?callback=?",

   dataType:"jsonp",

    success:function(data){

        console.log(data);

        //ToDo..

    }

});

 

        

 

问题回顾:用js创建对象有哪几种方式?

javascript三种创建对象的方式 - dongjc - 博客园

http://www.cnblogs.com/dongjc/p/5179561.html

以下内容摘自上述链接:

一、通过”字面量“方式创建。

方法:将成员信息写到{}中,并赋值给一个变量,此时这个变量就是一个对象。

例如:

 var person = (name:'dongjc', work:function() {console.log('write coding')});  

如果{}中为空,则将创建一个空对象:

 var person = {} //创建空对象 

演示代码

<scripttype="text/javascript">

var person = {

    name: "dongjc",

    age: 32,

    Introduce: function () { alert("Myname is " + this.name + ".I'm " + this.age); }

};

person.Introduce(); 

</script>

(还能根据需要进行扩展)

person.worker = 'coding'; //丰富成员信息

二:通过”构造函数“方式创建。

 方法:

 var obj = new 函数名();

 这与通过类创建对象有本质的区别。通过该方法创建对象时,会自动执行该函数。这点类似于php通过创建对像时,会自动调用构造函数,因此该方法称为通过"构造函数“方式创建对象。

<scripttype="text/javascript">

function Person() {

    this.name = "dongjc";    //通过this关键字设置默认成员

    var worker = 'coding';    //没有this关键字,对象创建后,该变量为非成员

    this.age = 32;

    this.Introduce = function () {

        alert("My name is " + this.name +".I'm " + this.age);

    };

    alert("My name is " + this.name +".I'm " + this.age);

};

var person = new Person();

person.Introduce();

</script>

此代码一共会两次跳出对话框,原因在于创建对象是自动执行了该函数。

this关键字的使用。这里的this与php中的语法有意思类似,指调用该函数的对象,这里指的是person。

三、通过object方式创建。

方法:先通过object构造器new一个对象,再往里丰富成员信息。

 var obj = new Object(); 

示例代码:

<scripttype="text/javascript">

var person = new Object();

person.name ="dongjc";

person.age = 32;

person.Introduce = function() {

        alert("My name is " +this.name + ".I'm " + this.age);

    };

person.Introduce();

</script>

在CXF框架下的WebSerivce中,SOAP是什么?RESTful风格下的访问请求有哪些,分别都是什么意思呢?

       关于SOAP

      SOAP

      SOAP是web service的标准通信协议,SOAP为simple object access protocoll的缩写,简单对象访问协议. 它是一种标准化的传输消息的XML消息格式

     延伸WSDL

      WSDL的全称是web serviceDescription Language,是一种基于XML格式的关于web服务的描述语言。其主要目的在于web service的提供者将自己的web服务的所有相关内容,如所提供的服务的传输方式,服务方法接口,接口参数,服务路径等,生成相应的完全文档,发布给使用者。使用者可以通过这个WSDL文档,创建相应的SOAP请求消息,通过HTTP传递给webservice提供者;web服务在完成服务请求后,将SOAP返回消息传回请求者,服务请求者再根据WSDL文档将SOAP返回消息解析成自己能够理解的内容。

关于RESTful风格接口请求方式的含义解释

    [译]RESTful中不同HTTP请求类型的含义 - 简书

http://www.jianshu.com/p/55a8105bb014

GET(查询)

从服务器取回数据(只是取回数据,而不会产生其他的影响)。这是一个幂等的方法(译者注:使用相同的参数重复执行,应该能够获取到相同的结果)。

POST(一般就是用来新建,新增

POST请求通常用来创建一个实体,也就是一个没有ID的资源。一旦这个请求成功执行了,就会在HTTP请求的响应中,返回这个新创建的实体的id。

PUT(一般就是用来更新)

PUT请求和POST请求类似,但是一般用来更新一个已有的实体。通过把已经存在的资源的ID和新的实体用PUT请求上传的服务器,来更新资源。

DELETE(删除)

DELETE方法用来从服务器上删除资源。和PUT类似,你需要把要删除的资源的ID上传给服务器。

OPTIONS

OPTIONS方法允许客户端请求一个服务所支持的请求方法。它所对应的响应头(response header)Allow, 它非常简单地列出了支持的方法。

比如:

 

初识MongoDB

参考内容来自网络

MongoDB和数据库的对应关系



需要注意的是:

1.     文档中的键/值对是有序的。

2.     文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。

3.     MongoDB区分类型和大小写。

4.     MongoDB的文档不能有重复的键。

5.     文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。

自定义标签库taglib的定义及其使用方法

jsp中的taglib - 大大 - CSDN博客

http://blog.csdn.net/u011513323/article/details/38271589

关于taglib标签

JSP中使用Taglib

标准的JSP标记可以调用JavaBeans组件或者执行客户的请求,这大大降低了JSP开发的复杂度和维护量。JSP技术也允许你自定义的taglib,其实换句话说,taglib可以看成是对JSP标记的一种扩展,正如xml是对html的一种扩展一样。taglib通常定义在tag标签库中,这种标签库存放着你自己定义的tag标签。简而言之,如果使用taglib,那么你可以设计自己的JSP标记。

数据库Java       

一般来说,自定义tag标签主要用于操作隐藏对象、处理html提交的表单、访问或其他企业级的服务,诸如邮件和目录操作等等。自定义tag标签的使用者一般都是那些对编程语言非常精通,而且对数据访问和企业级服务都非常熟悉的程序员,对于HTML设计者来说,使得他可以不去关注那些较复杂的商业逻辑,而将精力放在网页设计上。同时,它也将库开发者和库使用者进行合理分工,自定义tag标签将那些重复工作进行封装,从而大大提高了生产力,而且可以使得tag库可用于不同的项目中,完美地体现了软件复用的思想。

Taglib指令:定义一个标签库,以及其自定义标签的前缀。


前端页面中href="javascript:void(0);"与#的区别

 

http://blog.csdn.net/minedayu/article/details/38172101

href="javascript:void(0);"与#的区别 - 技术分享 - CSDN博客 

 

JavaScript将<a>标签设置为空链接有两种方式,第一种是href="#",另外一种是href=":void(0);"。两种方式都设置了标签为空链接,但是两种方式还是有些不同的地方。

href="#",当点击的时候会跳转到页面的顶部,相当于点击了一个锚点,在URL的后面也会出现一个#的标识符号。

javascript而href=":void(0);"则是要执行一个javascript的表达式。void(0)不执行也不返回任何东西,因此不会发生任何跳转。

所有设置空链接推荐用href="javascript:void(0);"

 

 

【补充内容】

./和../以及/之间的区别?_百度知道 

https://zhidao.baidu.com/question/544197599.html

当前目录./

../ 父级目录

/ 根目录


在xml配置文件的XMLS,xsi都是干嘛的?

内容来自

http://bbs.csdn.net/topics/390751819

xml中的xmlns,xmlns:xsi,xsi:schemaLocation有什么作用,如果没有会怎么样呢-CSDN论坛 

我来给你解释一下吧,首先这个文件是一个xml文件,那么他里面的所有内容都符合xml语法规范,开头的<project></project>这最外层同样也是一个xml文件的标签,后面那一长串也就是所谓的属性,其中xmlns表示命名空间,xmlns="http://maven.apache.org/POM/4.0.0" 这表示默认命名空间,而下面xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 这个命名空间里面的元素或者属性就必须要以xsi:“xxxx”中说明的这种方式来写,比如schemaLocation就是他的一个属性,所以写成xsi:schemaLocation,而默认命名空间不带类似xsi这种,其实xml标签名称有个专业叫法叫做QName,而如果没有前面的xsi:这种一般叫做NCName。所以你看mvn里面的<dependency>这种就是默认命名空间下面的元素,最后那一行就表示把定义这个命名空间的schema文件给引用进来,好让eclipse这类型工具能够解析和验证你的xml文件是否符合语法规范。等同于<import namespace="xxx" schemaLocation="xxx.xsd"/>

通俗点来说就是:

xmlns---》一个大工具包

xsi---》这个包下又分为电焊用的,修水管儿,修共享单车的

xsi:xxxxxx-----XXX代表的是某个包下的具体工具,比如水管包儿下的扳手,电焊包儿下的焊枪

xsd-----》就是具体工具的说明书咯,该怎么用,用在哪儿。。。是跟谁说呢?跟Eclipse说。用法对了,才能正常的展开工作嘛!

 

业务流程梳理上的一些注意点

项目开发前期,如何更完整、准确地理解业务逻辑-CSDN

http://bbs.csdn.net/topics/370259044

 

首先是一个大背景,即软件设计的背景

其实,对于IT业摸爬滚打多年的从业人士来说,一般都能有这样的一个认识或者共识:中国的软件业缺乏设计。

中国的软件行业人才架构是典型的金字塔型,而且我们现在工作的方式有多少公司不是站在眼前利益的角度上看问题呢。从这个角度来看,这是造成设计缺失的一个原因。

前段时间,听朋友说,印度有家公司在招纳程序员时首先要做的就是培训,最后他们给出了一个这样的结果:两名程序员经过培训后针对同一个题目编程,最后两人的代码居然完全一样,甚至是变量的命名。

上面这件事情韵味深长~

我们在说设计,中国目前来说是中小公司多,而且非常多。而公司的人才架构又不可能像大公司那样,而且团队的磨合程度也需要时间的问题。不同层次的人对待同一件事物的认知程度又不一样,那么如何能够在项目中总结成一套适合自己团队体系的【沟通-设计-开发】的流程的确是一件不容易的事情。

目前软件行业有很多开发方法或流程,但这些东西不是直接拿来主义的,需要有经验的人在运用过程中不断的扩展与剔除。

实际的项目中,必定会有很多生涩难懂的业务,那么针对沟通,UML是最好的选择,开发与开发,开发与测试,经理与客户等!比较好的工具比如说EA,这东西比较好。目前我们的团队就是使用这个,支持正反向工程,支持SVN等。

 

刚加入公司,如何快速熟悉公司项目并快速上手 - 王学武的专栏 - CSDN博客

http://blog.csdn.net/wang_xuewu/article/details/49534281

三条准则:

1.获取尽可能少的信息

2.尽可能获取有效的信息

3.尽可能的运用你获取到的信息

学习尽可能少的这个目标强迫你尽可能的做一下三个重要的事情:

1.它强迫你去学习“正确”的信息。如果你只获取完全必要的信息,完全必要的信息被定义为:它能让你做必要的事情。

2.它将强迫你去做你在短时间内能够实现的事情。如果任务A需要学习很多东西,而任务B需要很少,做任务B吧,它将让你花费更少的时间去学习预备知识,你将快速的完成目标。

3.它将防止你因为试图获知所有的事情这样的任务而心烦,提供给你一个更加有用的学习准则去从正确的地方开始你的工作。

 

如何让项目成员尽快熟悉系统业务? - 知乎

https://www.zhihu.com/question/21883136/answer/24717781

对于一个新的业务系统,有这些问题需要去考虑:

1)业务系统主要支撑的是什么业务

这个问题里又包括两个要点:

核心流程如何?核心的业务模型又是怎样的?

2)回到到业务系统上,了解其大致的核心业务功能模块,以及各模块之间的联系和衔接方法

3)然后再上升到架构层面,数据交互是怎样的?CS,BS,端到端等等。。以及这个业务系统在实际的应场景中的地位,它同上游(用户)和下游(数据传输)在业务上的联系,相互间协同作用。

业务系统支撑了什么样的业务,存储了哪些核心业务对象和数据,这是对一个业务系统最基础的全局理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值