`
blessdyb
  • 浏览: 236592 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaME与JavaEE servlet 交互

阅读更多

       最近做开发的时候需要做一个javame,且需要与服务器端的javaee工程进行互动,在网上先找了一下,并没有很理想的demo,于是自己调研了一下javame的httpconnection后做了一个demo,包括了终端的代码以及服务器端的servlet。手机和Servlet通信比较简单的方法就是DataInputStream.readUTF和 DataOutputStream.writeUTF的配对使用,比如手机发送数据可以在Connection的输出流中用 DataOutputStream.writeUTF依次写入多个参数,相对应的,Servlet打开请求的输入流 (request.getInputStream)用DataInputStream.readUTF来依次读出。返回的参数也一样,Servlet用 response.getOutputStream打开输出流,并把返回值依次写入,手机端打开Connection的输出流并读出即可。至于多个参数多个返回值都是没有问题的,只是多次使用writeUTF和readUTF罢了。

       首先是终端的开发,先看代码。

//包定义与类的导入
package com.blessdyb;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

//javame的midlet实现PostDemo类,包括一个输入用户名与密码及提交按钮的Form
//及一个提交后显示服务器端信息的Form
public class PostDemo extends MIDlet implements CommandListener{
       //声明各种控件
	private Display display;
	private Form formLogin=new Form("登陆");
	private Form formInfo=new Form("信息");
	private TextField tfusername=new TextField("用户名",null, 10,TextField.ANY);
	private TextField tfpassword=new TextField("密 码",null,10,TextField.PASSWORD);
	private Command cmdSubmit=new Command("登陆",Command.SCREEN,1);

	public PostDemo() {
	}

	protected void destroyApp(boolean bool) throws MIDletStateChangeException {

	}

	protected void pauseApp() {

	}
       
       //定义启动状态时的动作
	protected void startApp() throws MIDletStateChangeException {
		display=Display.getDisplay(this);
		formLogin.append(tfusername);
		formLogin.append(tfpassword);
		formLogin.addCommand(cmdSubmit);
		formLogin.setCommandListener(this);
		display.setCurrent(formLogin);
	}
       //进行本地数据的获取及与远程服务器的连接,取值
	private void postViaHttpConnection(String url) {
		try {
			HttpConnection hc=(HttpConnection) Connector.open(url);
			hc.setRequestMethod(HttpConnection.POST);
			DataOutputStream dos=hc.openDataOutputStream();
			String username=tfusername.getString();
			String password=tfpassword.getString();
			dos.writeUTF(username);
			dos.writeUTF(password);
			dos.flush();
			dos.close();
			
			DataInputStream dis=hc.openDataInputStream();
			String stringInfo=dis.readUTF();
			formInfo.append(stringInfo);
			display.setCurrent(formInfo);
			dis.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public void commandAction(Command c, Displayable d) {
		if(c==cmdSubmit){
			new Thread(){
				public void run(){
					postViaHttpConnection("http://localhost:8080/javame/postthings");
				}
			}.start();
		}
	}

}
 

下面是servlet应用的代码:

package com.blessdyb;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class PostServlets extends HttpServlet {

	private static final long serialVersionUID = 1L;

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
               //输入流定义及获取Post数据
		InputStream is=request.getInputStream();
		DataInputStream dis=new DataInputStream(is);
		String username=dis.readUTF();
		String password=dis.readUTF();
		dis.close();
		//输出流定义及用户POST请求响应
		DataOutputStream dos=new DataOutputStream(response.getOutputStream());
		dos.writeUTF("您输入的信息为:\n用户名:"+username+"\n密码:"+password);
		dos.flush();
		dos.close();
	}
}
 
1
0
分享到:
评论

相关推荐

    JavaEE网上书店系统开发

    JavaEE,全称Java Platform, Enterprise Edition,是Java平台的一个版本,专门用于开发企业级应用。它提供了丰富的API和服务器环境,包括Servlet、JSP、EJB、JMS、JPA等,使得开发高效、可扩展的Web应用程序成为可能...

    JSP,Servlet,JavaBean

    它包括了多种技术,如Java Standard Edition (JavaSE),Java Micro Edition (JavaME),以及针对企业级应用的核心技术——JSP (JavaServer Pages)、Servlet和JavaBean。 JSP在Web开发中主要用于创建动态网页,但它的...

    论文基于JAVAME的销售管.doc

    【摘要】部分提到的基于JAVAEE的销售管理系统是一个网络化的解决方案,它利用了B/S(浏览器/服务器)模式,结合Servlet、JavaBean和JSP技术来实现。该系统旨在解决传统人工管理中效率低、数据不准确、管理不及时等...

    Java EE技术基础

    持久对象层则涉及数据存储,通常通过JDBC(Java Database Connectivity)与数据库交互。 容器是Java EE的关键概念,它们为应用组件提供运行时环境,基于Java SE 5.0及以上版本。容器提供必要的服务,如JMS(Java ...

    基于JavaEE的保时捷销售管理系统_JSP网站设计_MySQL数据库设计.rar

    “JAVA”标签提示我们,该项目主要使用Java语言进行编程,这涵盖了JavaSE(标准版)、JavaEE(企业版)以及可能涉及到的部分JavaFX或JavaME(微型版)知识。 【文件内容推测】 虽然没有具体的文件列表,但根据标题...

    第1讲 Java EE技术概述

    它可以处理复杂的业务逻辑,并与数据库进行交互。 - **JavaBean**:JavaBean 是 Java EE 中用于封装数据的对象,通常用于在不同组件之间传递数据。 2. **Struts** - **简介**:Struts 是一个流行的 MVC 框架,...

    javase基础知识.pdf

    总的来说,JavaSE作为Java的基础,是学习和开发Java应用的起点,而JavaME和JavaEE则分别扩展了Java在嵌入式和企业级领域的应用。无论是在桌面应用、移动应用还是大型企业级系统中,Java都因其强大、稳定和广泛的支持...

    Java Web程序设计题库.docx

    - JDK开发包包括JavaSE、JavaME、JavaEE,其中JavaEE用于企业级Web应用。 12. **Tomcat配置**: - Tomcat的默认端口通常是8080。 13. **JSP预定义**: - `! %>`用于预定义变量和方法,声明的变量全局有效且在...

    JAVA实习报告范文.pdf

    **Java语言体系**\nJava语言作为一个完整的体系,包括JavaSE(标准版)、JavaEE(企业版)和JavaME(微型版),覆盖了从桌面应用到移动应用,再到服务器端应用的广泛领域。Java的安全特性,如类加载器、安全管理器...

    上课自用javappt

    - **JavaME**:面向嵌入式设备和移动终端的应用程序开发。 - **版本更迭**:自Java 5.0起,名称分别简化为Java EE、Java SE、Java ME。 #### 五、Java的跨平台特性 - **定义**:Java程序可以在任何安装了Java...

    Java Web快速入门——全十讲

    #### 一、Java与Web开发的融合:JavaEE标准框架 在探讨Java Web开发之前,我们首先要理解Java在Web领域的定位。Java不仅仅是一种编程语言,它还是一套完整的生态系统,适用于各种不同的平台。在Java的三大平台中...

    java基础入门详解.1

    * JavaME[J2ME]:java精简版,主要用于受限环境开发 Java应用场景包括: * 网络编程和互联网电子商务应用 * 桌面应用和局域网应用 * 企业级电子商务应用 * 移动应用开发 Java的三种核心机制包括: * Java虚拟机...

    JAVA开发常识.pdf

    6. **JDBC**:Java Database Connectivity允许Java程序通过API与各种数据库进行交互,提供了一种标准化的方式来执行SQL语句和管理数据库连接。 7. **JavaBeans**:JavaBeans是一种Java组件规范,用于创建可重用的...

    java学习笔记

    笔记还归纳了Java编程的三个主要发展方向:Javase(桌面开发)、Javaee(Web开发)、Javame(手机开发),并为Javase课程提供了细分方向,如面向对象编程、图形用户界面开发、数据库编程、文件IO流编程、网络编程和...

    login demo

    在登录示例中,Servlet可能被用来接收用户提交的登录请求,处理后与Shiro交互进行身份验证。 6. **JSP(JavaServer Pages)**:JSP是JavaEE中的视图技术,用于创建动态网页。在登录页面,JSP可以用于展示登录表单,...

    JavaSE技术入门

    JavaSE技术入门部分知识点如下: Java程序结构:Java程序结构是构成Java程序的基本单元,通常包含类定义、方法、变量、注释...掌握了这些知识点,可以让学习者为后续深入学习JavaEE和JavaME等高级主题打下坚实的基础。

    湖南教师信息管理系统登录页面.pdf

    - **Java简介**:Java是一种广泛使用的编程语言,支持多平台、动态Web计算,并分为JavaSE、JavaEE和JavaME三大体系。 - **Java特点**:平台无关性、安全性、面向对象、分布式和健壮性。 - **JDBC桥技术**:JDBC-...

    湖南教师信息管理系统登录页面.docx

    Java分为JavaSE、JavaEE和JavaME三个版本,分别适用于桌面应用、企业级应用和移动设备应用。 - **JDBC (Java Database Connectivity)**:JDBC是Java连接数据库的标准接口,提供了与各种数据库的连接能力。在本系统...

    简单的教师信息管理系统.docx

    - **JAVA**:Java是一种多平台的、面向对象的编程语言,提供JavaSE(标准版)、JavaEE(企业版)和JavaME(微型版)三个版本,适用于不同规模的开发。Java的特点包括平台无关性、安全性、面向对象等。 - **JDBC ...

Global site tag (gtag.js) - Google Analytics