Filter |
Servlet |
|
接口 |
实现Filter接口 |
实现Servlet接口 |
使用步骤 |
1、创建类,继承接口 2、实现方法 init() doFilter() destroy()
3、配置WEB-INF/web.xml |
1、创建类,继承接口 2、实现方法 init() service() destroy() getServletConfig() getServletInfo() 3、配置WEB-INF/web.xml |
初始化时间 |
Servlet容器启动之后即初始化 |
Servlet类被调用之后初始化、先于Filter调用。 初始化可以在容器启动后被调用但需要配置。 |
调用顺序 |
1. 按照web.xml中的映射配置顺序按照配置条件从后向前调用 2. 层次调用doFilter()方法中FilterChain.doFilter()之前的内容 3. 调用Servlet中的service()方法 4. service方法执行完毕后,层次调用doFilter()中FilterChain.doFilter()之后的方法,顺序与之前的相反
|
按照web.xml中的映射配置顺序按照配置条件从后向前调用第一个满足条件的Servlet,调用之前事先执行满足条件的Filter,不存在层次调用Servlet问题 |
销毁 |
服务器停止后销毁,晚于Servlet销毁之后 |
服务器停止后销毁 |
作用 |
1. 在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest。 2. 根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据。 3. 在HttpServletResponse到达客户端之前,拦截HttpServletResponse。 4. 根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。 |
主要是处理客户端的请求并将其结果发送到客户端。 |
Web Service和Servlet的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web Service和Servlet的区别相关的知识,希望对你有一定的参考价值。
最近项目中有提供或者调用别的接口,在纠结中到底是用servlet还是用webservice,所以上网查看了下他们以及RMI之间的区别,方便加深了解。首先比较下servlet和webservice下
请求:
servlet:提供了请求/响应模式,是JAVA的一种规范,只能使用于java上,用来替代早期使用的难懂的CGI,是一种无状态的请求响应,客户端访问一个服务器的url,只需要发送简单的httprequest即可。 规定了四个范围:pageContext、request、session、application。一定依赖于各种SERVLET容器,但servlet只能接受一个简单的http请求;
WebService最早是微软提出了一种以XML为载体网络信息传输的规范,现在几乎所有的语言与平台都支持,带有状态机制,不依赖于SERVLET容器,可以发送一个xml作为其请求内容,WebService通常是基于http的远程方法调用(RMI),号称是可以反回远程对象, 一般来说客户段可以象调用本地方法一样调用WebService的方法。
传输:
servlet使用http协议传输数据,如果你用Servlet返回XML,那个XML的描述框架就是你定的,必须告知使用者具体的说明,没有统一标准。
webservice使用固定的XML格式封装成soap消息,可以使用http作为底层数据传输,但并不局限于http协议,方法返回消息是有标准的。
返回结果:
servlet返回的是html页面;
webservice返回的可以是复杂对象甚至使用附件或者mutidata的二进制文件。
部署:
servlet需要遵守j2ee的Web Application规范部署的应用服务器上,如tomcat,weblogic,websphere;
WebService则需要有WSDL文件来部署服务,或者使用UDDI注册。
优势:
WebService的跨平台特性是servlet不能比的,可以被各种语言调用;
servlet相对来说速度上的优势也是不可忽视的。
接下来在看看RMI和webservice中的
rmi的客户端和服务端都必须是java,webservice没有这个限制
webservice是在http协议上传递xml文本文件,与语言和平台无关
rmi是在tcp协议上传递可序列化的java对象,只能用在java虚拟机上,绑定语言
RMI是EJB远程调用的基础,仅用RMI技术就可以实现远程调用,使用EJB是为了实现组件,事物,资源池,集群等功能。
WebService是通过XML来传输数据,可用http等协议因此可在异构系统间传递,并且可以穿过防火墙,可在公网上远程调用 参考技术A 最近项目中有提供或者调用别的接口,在纠结中到底是用servlet还是用webservice,所以上网查看了下他们以及RMI之间的区别,方便加深了解。
首先比较下servlet和webservice下
请求:
servlet:提供了请求/响应模式,是JAVA的一种规范,只能使用于java上,用来替代早期使用的难懂的CGI,是一种无状态的请求响应,客户端访问一个服务器的url,只需要发送简单的httprequest即可。 规定了四个范围:pageContext、request、session、application。一定依赖于各种SERVLET容器,但servlet只能接受一个简单的http请求;
WebService最早是微软提出了一种以XML为载体网络信息传输的规范,现在几乎所有的语言与平台都支持,带有状态机制,不依赖于SERVLET容器,可以发送一个xml作为其请求内容,WebService通常是基于http的远程方法调用(RMI),号称是可以反回远程对象, 一般来说客户段可以象调用本地方法一样调用WebService的方法。
传输:
servlet使用http协议传输数据,如果你用Servlet返回XML,那个XML的描述框架就是你定的,必须告知使用者具体的说明,没有统一标准。
webservice使用固定的XML格式封装成soap消息,可以使用http作为底层数据传输,但并不局限于http协议,方法返回消息是有标准的。
返回结果:
servlet返回的是html页面;
webservice返回的可以是复杂对象甚至使用附件或者mutidata的二进制文件。
部署:
servlet需要遵守j2ee的Web Application规范部署的应用服务器上,如tomcat,weblogic,websphere;
WebService则需要有WSDL文件来部署服务,或者使用UDDI注册。
优势:
WebService的跨平台特性是servlet不能比的,可以被各种语言调用;
servlet相对来说速度上的优势也是不可忽视的。
接下来在看看RMI和webservice中的
rmi的客户端和服务端都必须是java,webservice没有这个限制
webservice是在http协议上传递xml文本文件,与语言和平台无关
rmi是在tcp协议上传递可序列化的java对象,只能用在java虚拟机上,绑定语言
RMI是EJB远程调用的基础,仅用RMI技术就可以实现远程调用,使用EJB是为了实现组件,事物,资源池,集群等功能。
WebService是通过XML来传输数据,可用http等协议因此可在异构系统间传递,并且可以穿过防火墙,可在公网上远程调用本回答被提问者和网友采纳 参考技术B 1、WebService通常是基于http的远程方法调用(RMI),号称是可以反回远程对象, 一般来说客户段可以象调用本地方法一样调用WebService的方法。
2、WebService使用的SOAP是一种通用的格式,不管什么样的客户端都可以。
3、如果你用Servlet返回XML,那个XML的描述框架就是你定的喽?你能确保别人都能看明白你的XML格式含义?
4、WebService并不复杂,开发起来甚至比Servlet还简单。
5、如果客户段需要传递一个复杂的多维数组给服务端,Servlet怎么办?
6。webservice的优点在于可以传递对象(其实是结构化的数据),从而对异构系统来说更有优势
其实最重点要的,是WebService的方法返回消息是有标准的(大家通用,谁都能看懂),如果用Servlet所返回XML,是没有标准的 参考技术C WEB服务器是提供WEB服务的程序。
Servlet是一种容器内的技术,其实是 Server applet的简称,什么意思呢,就是说servlet是在服务器上运行的小程序,所以servlet技术不一定只在WEB服务器上使用。
只是目前常见的Java技术,都是把WEB服务器上的Servlet直接叫做Servlet。
所以运行Servlet,首先是需要WEB服务器的。
然后还要有一个小程序的容器,就是Servlet容器,专门来调用Servlet。
目前就是大部分的J2EE容器能够完成 Servlet的执行。
支持J2EE容器的WEB服务器,也叫 WEB服务器,不支持的,也叫WEB服务器。
Filter与Servlet的区别和联系
以上是关于Web Service和Servlet的区别的主要内容,如果未能解决你的问题,请参考以下文章