为了实现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";
..........
}
分享到:
相关推荐
在IT行业中,C#是一种广泛使用的编程语言,...以上就是使用C#通过POST方法向Java Servlet发送数据的关键知识点,涵盖了从客户端构建请求到服务器端接收和处理的过程。实际开发中,还需要根据具体需求进行调整和优化。
Java Web Servlet实例是Java...通过这个简单的Java Web Servlet实例,你可以学习到如何创建、配置和使用Servlet,理解其在Web应用中的作用。实践这个实例可以帮助巩固理论知识,为后续更复杂的Web开发打下坚实基础。
Java Web后端开发是互联网应用开发中的重要环节,Servlet技术是Java EE标准中用于构建动态网站的核心组件之一。本篇文章将深入探讨如何使用Servlet来实现网站后台的功能。 Servlet是Java编程语言中的一个接口,它...
本指南将深入讲解如何使用Java Servlet进行编程,以帮助开发者构建高效、灵活的Web应用。 ### 1. Servlet生命周期 Servlet的生命周期包括三个主要阶段:加载和初始化、处理请求以及销毁。在初始化阶段,Servlet...
在Servlet中,可以使用HttpServletRequest对象的getParameter()方法读取GET请求的参数,对于POST请求,需要使用getParameterValues()或getInputStream()来获取数据。 总之,Java Servlet技术是Java Web开发的重要...
总结,这个"java的Servlet测试demo"涵盖了Servlet的基本概念、生命周期、在IDEA中的配置和测试方法,以及GET和POST请求的处理。通过这个示例,你可以进一步学习和实践如何使用Servlet构建动态Web应用。在实际开发中...
本项目"ProjectManagementSys"是一个基于Java和Servlet的源码实例,展示了如何使用MyEclipse进行Web项目的开发。这个项目可能是用于项目管理或类似的业务流程控制,它为初学者提供了学习和实践的机会。 1. **...
4.2 @WebServlet 注解:Java EE 6及以上版本,可以用注解简化Servlet的配置,直接在Servlet类上使用@WebServlet声明。 五、Servlet 进阶 5.1 Filter 过滤器:可以拦截请求,实现预处理和后处理,比如登录验证、字符...
JavaServlet是一种用于构建动态Web应用...以上就是关于"JavaServlet示例代码"的关键知识点,涵盖了Servlet的基本用法、用户注册登录流程以及常见的安全性考虑。理解和掌握这些内容对于深入学习Java Web开发至关重要。
你还将学习如何编写Servlet,处理GET和POST请求,以及使用Servlet API来设置响应头和输出数据。Servlet与JSP常常结合使用,为Web应用提供动态内容生成。 JSP(JavaServer Pages)是一种基于JAVA的动态网页技术,它...
总结,Java Servlet是构建web应用程序的强大工具,与JSP结合使用可以实现灵活且高效的后端逻辑。学习和熟练掌握Servlet,是成为Java EE开发者的关键步骤。通过不断的实践和项目经验积累,你将在web开发领域更加...
在本场景中,我们探讨的是如何使用JSP通过Ajax(Asynchronous JavaScript and XML)发送JSON(JavaScript Object Notation)数据到Java的Servlet,然后Servlet处理这些数据并返回JSON响应给JSP页面。这是一个典型的...
这个API文档是开发者理解和使用Servlet技术的重要参考资料。在Java Servlet API 2.5版本中,包含了对Servlet、Filter、Listener等关键概念的详细描述,以及它们在Web应用程序中的应用方式。 1. **Servlet接口**:...
Servlet API是Java Servlet的核心部分,提供了一系列的接口和类,供开发者用来构建可部署在Web服务器上的Java应用程序。这篇帮助文档详细阐述了这些接口和类的使用方法、功能以及它们之间的关系。 在Servlet API中...
Java Servlet是Java平台上的一个核心技术,主要用于构建动态web应用程序。Servlet是服务器端的Java小程序,它接收并响应来自客户端(通常是web浏览器)的请求,处理数据,然后返回响应。在深入理解Java Servlet网络...
### Java Servlet编程知识点详解 #### 一、Java Servlet编程概览 **标题:“Java Servlet Programming”** **描述:“Java Servlet Programming.pdf”** **标签:“java servlet”** Java Servlet编程是Java平台...
Java Servlet API是Java ...综上所述,Java Servlet API说明文档涵盖了Servlet技术的各个方面,对于理解和使用Servlet进行Web开发至关重要。通过深入学习这些内容,开发者可以有效地构建出高效、可扩展的Web应用程序。
Java 是一种广泛使用的面向对象的编程语言,具有跨平台性、安全性以及性能优越的特点。在Web开发中,Java主要用于服务器端逻辑的编写,通过Java的类库和框架(如Spring、Struts等)可以构建复杂的应用系统。 1. 类...
【Java Servlet 博客源码】是一个基于Java编程语言,利用Servlet技术开发的博客系统源代码。Servlet是Java EE(企业版)中的一个重要组成部分,它主要用于扩展服务器的功能,处理来自客户端(如浏览器)的请求,并...