当前位置: 首页 > news >正文

汽车业务网站开发公司平面设计学下来多少钱

汽车业务网站开发公司,平面设计学下来多少钱,怎样进行站点优化,四川建设网站信息查询中心一、hessian是什么 Hessian是一个轻量级的remoting onhttp工具#xff0c;使用简单的方法提供了RMI的功能。 相比WebService#xff0c;Hessian更简单、快捷。采用的是二进制RPC协议#xff0c;因为采用的是二进制协议#xff0c;所以它很适合于发送二进制数据。——百度百…一、hessian是什么 Hessian是一个轻量级的remoting onhttp工具使用简单的方法提供了RMI的功能。 相比WebServiceHessian更简单、快捷。采用的是二进制RPC协议因为采用的是二进制协议所以它很适合于发送二进制数据。——百度百科   学习hessian必须知道什么是RPC。 实现RPC必须解决如下几个问题 1、通讯问题。 2、寻址问题。 3、序列化与反序列化。 带着这三个问题我们一起来探究一下hessian   二、hessian怎么使用 首先大家去下载源码并导入到idea中打开 https://github.com/zhaojiatao/learn_hessian 项目结构 --learn_hessian ----api  客户端和服务端均共同引用的接口api ----client  客户端调用demo包括本地直接通过代理对象调用以及使用spring集成方式调用 ----webserver  通过传统servlet方式提供服务 ----webserver_spring  与spring集成 提供服务   2.1服务端搭建 2.1.1传统serlet方式搭建 在web.xml中配置HessianServlet 指明服务地址/hessian 及其实现类com.zjt.learn.hessian.api.impl.GetUserInfoImpl servletservlet-nameHessianServlet/servlet-nameservlet-classcom.caucho.hessian.server.HessianServlet/servlet-classinit-paramparam-nameservice-class/param-nameparam-valuecom.zjt.learn.hessian.api.impl.GetUserInfoImpl/param-value/init-param/servletservlet-mappingservlet-nameHessianServlet/servlet-nameurl-pattern/hessian/url-pattern/servlet-mapping   package com.zjt.learn.hessian.api.impl;import com.zjt.learn.hessian.api.GetUserInfo; import com.zjt.learn.hessian.dto.User; import org.apache.commons.lang3.StringUtils;/*** Created by zhaojiataosouche.com on 2018/4/17*/ public class GetUserInfoImpl implements GetUserInfo {Overridepublic String getuserinfo(String id) {if(StringUtils.isNotBlank(id)){User usernew User();user.setId(1);user.setName(zhaojiatao);user.setAddress(hangzhou);user.setAge(18);user.setGender(1);return user.toString();}return null;} }   2.1.2使用spring方式集成发布服务 首先在web.xml中配置springmvc servletservlet-nameSpringMVC/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-classinit-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:applicationContext.xml/param-value/init-paramload-on-startup1/load-on-startup/servletservlet-mappingservlet-nameSpringMVC/servlet-nameurl-pattern/remote/*/url-pattern/servlet-mapping   配置applicationContext.xml: 使用HessianServiceExporter来处理请求 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.1.xsddefault-lazy-inittruebean id getuserService classcom.zjt.learn.hessian.api.impl.GetUserInfoImpl/bean name/getuserHessianService classorg.springframework.remoting.caucho.HessianServiceExporterproperty nameservice refgetuserService/property nameserviceInterface valuecom.zjt.learn.hessian.api.GetUserInfo//bean /beans       2.2客户端调用 2.2.1使用传统方式调用远程服务 package test;import com.caucho.hessian.client.HessianProxyFactory; import com.zjt.learn.hessian.api.GetUserInfo;/*** Created by zhaojiataosouche.com on 2018/4/17*/ public class BasicClient {public static void main(String[] args) {try {String url http://localhost:8080/hessian;HessianProxyFactory factory new HessianProxyFactory();factory.setOverloadEnabled(true);GetUserInfo getUserInfo (GetUserInfo) factory.create(GetUserInfo.class, url);System.out.println(getUserInfo.getuserinfo(1));System.out.println(over);}catch (Exception e){e.printStackTrace();}}}     2.2.2使用spring方式调用 新建spring.xml配置文件 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.1.xsddefault-lazy-inittruebean idgetuserService classorg.springframework.remoting.caucho.HessianProxyFactoryBeanproperty nameserviceUrl valuehttp://localhost:8080/remote/getuserHessianService/property nameserviceInterface valuecom.zjt.learn.hessian.api.GetUserInfo//bean /beans     package test;import com.zjt.learn.hessian.api.GetUserInfo; import org.springframework.context.support.ClassPathXmlApplicationContext;/*** Created by zhaojiataosouche.com on 2018/4/18*/ public class BasicSpringClient {public static void main(String[] args) {ClassPathXmlApplicationContext context new ClassPathXmlApplicationContext(new String[]{classpath:spring.xml});GetUserInfo getUserInfo (GetUserInfo)context.getBean(getuserService);System.out.println(getUserInfo.getuserinfo(1));}}     hessian的使用是很简单的。大家自己照着代码敲一下就可以。   三、探究一下hessian的细节 回到文章开始提出的问题即rpc框架需要解决的问题看看hessian如何解决的。 3.1.通讯问题 我们先看看客户端在发起远程请求前都经历了什么 首先客户端通过代理工厂对象HessianProxyFactory的create方法创建代理对象 在create方法里可以看到该代理对象在执行时的handler是通过HessianProxy代理对象的invoke方法来执行典型的动态代理    在invoke方法中 通过String methodName method.getName();得到方法名 通过sendRequest方法取得和服务端的连接HessianConnection对象 跟踪sendRequest方法我们发现 发现hessian是使用http协议进行网络通信  在is getInputStream(conn);处等待服务端返回的响应    3.2 寻址问题 我们跟踪这里 我们得出结论hessian使用lookup方法来寻找远程服务   3.3序列化与反序列化 我们继续看刚刚跟踪的客户端调用时执行的HessianProxy对象的invoke方法 进入其中的 conn sendRequest(mangleName, args) 再进入 out.call(methodName, args); 再进入 writeObject(args[i]);  进入其Hessian2Output实现中 最终看到了hessian如何进行序列化 serializer.writeObject(object, this);     至此我们也可以梳理一下hessian客户端动态代理的执行流程   我们再来看看服务端的执行细节 通过后台的代码可见我们所有的工作都围绕在HessianServlet在展开。该Servlet中有两个比较重要的方法init()、service(); init方法初始化服务和服务对象主要分为3步 通过home-class或者service-class创建服务端的实现类实例 init方法还会创建HessianSkeleton对象这是Hessian服务端的核心功能部分。 HessianSkeleton继承自AbstractSkeleton其构造方法将会从实现类中抽取方法和方法的Method对象并且存储到_methodMap中。 对于一个Servlet来说其service方法是对外提供服务的方法 最主要的是调用HessianSkeleton对象的invoke方法。注意Servlet实例中有两个HessianSkeleton变量分别是_objectSkeleton和 _homeSkeleton invoke方法 首先从HessianInput对象中获取到Method信息获取到真正的service对象。 根据反射机制调用service对象的invoke方法获取到返回值。 最后调用HessianOutput对象将结果写回到调用方。          本文参考 https://blog.csdn.net/sunwei_pyw/article/details/74002351 https://www.cnblogs.com/happyday56/p/4268249.html  转载于:https://www.cnblogs.com/zhaojiatao/p/8908335.html
http://www.zqtcl.cn/news/432917/

