⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hessianserializeservlet.java

📁 RESIN 3.2 最新源码
💻 JAVA
字号:
package example;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;import com.caucho.hessian.io.*;public class HessianSerializeServlet extends HttpServlet{  /**   * The servlet serializes three Car objects into a byte[] array   * using Hessian 2.0, Hessian 2.0 with a Deflation envelope, and   * java.io.ObjectOutputStream serialization.   */  public void service(HttpServletRequest req, HttpServletResponse res)    throws IOException, ServletException  {    res.setContentType("text/html");        PrintWriter out = res.getWriter();    byte []data = hessianSerialize();    out.println("<pre>");    out.println("Hessian serialize size: " + data.length);    out.println("Deserialize: " + hessianDeserialize(data));    out.println("");        data = hessianDeflate();        out.println("Deflate serialize size: " + data.length);    out.println("Inflate: " + hessianInflate(data));    out.println("");    data = javaSerialize();    out.println("java.io serialize size: " + data.length);  }  /**   * Hessian 2.0 serialization API resembles the java.io.ObjectOutputStream.   */  private byte []hessianSerialize()    throws IOException  {    ByteArrayOutputStream bos = new ByteArrayOutputStream();    Hessian2Output out = new Hessian2Output(bos);    hessianSerialize(out);    out.close();    return bos.toByteArray();  }  /**   * Hessian 2.0 deserialization API resembles the java.io.ObjectOutputStream.   */  private Object hessianDeserialize(byte []data)    throws IOException  {    ByteArrayInputStream bis = new ByteArrayInputStream(data);    Hessian2Input in = new Hessian2Input(bis);    return hessianDeserialize(in);  }  /**   * Serialization with compression is wraps the Hessian2Output stream   * in a compression envelope.  The serialization itself is identical   * with and without the envelope.   */  private byte []hessianDeflate()    throws IOException  {    Deflation envelope = new Deflation();    ByteArrayOutputStream bos = new ByteArrayOutputStream();    Hessian2Output out = new Hessian2Output(bos);    out = envelope.wrap(out);    hessianSerialize(out);    out.close();    return bos.toByteArray();  }  private Object hessianInflate(byte []data)    throws IOException  {    Deflation envelope = new Deflation();    ByteArrayInputStream bis = new ByteArrayInputStream(data);    Hessian2Input in = new Hessian2Input(bis);    in = envelope.unwrap(in);    return hessianDeserialize(in);  }  /**   * The example serializes three Car objects into the message.  The   * application can use any sequence of <code>writeXXX</code> calls   * as long as the deserialization follows the same order.   */  private void hessianSerialize(Hessian2Output out)    throws IOException  {    out.startMessage();          out.writeInt(3);    Car car1 = new Car(Model.EDSEL, Color.GREEN, 1954);    out.writeObject(car1);    Car car2 = new Car(Model.MODEL_T, Color.BLACK, 1937);    out.writeObject(car2);    Car car3 = new Car(Model.CIVIC, Color.BLUE, 1998);    out.writeObject(car3);    out.completeMessage();  }  private Object hessianDeserialize(Hessian2Input in)    throws IOException  {    in.startMessage();    ArrayList list = new ArrayList();    int length = in.readInt();    for (int i = 0; i < length; i++) {      list.add(in.readObject());    }    in.completeMessage();    return list;  }  private byte []javaSerialize()    throws IOException  {    ByteArrayOutputStream bos = new ByteArrayOutputStream();    ObjectOutputStream out = new ObjectOutputStream(bos);          out.writeInt(3);    Car car1 = new Car(Model.EDSEL, Color.GREEN, 1954);    out.writeObject(car1);    Car car2 = new Car(Model.MODEL_T, Color.BLACK, 1937);    out.writeObject(car2);    Car car3 = new Car(Model.CIVIC, Color.BLUE, 1998);    out.writeObject(car3);    out.close();    return bos.toByteArray();  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -