第一篇:webService基础总结
WebService是一种跨编程语言和跨操作系统平台的远程调用技术
所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。 除了WebService外,常见的远程调用技术还有RMI(Remote method invoke)和CORBA,由于WebService的跨平台和跨编程语言特点,因此比其他两种技术应用更为广泛,但性能略低。
WebService使用SOAP协议实现跨编程语言和跨操作系统平台
WebService采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的参数是什么,以及服务对象的返回结果是什么)。WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议(simple object access protocol,简单对象访问协议)。
SOAP协议 = HTTP协议 + XML数据格式
HTTP协议和XML是被广泛使用的通用技术,各种编程语言对HTTP协议和XML这两种技术都提供了很好的支持,WebService客户端与服务器端使用什么编程语言都可以完成SOAP的功能,所以,WebService很容易实现跨编程语言,跨编程语言自然也就跨了操作系统
WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方法可以调用,所以,WebService务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。 WSDL(webservice description language)是基于XML格式的,它是WebService客户端和服务器端都能理解的标准格式,其中描述的信息可以分为what,where,how等部分! WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:
• 注册到UDDI服务器,以便被人查找 • 直接告诉给客户端调用者,例如,在自己网站给出信息或邮件告诉。
第二篇:WebService优缺点[最终版]
Web服务的优缺点分析
当前WebService是一个热门话题。但是,WebService究竟是什么?,WebService有什么优点和缺点,什么情况下应该用WebService?什么情况下不应该用WebService?是需要我们正确认识的。
实际上,WebService的主要目标是跨平台的可互操作性。为了达到这一目标,WebService完全基于XML(可扩展标记语言)、XSD(XMLSchema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。由此可以看出,在以下三种情况下,使用 WebService会带来极大的好处。
优点一:跨防火墙的通信
如果应用程序有成千上万的用户,而且分布在世界 各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服务器。在这种情况下,使用DCOM就不是那么简 单,通常也不便于把客户端程序发布到数量如此庞大的每一个用户手中。传统的做法是,选择用浏览器作为客户端,写下一大堆ASP页面,把应用程序的中间层暴 露给最终用户。这样做的结果是开发难度大,程序很难维护。
举个例子,在应用程序里加入一个新页面,必须先建立好用户界面(Web页面),并在这个页面后面,包含相应商业逻辑的中间层组件,还要再建立至少一个ASP页面,用 来接受用户输入的信息,调用中间层组件,把结果格式化为HTML形式,最后还要把“结果页”送回浏览器。要是客户端代码不再如此依赖于HTML表单,客户 端的编程就简单多了。
如果中间层组件换成WebService的话,就可以从用户界面直接调用中间层组件,从而省掉建立ASP页面的 那一步。要调用WebService,可以直接使用MicrosoftSOAPToolkit或.NET这样的SOAP客户端,也可以使用自己开发的 SOAP客户端,然后把它和应用程序连接起来。不仅缩短了开发周期,还减少了代码复杂度,并能够增强应用程序的可维护性。同时,应用程序也不再需要在每次 调用中间层组件时,都跳转到相应的“结果页”。
从经验来看,在一个用户界面和中间层有较多交互的应用程序中,使用 WebService这种结构,可以节省花在用户界面编程上20%的开发时间。另外,这样一个由WebService组成的中间层,完全可以在应用程序集 成或其它场合下重用。最后,通过WebService把应用程序的逻辑和数据“暴露”出来,还可以让其它平台上的客户重用这些应用程序。
优点二:应用程序集成
企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的、在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。应用程序经 常需要从运行在IBM主机上的程序中获取数据;或者把数据发送到主机或UNIX应用程序中去。即使在同一个平台上,不同软件厂商生产的各种软件也常常需要 集成起来。通过WebService,应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用。
例如,有一个订单登 录程序,用于登录从客户来的新订单,包括客户信息、发货地址、数量、价格和付款方式等内容;还有一个订单执行程序,用于实际货物发送的管理。这两个程序来 自不同软件厂商。一份新订单进来之后,订单登录程序需要通知订单执行程序发送货物。通过在订单执行程序上面增加一层WebService,订单执行程序可 以把“AddOrder”函数“暴露”出来。这样,每当有新订单到来时,订单登录程序就可以调用这个函数来发送货物了。
优点三:B2B的集成
用WebService集成应用程序,可以使公司内部的商务处理更加自动化。但当交易跨越供应商和客户、突破公司的界限时会怎么样呢?跨公司的商务交易集成通常叫做B2B集成。
WebService是B2B集成成功的关键。通过WebService,公司可以把关键的商务应用“暴露”给指定的供应商和客户。例如,把电子下单系 统和电子发票系统“暴露”出来,客户就可以以电子的方式发送订单,供应商则可以以电子的方式发送原料采购发票。当然,这并不是一个新的概念,EDI(电子 文档交换)早就是这样了。但是,WebService的实现要比EDI简单得多,而且WebService运行在Internet上,在世界任何地方都可 轻易实现,其运行成本就相对较低。不过,WebService并不像EDI那样,是文档交换或B2B集成的完整解决方案。WebService只是B2B 集成的一个关键部分,还需要许多其它的部分才能实现集成。
用WebService来实现B2B集成的最大好处在于可以轻易实现互操作 性。只要把商务逻辑“暴露”出来,成为WebService,就可以让任何指定的合作伙伴调用这些商务逻辑,而不管他们的系统在什么平台上运行,使用什么 开发语言。这样就大大减少了花在B2B集成上的时间和成本,让许多原本无法承受EDI的中小企业也能实现B2B集成。
优点四:软件和数据重用
软件重用是一个很大的主题,重用的形式很多,重用的程度有大有小。最基本的形式是源代码模块或者类一级的重用,另一种形式是二进制形式的组件重用。
当前,像表格控件或用户界面控件这样的可重用软件组件,在市场上都占有很大的份额。但这类软件的重用有一个很大的限制,就是重用仅限于代码,数据不能重用。原因在于,发布组件甚至源代码都比较容易,但要发布数据就没那么容易,除非是不会经常变化的静态数据。
WebService在允许重用代码的同时,可以重用代码背后的数据。使用WebService,再也不必像以前那样,要先从第三方购买、安装软件组 件,再从应用程序中调用这些组件;只需要直接调用远端的WebService就可以了。举个例子,要在应用程序中确认用户输入的地址,只需把这个地址直接 发送给相应的WebService,这个WebService就会帮你查阅街道地址、城市、省区和邮政编码等信息,确认这个地址是否在相应的邮政编码区 域。WebService的提供商可以按时间或使用次数来对这项服务进行收费。这样的服务要通过组件重用来实现是不可能的,那样的话你必须下载并安装好包 含街道地址、城市、省区和邮政编码等信息的数据库,而且这个数据库还是不能实时更新的。
另一种软件重用的情况是,把好几个应用程序的 功能集成起来。例如,要建立一个局域网上的门户站点应用,让用户既可以查询联邦快递包裹,查看股市行情,又可以管理自己的日程安排,还可以在线购买电影 票。现在Web上有很多应用程序供应商,都在其应用中实现了这些功能。一旦他们把这些功能都通过WebService“暴露”出来,就可以非常容易地把所 有这些功能都集成到你的门户站点中,为用户提供一个统一的、友好的界面。
将来,许多应用程序都会利用WebService,把当前基 于组件的应用程序结构扩展为组件/WebService的混合结构,可以在应用程序中使用第三方的WebService提供的功能,也可以把自己的应用程 序功能通过WebService提供给别人。两种情况下,都可以重用代码和代码背后的数据。
从以上论述可以看出,WebService在通过Web进行互操作或远程调用的时候是最有用的。不过,也有一些情况,WebService根本不能带来任何好处。
缺点一:单机应用程序
目前,企业和个人还使用着很多桌面应用程序。其中一些只需要与本机上的其它程序通信。在这种情况下,最好就不要用WebService,只要用本地的 API就可以了。COM非常适合于在这种情况下工作,因为它既小又快。运行在同一台服务器上的服务器软件也是这样。最好直接用COM或其它本地的API来 进行应用程序间的调用。当然WebService也能用在这些场合,但那样不仅消耗太大,而且不会带来任何好处。
缺点二:局域网的同构应用程序
在许多应用中,所有的程序都是用VB或VC开发的,都在Windows平台下使用COM,都运行在同一个局域网上。例如,有两个服务器应用程序需要相互 通信,或者有一个Win32或WinForm的客户程序要连接局域网上另一个服务器的程序。在这些程序里,使用DCOM会比SOAP/HTTP有效得多。与此相类似,如果一个.NET程序要连接到局域网上的另一个.NET程序,应该使用.NETremoting。有趣的是,在.NETremoting中,也可以指定使用SOAP/HTTP来进行WebService调用。不过最好还是直接通过TCP进行RPC调用,那样会有效得多。
第三篇:java 调用webservice的各种方法总结
一、利用jdk web服务api实现,这里使用基于 SOAP message 的 Web 服务
1.首先建立一个Web services EndPoint:
Java代码
package Hello;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.xml.ws.Endpoint;
@WebService
public class Hello {
@WebMethod
public String hello(String name){
return “Hello, ” + name + “n”;}
public static void main(String[] args){
// create and publish an endpoint
Hello hello = new Hello();
Endpoint endpoint Endpoint.publish(“http://localhost:8080/hello”, hello);
} }
=
2.使用 apt 编译 Hello.java(例:apt-d [存放编译后的文件目录] Hello.java),会生成 jaws目录
3.使用java Hello.Hello运行,然后将浏览器指向http://localhost:8080/hello?wsdl就会出现下列显示
4.使用wsimport 生成客户端
使用如下:wsimport-p.-keep http://localhost:8080/hello?wsdl
5.客户端程序:
Java代码
1.class HelloClient{ 2.3.public static void main(String args[]){ 4.5.HelloService service = new HelloService();6.7.Hello helloProxy = service.getHelloPort();8.9.String hello = helloProxy.hello(“你好”);10.11.System.out.println(hello);12.13.} 14.15.} 16.二、使用xfire,我这里使用的是myeclipse集成的xfire进行测试的
利用xfire开发WebService,可以有三种方法:
1一种是从javabean 中生成;
一种是从wsdl文件中生成;
还有一种是自己建立webservice
步骤如下:
用myeclipse建立webservice工程,目录结构如下:
首先建立webservice接口,代码如下:
Java代码
1.package com.myeclipse.wsExample;2.3.//Generated by MyEclipse 4.5.6.7.public interface IHelloWorldService { 8.9.10.11.public String example(String message);12.13.14.15.} 16.Java代码
1.package com.myeclipse.wsExample;2.3.//Generated by MyEclipse 4.5.6.7.public class HelloWorldServiceImpl implements IHelloWorldService { 8.9.10.11.public String example(String message){ 12.13.return message;14.15.} 16.17.18.19.} 20.修改service.xml 文件,加入以下代码:
Xml代码
1.2.3.
客户端实现如下:
Java代码
1.package com.myeclipse.wsExample.client;2.3.import java.net.MalformedURLException;4.5.import java.net.URL;6.7.8.9.import org.codehaus.xfire.XFireFactory;10.11.import org.codehaus.xfire.client.Client;12.13.import org.codehaus.xfire.client.XFireProxyFactory;14.15.import org.codehaus.xfire.service.Service;16.17.import org.codehaus.xfire.service.binding.ObjectServiceFactory;18.19.20.21.import com.myeclipse.wsExample.IHelloWorldService;22.23.24.25.public class HelloWorldClient { 26.27.public static void main(String[] args)throws MalformedURLException, Exception { 28.29.// TODO Auto-generated method stub 30.31.Service s=new ObjectServiceFactory().create(IHelloWorldService.class);32.33.XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire());34.35.String url=“http://localhost:8989/HelloWorld/services/HelloWorldService”;36.37.38.39.try 40.41.{ 42.43.44.45.IHelloWorldService hs=(IHelloWorldService)xf.create(s,url);46.47.String st=hs.example(“zhangjin”);48.49.System.out.print(st);50.51.} 52.53.catch(Exception e)54.55.{ 56.57.e.printStackTrace();58.59.} 60.61.} 62.63.64.65.} 66.这里再说点题外话,有时候我们知道一个wsdl地址,比如想用java客户端引用.net 做得webservice,使用myeclipse引用,但是却出现无法通过验证的错误,这时我们可以直接在类中引用,步骤如下:
Java代码
1.public static void main(String[] args)throws MalformedURLException, Exception { 2.3.// TODO Auto-generated method stub 4.5.Service s=new ObjectServiceFactory().create(IHelloWorldService.class);6.7.XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire());8.9.10.11.//远程调用.net开发的webservice 12.13.Client c=new Client(new URL(“http://www.xiexiebang.com/axis2/
同理,也需要将axis2复制到webapp目录中
在axis2中部署webservice有两种方法,第一种是pojo方式,这种方式比较简单,但是有一些限制,例如部署的类不能加上包名
第二种方式是利用xml发布webservice,这种方法比较灵活,不需要限制类的声明
下面分别说明使用方法:
1.pojo方式:在Axis2中不需要进行任何的配置,就可以直接将一个简单的POJO发布成WebService。其中POJO中所有的public方法将被发布成WebService方法。先实现一个pojo类:
Java代码
1.public class HelloWorld{ 2.3.public String getName(String name)4.5.{ 6.7.return ”你好 “ + name;8.9.} 10.11.public int add(int a,int b)12.13.{ 14.15.return a+b;16.17.} 18.19.} 20.由于这两个方法都是public类型,所以都会发布成webservice。编译HelloWorld类后,将HelloWorld.class文件放到%tomcat%webappsaxis2WEB-INFpojo目录中(如果没有pojo目录,则建立该目录),然后打开浏览器进行测试:
输入一下url:
http://localhost:8080/axis2/services/listServices
会列出所有webservice
这是其中的两个webservice列表,接着,在客户端进行测试:
首先可以写一个封装类,减少编码,代码如下:
Java代码
1.package MZ.GetWebService;2.3.import javax.xml.namespace.QName;4.5.6.7.import org.apache.axis2.AxisFault;8.9.import org.apache.axis2.addressing.EndpointReference;10.11.import org.apache.axis2.client.Options;12.13.import org.apache.axis2.rpc.client.RPCServiceClient;14.15.16.17.18.19.public class GetWSByAxis2 { 20.21.private static String EndPointUrl;22.23.private static String QUrl=”http://ws.apache.org/axis2“;
24.25.private QName opAddEntry;26.27.public String WSUrl;28.29.public RPCServiceClient setOption()throws AxisFault 30.31.{ 32.33.RPCServiceClient serviceClient = new RPCServiceClient();34.35.Options options = serviceClient.getOptions();36.37.EndpointReference targetEPR = new EndpointReference(WSUrl);38.39.options.setTo(targetEPR);40.41.return serviceClient;42.43.} 44.45.46.47.public QName getQname(String Option){ 48.49.50.51.return new QName(QUrl,Option);52.53.} 54.55.//返回String 56.57.public String getStr(String Option)throws AxisFault 58.59.{ 60.61.RPCServiceClient serviceClient =this.setOption();62.63.64.65.opAddEntry =this.getQname(Option);66.67.68.69.String str =(String)serviceClient.invokeBlocking(opAddEntry, 70.71.new Object[]{}, new Class[]{String.class })[0];72.73.return str;74.75.} 76.77.// 返回一维String数组 78.79.public String[] getArray(String Option)throws AxisFault
80.81.{ 82.83.RPCServiceClient serviceClient =this.setOption();84.85.86.87.opAddEntry =this.getQname(Option);88.89.90.91.String[] strArray =(String[])serviceClient.invokeBlocking(opAddEntry, 92.93.new Object[]{}, new Class[]{String[].class })[0];94.95.return strArray;96.97.} 98.99.//从WebService中返回一个对象的实例
100.101.public Object getObject(String Option,Object o)throws AxisFault 102.103.{ 104.105.RPCServiceClient serviceClient =this.setOption();106.107.QName qname=this.getQname(Option);108.109.Object object = serviceClient.invokeBlocking(qname, new Object[]{},new Class[]{o.getClass()})[0];110.111.return object;112.113.} 114.115.116.117.///////////////////////////////////////// 读者可以自己封装数据类型,如int,byte,float等数据类型
118.119.} 120.客户端调用方法:
Java代码
1.MZ.GetWebService.GetWSByAxis2 ws=new MZ.GetWebService.GetWSByAxis2();2.3.ws.WSUrl=”http://localhost:8989/axis2/services/HelloWorld“;4.5.HelloWorld hello=(HelloWorld)ws.getObject(”getName“, HelloWorld.class);6.7.8.9.10.11.System.out.println(hello.getName(”zhangjin“));12.2.使用service.xml发布webservice,这种方式和直接放在pojo目录中的POJO类不同。要想将MyService类发布成Web Service,需要一个services.xml文件,这个文件需要放在META-INF目录中,该文件的内容如下:
Xml代码
1.
http://localhost:8080/axis2/services/myService?wsdl
除此之外,还有直接可以在其中制定webservice操作方法:可以这样些service.xml文件
Java代码
1. 10.11.service.HelloWorld 12.13. 14.15.
第四篇:WebService客户端代码生成方式总结
一、Webservice可以使用的框架很多。AXIS、CXF、JAX、XFIRE,这些框架都可以根据wsdl文件生成ws的服务器和客户端代码。
二、Ws的调用方式有三种,http post、http get、soap post。本人建议使用http post,他访问远程ws接口的速度比使用soap post要快些。象使用axis框架实现soap post方式来说,简单的接口还好,对于使用了大量代理类及带有soaphead的ws,且还要在本地生成一大堆JAVA类来和服务端对应。特别如下这种情况,axis好像无法实现。Soaphead如下 67677
下面就如何书写客户端代码详细讲解下。1.通过发送http post请求来调用ws。
SOAPUI是个不错的工具,他可以根据wsdl文件生成测试例子。另外重要的是,它可以生成wsdl对应的请求报文和响应报文。这样我们在调用别人写的ws时,不管多复杂的ws都可以简单的调用。首先按照SOAPUI显示的请求报文格式拼装我们的请求报文,使用java.net.HttpURLConnection对象来发送http post请求。然后使用输出流、输出流获得响应报文,再用Element解析报文得到要取的数据。示例代码如下: JAVA类SoapInvoke: package test;
import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;
public class SoapInvoke {
public static void main(String[] args){
} try {
} soapSpecialConnection();e.printStackTrace();} catch(Exception e){ public static void soapSpecialConnection()throws Exception {
//拼装soap请求报文
StringBuilder sb = new StringBuilder();StringBuilder soapHeader = new StringBuilder();soapHeader.append(“
//设置soap请求报文的相关属性
String url=“http://localhost:8080/CXFServer/SayHelloService”;URL u = new URL(url);HttpURLConnection conn =(HttpURLConnection)u.openConnection();conn.setDoInput(true);conn.setDoOutput(true);conn.setUseCaches(false);conn.setDefaultUseCaches(false);conn.setRequestProperty(“Host”, “localhost:8080”);conn.setRequestProperty(“Content-Type”, “text/xml;charset=utf-8”);conn.setRequestProperty(“Content-Length”, String.valueOf(soapHeader.length()));conn.setRequestProperty(“SOAPAction”, “");conn.setRequestMethod(”POST“);//定义输出流
OutputStream output = conn.getOutputStream();if(null!= soapHeader){ byte[] b = soapHeader.toString().getBytes(”utf-8“);//发送soap请求报文
output.write(b, 0, b.length);} output.flush();output.close();//定义输入流,获取soap响应报文
InputStream input = conn.getInputStream();int c =-1;//sb为返回的soap响应报文字符串
while(-1!=(c = input.read())){ sb.append((char)c);} input.close();}
} 2.通过axis来调用ws。
对于使用了复杂代理类的ws,我们在调用时可以使用AXIS、CXF、xfire架包来自动生成ws客户端JAVA代码。下面以axis为例,来展示。服务器端主要JAVA代码 package test;
import javax.jws.WebService;
@WebService public class SayHelloImpl implements SayHelloService {
public wsResult sayHelloMr(String name){
wsResult retObj = new wsResult();
retObj.setResultVal(”Hello,mr “ + name);
return retObj;
}
public wsResult sayHelloMiss(InputClass input){
wsResult retObj = new wsResult();
retObj.setResultVal(”Hello,Miss “ + input.getName());
return retObj;
} } 客户端:
1)新建wsdltojava.bat文件,放到C盘,文件内容如下: set Axis_Lib=E:axis-bin-1_4axis-1_4lib set Java_Cmd=java-Djava.ext.dirs=%Axis_Lib% set Axis_Servlet=http://localhost:8080/CXFServer/SayHelloService?wsdl %Java_Cmd% org.apache.axis.wsdl.WSDL2Java-u %Axis_Servlet% 其中Axis_Lib为本地axis架包的路径;Axis_Servlet为本地ws的URL,这里也可以设置为此ws服务器对应的wsdl文件的路径。
2)在DOS里,执行wsdltojava.bat。在C盘根目录下就会生成JAVA客户端的代码了 3)新建一个java类Invoke,代码如下:
package test;
public class invoke {
} }
SayHelloService stub = svc.getSayHelloImplPort();//调用
//WsResult wsResult = stub.sayHelloMr(”zhouyun“);InputClass inputClass=new InputClass();inputClass.setName(”zhouyun“);WsResult wsResult = stub.sayHelloMiss(inputClass);System.out.println(”结果是:" + wsResult.getResultVal());public static void getResult(){ try { SayHelloImplServiceLocator svc = new } public static void main(String[] args)throws Exception { getResult();SayHelloImplServiceLocator();} catch(Exception e){ } System.out.println(e);Ps: 1.通过命令生成的java客户端代码里SayHelloImplServiceLocator类是调用ws的入口。
2.执行此类,Myelipse控制台会输出Hello,Miss zhouyun,代表调用成功。
3.象JAX、xfire架包生成的客户端代码不能实现代理类输入、输出,只可以实现简单数据类型输入、输出,象String、Map、AaaryList等等。只有axis可以实现代理类的输入、输出。
第五篇:材料科学基础总结
金属学复习总结
钢的牌号代表的钢的种类: Q235 9SiCr 1Cr18Ni9 45 H62 KTH300-06 4Cr13 LC4 LY1 1Cr18Ni9Ti QT450-10 QT700-2 HT200 40CrNi T7A QT400-15 20CrMnTi CrWMn LF5 60Si2Mn Q345 H80 Q215 65Mn 20CrMnTi 40 40Cr 40Cr ZGMn13-1 15Cr 60Si2Mn 3Cr13 2Cr13 GCr15 5CrNiMo 1Cr18Ni9 T8 RUT260 W18Cr4V Q345 HT250 Q275 1Cr13 Q255 T12 20 GCr15SiMn HT250
钢的种类代表的常用钢种: 如: 优质碳素结构钢45, 高锰钢 渗碳钢 灰铸铁 球墨铸铁 合金弹簧钢 低合金工具钢 蠕墨铸铁 奥氏体不锈钢 普通质量碳素结构钢 调质钢 马氏体不锈钢 碳素工具钢 1.过冷奥氏体发生的马氏体转变属于(非扩散型相变)2.珠光体型的组织是由铁素体和渗碳体组成的(机械混合物)3.碳钢谇火要得到马氏体组织,其冷却速度要()临界冷却速度(vk)。4.工件淬火后需立即回火处理,随着回火温度的提高,材料的硬度()5.共析成分的液态铁碳合金缓慢冷却得到的平衡组织是P
表征材料表面局部区域内抵抗变形能力的指标为()2.下列原子结合键既具有方向性又具有饱和性的是()3.下面哪个不属于大多数金属具有的晶体结构()4.面心立方结构晶胞中原子数个数是()
5.如图1所示的位错环中,属于刃型位错的是()6.固体材料中物质传输的方式为()7.纯铁在室温下的晶体结构为()8.由一种成分的液相同时凝固生成两种不同成分面相的过程称为()9.碳原子溶于α-Fe形成的固溶体为()10.钢铁材料的热加工通常需要加热到()相区
l.成分三角形中标出了O材料的成分点()2.白铜是以()为主要合金元素的钢合金
3.45钢和40Cr钢比较,45钢的(淬透性低,淬硬性高)4.金属塑性变形方式的是(滑移)5.下列不同含碳量的钢中,强度最高的是()A.WC=0.2% B.WC=0.45% C.WC=0.8% 「,WC=l.2%
我的手机
16:23:21 l.高分子大分子链的()决定了高分子材料独特的性能 2.在置换型固溶体中,两组元原子扩散速率的差异引起的标记面漂移现象称为()3.为减少铸造缺陷,铸造合金需要熔点低、流动性好,因此一般选择()的合金。4.根据相律,对于三元合金,最大的平衡相数为()5.调质处理是()的复合热处理工艺 6.材料塑性常用()和()两个指标表示
7.按溶质原子不在晶格中的位置不同,固溶体可分为()和()8.纯金属品体中的点缺陷主要包括()和()
加工硬化: 淬火: 热硬性:
回复与再结晶: 成分过冷:
制造某齿轮,要求齿轮表面有高的硬度(>50HRC),面心部具有良好的韧(AK>40J),原采用40钢材料,现因厂库存的40钢已用完,現只剩20钢,拟用20钢代替,试说明
(1)分别写出40钢和20钢的預先热处理和最终热处理方法(或者写出完整的加工工艺路线)(2)分别写出40钢和20钢的热处理方法的目的及最终热处理后获得组织?
1.()是固体材料中物质传输的唯一方式。
2.a-Fe在室温下的品体结构为()A.面心立方B.体心立方C.密排六方D.正方结构
3.恒温条件下,由一种成分的固相同时生成两种不同成分固相的转变称为()。A.匀晶转变B.共析转变C.包晶转变D.共晶转变 4.碳原子溶于γ-Fe中形成的固溶体为()。5.过冷奥氏体发生的珠光体转变属于()。
6.表征材料在外力作用下产生塑性变形能力的指标为()。7.结合键既无方向性又无饱和性的是()8.不属于大多数金属具有的晶体结构()9.体心立方结构晶胞中原子的个数是()。10.莱氏体是由()组成的共晶体。
11.工件淬火后需立即回火处理,随着回火温度的降低,材料的硬度()。12.过共析成分的液态铁碳合金缓慢冷却得到的平衡组织是()。13.黄铜是以()为主要合金元素的铜合金。14.45钢和40Cr钢比较,40Cr钢的(B)。
A.淬透性低,淬硬性高B.淬透性高,淬硬性低C淬透性高,淬硬性高D.无法比较
15.下列不同含碳量的钢中,塑性最好的是()A.WC=0.25% B.WC=0.50% C.WC=0.9% D.WC=1.4%
1.常温下的塑料为玻璃态,而常温下的橡胶为()2.铁碳合金贝氏体转变时,温度较高存在()的扩散。3.根据相律,对于二元合金,最大的平衡相数为(3)。4.晶体中位错运动的方式有()和()。
5.按溶质原子在晶格中的位置不同,固溶体可分为()和()
6.晶体中产生刃型位错的位错线与柏氏矢量(),螺型位错的位错线与柏氏矢量()。
二次硬化: 时效处理: 复合材料: 变形织构:
我的手机
16:23:21 分别用40Cr和20Cr做某型号柴油机的凸轮轴,试说明:(1)写出40Cr钢和20Cr钢的预先热处理和最终热处理方法(2)分别写出40Cr钢和20Cr钢的热处理方法的目及最终热处理 后获得组织?
T10钢加热到A1+50℃,用图示的方法冷却。1.T10钢加热后得到什么组织? 2.分别写出转变完全后得到什么组织?
1.扩散发生的驱动力是()
2.有反应扩散的现象的热处理工艺是()A.回火 B.退火 C.表面淬火 D.渗碳 3.γ-Fe在室温下的晶体结构为()
4.()是碳原子溶于γ-Fe中形成的间隙固溶体。5.板条马氏体和针状马氏体相比,其特点是()
6.常温下的塑料为(),而常温下的橡胶为高弹态。
7.一般碳钢淬火后有残余奥氏体存在,可以通过()处理,最大限度消除残余奥氏体。
8.锡基和铅基铸造轴承合金也称为()
9.材料的结晶过程是品核()与()两个过程。
10.晶体中()的位错线与柏氏失量垂直,()的位错线与柏氏矢量平行。
钢的牌号代表的钢的种类: Q255 KTH300-06 65Mn 20 CrWMn 40Cr HT250 LY1 15Cr 1Cr18Ni9 T7A 2Cr13QT700-2 Q345
1.均匀形核(非均匀形核): 2.二次硬化: 4.伪共晶: 5.热处理:
下图所示的二元共品相图,(1)在平衡凝固条件下、成份为Wb=40%的合金①在室温下的相组成和组织组成分别是什么?(2)如果希望得到共品组织加上相对量为5%的β的合金,求该合金的成分。
材料9SiCr(T12A)制造简单小型冷冲模。1.零件加工工艺路线。
2.各热处理的目的和获得的组织。
1.面心立方晶体中,可能潜在的滑移系有()。
2.图中1、2、3合金在常温下凝固后,枝晶偏析最大的是()3.残余奥氏体可以通过()处理进行最大限度的消除。4.针状马氏体和板条马氏体相比,其特点是()。
5.板条状马氏体的亚结构()针状马氏体的亚结构是()6.属于扩散型转变的是()A.珠光体体转变 B.上贝氏转变 C.下贝氏体转变 D.马氏体转变
1.铁素体最高含碳量为()2.铁碳合金相图中从奥氏体中开始析出铁素体的转变曲线又称为()3.反应扩散的现象的热处理工艺是()4.铁碳合金平衡凝固后,室温存在的低温莱氏体的组成相是()
Fe-Fe3C相图
立方晶体的ABCD滑移面上有一正方形位错环(顺时针为正方向),指出CD段位错线的类型是()A.正刃型B.负刃型C.右螺型D.左螺型
立方晶体的ABCD滑移面上有一正方形位错环(顺时针为正方向),指出CD段位错线的类型是()A.正刃型B.负刃型C.右螺型D.左螺型
1.密排六方结构的配位数是(12)。
2.面心立方结构的原子最密排面的晶品向族为()A.[111] B.<111> C.[110] D.<110>
1.灰铸铁力学性能主要取决于()和(),2.结构起伏和能量起伏是均匀形核的必要条件同时,均匀形核还须在一定的()
1.相律是在完全平衡状态下,系统的()、()和温度压力之间的关系,是系统的平衡条件的数学表达式:()口ZGMn13-1 口Q275 口空间点阵 口5CrNiMo 口RUT260 口结构起伏 口3Cr13 口弥散强化 口Q345 口李晶
口柏氏矢量
1.生产中一般以()作为评定材料切削加工性能的主要参数。A.强度B.硬度C.韧性D.塑性
2.哪种材料不能锻造加工成型()。A.可锻铸铁B.铝合金C.铜合金D.低碳钢 3.图2所示的二元共晶型合金中,容易产生伪共晶组织的合金为(); 容易产生离异共晶的合金为()。A.合金A B.合金B C.合金C D.合金D
1.位错沿滑移面的移动称为滑移,滑移面和滑移方向往往是()和()。2.不同含碳量的钢中,硬度最高的是()。
A.WC=0.3% B.WC=0.70% C.WC=0.8% D.WC=1.3% 3.钢铁材料能够进行热处理的根本原因是()。
钢的种类代表的常用钢种: 如: 优质碳素结构钢45。高锰钢 球墨铸铁 @蠕墨铸铁 调质钢 渗碳钢
@合金弹簧钢 奥氏体不锈钢 马氏体不锈钢 灰铸铁
低合金工具钢
普通质量碳素结构钢 @碳素工具钢 定义: 材料的工艺性能: 热变形:
非平衡凝固(平衡凝固)离异共晶
正(负)温度梯度
1.亚共析钢的平衡相组成是()。A.F+A B.F+P C.F+Fe3C D.A+Fe3C 2.过共析碳钢的正常淬火加热温度为()A.Ac1+30~50℃ E Ac3+30~50℃ C.Ac3+50~100℃ D.Accm+30~50℃
3.反复弯折铁丝,铁丝会越来越硬,最后会断裂,这是由于产生了()。A.固溶强化现象B.再结晶现象C.加工硬化现象D.弥散强化现象
4.为了改善碳素工具钢的切削加工性能,常采用的热处理工艺是()。A.完全退火B.扩散退火C球化退火D.再结晶退火
5.灰铸铁具有良好的抗压、减震性能,常用于制造(A.曲轴B.管接头C.连杆D.机床床身、底座、箱体 6.下列钢淬透性高低排列顺序正确的是()。A.T8>20CrMnTi>25 B.20CrMnT1>25>T8 C.25>T8>20CrMnTi D.20CrMnTi>T8>25 7.钢加热时A的形成是由()、()、()、()等四个基本过程所组成的8.钢的淬火加热温度越高,淬火后马氏体中含碳量越(),马氏体晶粒越(),残余奥氏体的量()