`

Java用POST传对象给Servlet

    博客分类:
  • Java
阅读更多

为了实现BlazeDS的实时推送功能,找到了个用Servlet实现的例子。但是例子采用的是线程每秒推送,这样有些浪费资源。

搜了很久,也没找到Java类里调用Servlet的例子,只好用Post方法传对象。

 

发送POST的例子在 : http://lodachi.iteye.com/?show_full=true

 

 

 

package dbConn;
import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import bean.Tick;
import flex.messaging.util.URLEncoder;

public class TestAction {

	public static void main(String[] args) throws Exception{
		TestAction test = new TestAction();
		test.test();
	}
	public void test() throws Exception {
		URL url = new URL("http://localhost:8080/HRC/servlet/DataPushServlet");
		HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();

		urlConn.setDoOutput(true);
		urlConn.setDoInput(true);
		urlConn.setUseCaches(false);
		urlConn.setRequestProperty("Content-type","application/x-java-serialized-object");
		urlConn.setRequestMethod("POST");
		urlConn.connect();

		OutputStream outStrm = urlConn.getOutputStream();
		ObjectOutputStream oos = new ObjectOutputStream(outStrm);

		Tick tick  = new Tick();
		oos.writeObject(tick);

		oos.flush();
		oos.close();

		InputStream inStrm = urlConn.getInputStream();
	}
}

 

 

package servlet;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import bean.Tick;

import flex.messaging.MessageBroker;
import flex.messaging.messages.AsyncMessage;
import flex.messaging.util.UUIDUtils;

public class DataPushServlet extends HttpServlet {

	public DataPushServlet() {
		super();
	}

	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	/**
	 * Initialization of the servlet. <br>
	 *
	 * @throws ServletException if an error occurs
	 */
	public void init() throws ServletException {
		// Put your code here
	}

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//System.out.println("doGet");
		doPost(request,response);		
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("doPost");
		InputStream in = request.getInputStream();
		ObjectInputStream ois = new ObjectInputStream(in);
		
		try{
			Tick tick = (Tick)(ois.readObject());
			System.out.println(tick.getAskPrice());
			System.out.println(tick.getBidPrice());
			System.out.println(tick.getMidPrice());
		}catch(Exception e){}
	}
	public void push(String para){
		MessageBroker msgBroker = MessageBroker.getMessageBroker(null);   
        String clientID = UUIDUtils.createUUID();  
        
//        Tick tick = new Tick();   
//        tick.setAskPrice(new BigDecimal("100"));   
//        tick.setBidPrice(new BigDecimal("100"));   
//        tick.setMidPrice(new BigDecimal("100"));   
//        tick.setTickTime(new Date());   
//
//        tick.setSeqno(name);   

        AsyncMessage msg = new AsyncMessage();   
        msg.setDestination("tick-data-feed");   
        msg.setHeader("DSSubtopic", "tick");   
        msg.setClientId(clientID);   
        msg.setMessageId(UUIDUtils.createUUID());   
        msg.setTimestamp(System.currentTimeMillis());   
        msg.setBody(para);   
        msgBroker.routeMessageToService(msg, null);   
	}
}

 

 

package bean;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

public class Tick implements Serializable {
    private String askPrice = "aaaaaaaa";

    private String bidPrice = "bbbbbbbb";

    private String midPrice = "cccccccc";
..........

}
 
分享到:
评论

相关推荐

    JSP/Servlet Java面试逻辑题

    一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。 这既包括 servlet 又包括被编译成 servlet 的 JSP 页面。 request是代表与 Web 客户机发出的一个请求相关...

    java-servlet-api.doc

    当客户端发出请求时,Servlet引擎传递给Servlet一个ServletRequest对象和一个ServletResponse对象,这两个对象作为参数传递到service()方法中。 Servlet也可以执行ServletRequest接口和ServletResponse接口。...

    java面试大全视频版

    Java面试题05.java面向对象的特征 Java面试题06.装箱和拆箱 Java面试题07.==和equals的区别 Java面试题08.String Java面试题09.讲一下java中的集合 Java面试题10.ArrayList 和LinkedList的区别 Java面试题11.HashMap...

    JSP和Servlet面试题

    导入Common 则是因为 Java 中的对象并不是纯粹的数据,需要通过这些 Jar 包的处理使之转化成真实数据。 6.如何处理Servlet的线程不安全问题 1.最简单的就是不使用字段变量, 2.使用final修饰变量, 3.线程安全...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    面试题包含了不同技术层面的面试问题,同时也能对一些没有面试开发经验的小白给予不可估量的包装, 让你的薪水绝对翻倍, 本人亲试有效.Java面试题84集、java面试专属及面试必问课程,所有的面试题有视屏讲解, 解答方案....

    2021年最新java面试题--视频讲解(内部培训84个知识点超详细).rar

    Java面试题05.java面向对象的特征 Java面试题06.装箱和拆箱 Java面试题07.==和equals的区别 Java面试题08.String Java面试题09.讲一下java中的集合 Java面试题10.ArrayList 和LinkedList的区别 Java面试题11.HashMap...

    超级有影响力霸气的Java面试题大全文档

     GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收...

    java 面试题 总结

     GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收...

    最新java面试题攻略

    一:java面向对象 3 1:java中常见jar包的作用 3 2:常用的linux命令 3 3:使用jdbc主要代码操作步骤 3 4:选择排序、冒泡排序、插入排序 4 5:将数据保存到文件中,将文件内容读取出来 5 6:关于继承与static 5 7:...

    Java常见面试题208道.docx

    面试题包括以下十九部分:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql...

    Java面试宝典2020修订版V1.0.1.doc

    34、Java创建对象有几种方式 22 35、写出验证Email的正则表达式 22 39、说出十种常见的异常 22 40什么是检查性异常和非检查性异常? 23 41、Java的异常处理机制是什么? 23 42、一个静态方法,里面可不可以用this和...

    Java面试宝典-经典

    70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常! 48 71、说出一些常用的类,包,接口,请各举5个 49 72、java中有...

    Java面试宝典2010版

    70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常! 48 71、说出一些常用的类,包,接口,请各举5个 49 72、java中有...

    java web 期末考试必过宝典

    、jsp 有哪些内置对象 ?作用分别是什么 ? 答:JSP 共有以下 9 种基本内置组件(可与 ASP 的6 种内部组件相对应): request :用户端请求,此请求会包含来自 GET/POST 请求的参数; response :网页传回用户端的...

    java面试题

    84.9. 题目1:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连. 117 84.10. 写一个方法,实现字符串的反转,如:输入...

    java面试题大全(2012版)

    70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常! 48 71、说出一些常用的类,包,接口,请各举5个 49 72、java中有...

    java面试题目与技巧1

    │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+...

    java面试题及技巧4

    │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+...

    java自动登录demo

    2、登录的Servlet处理登录请求 doPost 处理请求 a、判断用户是否合法[调用登录业务方法判断] b、如果合法,判断是否勾选自动登录 1&gt; 勾选了 把登录帐号和密码保存到对应cookie对象中 把cookie发送到客户端...

    java面试题以及技巧

    │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+...

Global site tag (gtag.js) - Google Analytics