曾经有一次需要实现应用程序调用ejb的服务,但是考虑因为其他应用程序可能是不同的语言,首先考虑的是用cobar,后来因为没有负责这个项目,没有继续深入去研究,最近因为项目的需要,考虑到cobar的一下弊端,自己寻求别的解决办法,后来搜集一下资料,最近利用servlet来实现与应用程序通讯.(扩展开来,就可以用serlvet调要ejb的东东了).
首先: 建立应用程序,限于技术的原因,利用j2se写了比较简单的应用程序,应用程序负责把要处理的数据,(如果都是针对于java,可以是对象,利用对象流)发送给web服务器对应的url/servlet,处理以后,返回响应的数据.
这个通讯的原理在页面上的理解就是利用了http协议,通过建立应用程序于servlet的httpurlconnection:
//建立连接
URL url= new URL("http://localhost/datareceiveservlet?userid=lhz&tel=1111111111&type=0&length=8");
URLConnection urlconn = (URLConnection)url.openConnection();
//设置连接属性
urlconn.setDoOutput(true);
urlconn.setUseCaches(false);
urlconn.setRequestProperty("Content-type","application/octest-stream");
urlconn.setRequestProperty("Content-length",""+buf.length());
//生成数据流
String buf ="aaaaaaaa";
DataOutputStream dataout=new DataOutputStream(urlconn.getOutputStream());
dataout.writeUTF(buf);
dataout.flush();
dataout.close();
//接受servlet的响应数据
DataInputStream in = new DataInputStream(urlconn.getInputStream());
String response = in.readUTF();
System.out.println("read from server :" + response);
in.close();
建立 DataReceiveServlet
public void dopost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
perform(request,response);
}
public void perform(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
int type=Integer.parseInt(request.getParameter("type").trim());
String userid=request.getParameter("userid").trim();
String tel=request.getParameter("tel").trim();
int typeindex= request.getQueryString().trim().indexOf("type");
DataInputStream in = new DataInputStream(request.getInputStream());
response.setContentType("application/octest-stream");
//type=2
if(type==2)
{
String queryString =request.getQueryString().trim().substring(typeindex+7);
Action1 action1 =new Action1(ds);
Action1.createMMS(queryString,in,userid,tel,type);
}else if(type==0 || type==1)//sms数据或ems
{
//调要Action
Action action =new Action(ds);
action.create (in,userid,tel,type);
}
//返回信息给客户端
ByteArrayOutputStream byteout = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteout);
out.writeUTF("接受到数据");
out.flush();
byte buf[] = byteout.toByteArray();
response.setContentLength(buf.length);
ServletOutputStream servletout = response.getOutputStream();
servletout.write(buf);
servletout.close();
in.close();
return;能发送的文件不仅仅是文本,可以是图片,声音,和其他文件,必须把所需要的文件生成字节数组,生成数据流再进行传输.
相关推荐
它可以创建窗口、按钮、文本框等组件,使用户能够输入数据并与应用交互。 4. **登陆注册流程**: 用户在Swing界面输入用户名和密码后,HttpURLConnection会把这些数据编码成HTTP请求发送到服务器。Servlet接收到请求...
Java通过HttpURLConnection与Servlet通信是Web开发中常见的一种交互方式,尤其在客户端和服务端进行数据交换时。HttpURLConnection是Java标准库中提供的一个类,它允许应用程序作为一个HTTP客户端发起请求并接收响应...
本知识点将深入探讨如何使用`HttpURLConnection`与Servlet协同工作,处理多文件参数以及实现断点上传功能。 首先,`HttpURLConnection`是Java API中的一个核心类,它负责提供HTTP协议的连接功能。相比Apache ...
【标题】:“Tomcat与Web程序结构与Http协议与HttpUrlConnection.pdf” 【描述】:这份资料涵盖了Tomcat服务器的基础知识,包括其性质、安装配置、常见问题以及Web应用程序的结构。同时,还讨论了Http协议和Java中...
JAVA通过HttpURLConnection上传和下载文件的方法 JAVA通过HttpURLConnection上传和下载文件的方法是非常有实用价值的,需要的朋友可以参考下。HttpURLConnection是一个Java类,用于从网络中读取数据或向网络中写入...
在本示例中,我们将深入理解Servlet的简单应用,包括其工作原理、创建过程以及如何与客户端进行交互。 首先,Servlet是Java的一个接口,位于javax.servlet包中。开发人员需要实现Servlet接口或继承HttpServlet类来...
1. **Servlet与Applet通信的基本原理**: - Applet可以通过JavaScript与HTML页面交互,进而与通过AJAX调用的Servlet进行通信。另一种方式是Applet直接通过URLConnection或HttpURLConnection与Servlet通信,发送请求...
import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.List; import java.util.Map; public class HttpTest { private HttpURLConnection hc = ...
Tomcat是一款开源且免费的Web服务器,它是Apache软件基金会下的Jakarta项目的一部分,专门用于运行Java应用程序,尤其是Servlet和JSP。Tomcat实现了Java EE(现在称为Jakarta EE)中的Web应用服务器部分,特别是...
在Tomcat上发布Web应用,可以通过将应用文件夹放置于`tomcat/webapps`目录下自动部署,或者在`server.xml`中配置虚拟主机,或者在`tomcat/conf/Catalina/localhost`下创建XML配置文件来手动配置。直接访问未经配置的...
它创建了一个`FileOutputStream`对象来准备写入文件,接着建立了一个`HttpURLConnection`连接到指定的URL。通过设置`setDoOutput(true)`表明这是一个POST请求,但实际上对于文件下载,通常使用GET请求。然后通过`...
1. 建立连接:通过URL对象获取`HttpURLConnection`实例。 2. 设置请求方法:如GET或POST。 3. 设置请求属性:如超时时间、请求头等。 4. 发送请求:对于POST请求,需要写入请求体数据。 5. 读取响应:如响应码、响应...
在IT行业中,网络通信是构建分布式系统的基础,而HTTP(超文本传输协议)与Servlet则是其中的重要组成部分。本文将深入探讨HTTP通信以及Servlet接口,并...理解和掌握这些知识点,对于开发复杂的网络应用程序至关重要。
在Java编程环境中,当需要与Web服务器交互,例如上传文件时,`HttpURLConnection`是一个常见的选择,因为它提供了灵活且高效的方式。本篇文章将详细讲解如何使用`HttpURLConnection`实现文件上传,同时涉及到服务器...
在本教程中,我们将探讨如何使用Android Studio开发一个应用程序,该程序通过Servlet连接到PC上的MySQL数据库。Servlet是一种Java技术,常用于构建Web应用程序,它充当客户端(如Android应用)和服务器之间的中间层...
`HttpURLConnection`是Java标准库提供的一个类,它允许应用程序与HTTP服务器进行通信。下面将详细阐述如何使用这个类来实现这些功能。 首先,我们需要了解`HttpURLConnection`的基本用法。当访问网络资源时,通常...
Android通过HttpURLConnection或第三方库如Volley、OkHttp等实现这些网络请求。 3. **网格与图片切换**(GridAndImageSwitcherSample): 这个示例可能展示了如何在Android应用中实现网格视图(GridView)和图片...
HttpURLConnection是Java标准库中的一个类,...通过理解并熟练运用它的各项功能,你可以创建高效、可控的网络请求,实现与服务器的可靠交互。在编程实践中,一定要注意异常处理和资源管理,确保程序的健壮性和安全性。
在IT行业中,Android和Servlet之间的交互是移动应用开发中常见的技术组合。Android是谷歌推出的开源移动操作系统,广泛用于智能手机和平板电脑,而Servlet是Java Web编程的重要组成部分,用于构建动态Web服务。本...