zoukankan      html  css  js  c++  java
  • java 序列化的作用

    public class Test {
    
        public static String requestUrl = "http://localhost/SpringMvc/test.do";
        public static void main(String[] args) {
            TestVo test = new TestVo();
            test.setName("baichuanyu");
            test.setAge(20);
            HttpURLConnection httpUrlConn = null;
            InputStream inputStream = null;
            InputStreamReader inputStreamReader = null;
            BufferedReader bufferedReader = null;
            ObjectOutputStream oos = null;
            StringBuffer buffer = new StringBuffer();
            try
            {
              URL url = new URL(requestUrl);
              httpUrlConn = (HttpURLConnection)url.openConnection();
              // 设置content_type=SERIALIZED_OBJECT
              // 如果不设此项,在传送序列化对象时,当WEB服务默认的不是这种类型时可能抛java.io.EOFException
              httpUrlConn.setRequestProperty("Content-Type","application/x-java-serialized-object");
              httpUrlConn.setConnectTimeout(10000);
              httpUrlConn.setReadTimeout(10000);
              // 设置是否向httpUrlConn输出,因为是post请求,参数要放在http正文内,因此需要设为true, 默认情况下是false
              httpUrlConn.setDoOutput(true);
              // 设置是否从httpUrlConn读入,默认情况下是true
              httpUrlConn.setDoInput(true);
              // 不使用缓存   
              httpUrlConn.setUseCaches(false);
    
              // 设置请求方式,默认是GET
              httpUrlConn.setRequestMethod("POST");
              httpUrlConn.connect();
    
              if (test != null)
              {
                // 此处getOutputStream会隐含的进行connect,即:如同调用上面的connect()方法,   
                // 所以在开发中不调用上述的connect()也可以,不过建议最好显式调用
                // write object(impl Serializable) using ObjectOutputStream
                oos = new ObjectOutputStream(httpUrlConn.getOutputStream());
                oos.writeObject(test);
                oos.flush();
                // outputStream不是一个网络流,充其量是个字符串流,往里面写入的东西不会立即发送到网络, 
                // 而是存在于内存缓冲区中,待outputStream流关闭时,根据输入的内容生成http正文。所以这里的close是必须的
                oos.close();
              }
              // 将返回的输入流转换成字符串
              // 无论是post还是get,http请求实际上直到HttpURLConnection的getInputStream()这个函数里面才正式发送出去
              inputStream = httpUrlConn.getInputStream();//注意,实际发送请求的代码段就在这里 
              inputStreamReader = new InputStreamReader(inputStream, "UTF-8");
              bufferedReader = new BufferedReader(inputStreamReader);
    
              String str = null;
              while ((str = bufferedReader.readLine()) != null)
              {
                buffer.append(str);
              }
            }
            catch (Exception e)
            {
              System.out.println(e);
            }
            finally
            {
              try
              {
                  bufferedReader.close();
                  inputStreamReader.close();
                  inputStream.close();
                  oos.close();
                if (httpUrlConn != null)
                {
                  httpUrlConn.disconnect();
                }
              }
              catch (Exception e)
              {
              }
            }
            
            
        }
    }

    网络传输:通过推送改变网站中比如map中存储的对象 

    @RequestMapping(value = "/test", method = RequestMethod.POST)  
        public void javaSerialize(HttpServletResponse response,HttpServletRequest request) {
            try {
                ObjectInputStream ois = new ObjectInputStream(request.getInputStream());
                TestVo user = (TestVo) ois.readObject();
                System.out.println(user.getName()+":"+user.getAge());
                map.put("user", user);
                PrintWriter w = response.getWriter();
                        w.print("已收到");
                        w.flush();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } 
  • 相关阅读:
    门户网站架构Nginx+Apache+MySQL+PHP+Memcached+Squid
    车牌识别及验证码识别的一般思路
    PHP for Linux之xml2config这个文件没找到
    使用nginx配置多个php fastcgi负载均衡
    centos支持中文,中文输入法
    centos 配置 ssh
    千万级数据?教你合理设计数据表,将优化进行到底
    linux mysql proxy 的安装,配置,以及读写分离
    网站压力测试工具 webbench
    php5.3中webservice利用soap—WSDL文件解析WSDL : 描述你的Web服务(转载)
  • 原文地址:https://www.cnblogs.com/Wen-yu-jing/p/4274844.html
Copyright © 2011-2022 走看看