相关文章:

  • wordpress商城插件收费哪里可以做网站优化
  • 中国建设银行u盾下载假网站吗wordpress有没有付费
  • 海南哪家公司做网站开发一套管理系统多少钱
  • 做网站建设费用百姓网
  • 西安建设厅网站wpf做网站教程
  • 好的网页网站设计wordpress对外发邮件
  • 湖北网站建设贴吧信用宁波企业网查询
  • 佛山市官网网站建设多少钱网站建设与管理书籍
  • 网站建设佰金手指科杰二八佛山有那几家做网站
  • 网站建设刂搜金手指下拉贰伍wordpress 外链自动nofflow
  • 搭建一个网站多少钱手机软件开发用什么语言
  • 太原专业网站建设杭州网络推广专员
  • 广西专业建网站橙米网站建设
  • 百度做的网站能优化吗html网站系统
  • php素材网站源码免费下载网站维护的内容有哪些
  • 打鱼跟电子游戏网站怎么做佛山微网站开发哪家好
  • 知名的网站建设网站在工信部备案
  • 网站首页的快照更新慢爆wordpress密码
  • dw做网站背景图片设置铺平微博通 wordpress
  • 勉县网站建设电商网站要素
  • 重庆旅游seo整站优化网站制作的一般步骤是什么
  • 网站建设评估体系p2p网站建设框架
  • .net 快速网站开发东莞网站建设公司哪家好
  • 东莞个人网站设计潍坊专业人员继续教育
  • 网站建设如何创业建设招标网官网
  • 公司没有销售网站怎么做业务怎么做微信推送 网站
  • 商城网站模版郴州网页定制
  • 电子商务网站建设步骤海外广告投放渠道
  • 网站用花生壳nas做存储十堰市网站建设
  • 用html5做手机网站抖音平台建站工具