`

j2me结合j2ee实现用户登陆功能【转】

阅读更多

手机客户端代码:
LoginForm:
package com;

import java.io.DataInputStream;
import java.io.IOException;
import java.io.OutputStream;

import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
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;

/** *//**
* 用Http方式与服务器交互
*
*
@author zdw
*
*/

public class LoginForm extends MIDlet implements CommandListener
{
    
private Form form = null;
    
private Display display = Display.getDisplay(this);;
    
private Command login = null;
    
private Command exit = null;
    
private TextField username = null;
    
private TextField password = null;
    
private Alert alert = null;
    
private Alert error = null;

    
public LoginForm()
    
{
         form
= new Form("用户登录");
         display.setCurrent(form);
         login
= new Command("登录", Command.SCREEN, 1);
         exit
= new Command("退出", Command.EXIT, 1);
         form.addCommand(login);
         form.addCommand(exit);

         username
= new TextField("用户名", "", 20, TextField.ANY);
         password
= new TextField("密码", "", 20, TextField.PASSWORD);

         form.append(username);
         form.append(password);
         form.setCommandListener(
this);
     }


    
public void initAlertOK()
    
{
         alert
= new Alert("提示", "登录成功!!\r\n您的用户名为:" + username.getString()
                
+ "\r\n密码为:" + password.getString(), null, AlertType.INFO);
         alert.setTimeout(Alert.FOREVER);
         display.setCurrent(alert);
     }


    
public void initAlertError()
    
{
         error
= new Alert("提示", "登录失败,用户名或密码错误", null, AlertType.ERROR);
         display.setCurrent(error);
     }


    
protected void startApp() throws MIDletStateChangeException
    
{

     }


    
/** *//**
      * 事件处理
     
*/

    
public void commandAction(Command cmd, Displayable dis)
    
{
        
// 点击退出按钮事件
        if (cmd.getCommandType() == Command.EXIT)
        
{
             System.out.println(
"exit");
            
this.notifyDestroyed();
         }

        
if (cmd == login)
        
{
            
// 必须开启独立线程来处理Http请求,否则会造成死锁
            new Thread(new Runnable()
            
{
                
public void run()
                
{
                    
try
                    
{
                         inTurnServer();
                     }
catch (Exception e)
                    
{
                         e.printStackTrace();
                     }

                 }

             }
).start();

         }

     }


    
/** *//***************************************************************************
      * 与服务器交互相关代码
     
*/

    
public void inTurnServer()
    
{
        
try
        
{
            
// 服务器请求地址
             String url = "http://localhost:8888/LoginWeb/LoginServlet";
            
// 用户输入的用户名
             String username = this.username.getString();
            
// 用户输入的密码
             String password = this.password.getString();
            
// 用url建立一个Http连接(安全的)
             HttpConnection conn = (HttpConnection) Connector.open(url);
            
// 设置请求类型为POST
             conn.setRequestMethod(HttpConnection.POST);
            
// 设置一般的请求属性
             conn.setRequestProperty("Content-Type",
                    
"application/x-www-form-urlencoded");
             conn.setRequestProperty(
"User-Agent",
                    
"Profile/MIDP-1.0 Configuration/CLDC-1.0");
             conn.setRequestProperty(
"Content-Language", "en-US");
             conn.setRequestProperty(
"Accept", "application/octet-stream");
             conn.setRequestProperty(
"Connection", "close");

            
// 要发送的数据
             String formData = "username=" + username + "&password=" + password;
            
// 转换显字节流
            byte[] data = formData.getBytes();
            
// 设置写入流的长度
             conn.setRequestProperty("Content-Length", Integer
                     .toString(data.length));
             OutputStream os
= conn.openOutputStream();
             os.write(data);
             os.close();
            
// 得到Http响应代码
            int rc = conn.getResponseCode();
            
// 正常响应
            if (rc == HttpConnection.HTTP_OK)
            
{
                
// 构建输入流
                 DataInputStream dism = new DataInputStream(conn
                         .openInputStream());
                
// 读取服务器返回的字节流
                 String result = dism.readUTF();
                 dism.close();
                
// 判断
                if (result.equals("true"))
                
{
                    
// 显示登录成功
                    this.initAlertOK();
                 }

                
if (result.equals("false"))
                
{
                    
// 显示登录失败
                    this.initAlertError();
                    
// 将输入框置空
                    this.username.delete(0, this.username.getString().length());
                    
this.password.delete(0, this.password.getString().length());
                }

             }

         }
catch (IOException e)
        
{
             e.printStackTrace();
         }

     }


    
protected void destroyApp(boolean arg0) throws MIDletStateChangeException
    
{

     }


    
protected void pauseApp()
    
{

     }


}

 

分享到:
评论

相关推荐

    J2ME_J2EE实现用户登录交互

    本教程主要关注的是如何使用J2ME为移动设备实现用户登录功能,并与J2EE后端进行交互。下面我们将详细探讨这个主题。 J2ME是Java平台的一个子集,主要用于嵌入式设备和移动设备,如手机和平板电脑。它提供了一套精简...

    J2ME&J2EE;用户登录交互

    综上所述,J2ME和J2EE的结合,使开发者能够构建出跨越移动设备和服务器的完整应用,实现用户登录及其他复杂交互。理解这两个平台的核心机制以及它们之间的交互方式,对于开发跨平台的企业级应用至关重要。同时,...

    J2ME-J2EE论文

    "2009611153053.pdf"和"20061263.pdf"可能包含更多关于J2ME和J2EE集成的案例研究或技术解析,帮助读者深入理解两者的结合应用。 "j2me_j2ee.pdf"和"lunwen.pdf"可能是一篇或几篇论文,详细探讨了J2ME和J2EE在实际...

    J2ME/J2EE实现用户登录交互 实现代码

    本文将详细介绍如何通过Java 2 Micro Edition (J2ME) 和 Java 2 Enterprise Edition (J2EE) 实现移动客户端与服务器端的用户登录交互功能。在移动互联网时代,这种基于不同平台之间的通信方式是非常常见的,并且对于...

    J2ME-J2EE结合使用经典例程

    本篇将深入探讨J2ME与J2EE的结合使用,以及“smarticket”这个经典例程可能涉及的知识点。 J2ME是Java平台的一个子集,设计用于资源有限的设备,如手机、智能手表等。它包含一套核心类库和特定设备的配置,如MIDP...

    j2me和j2ee开发方向

    - **分布式计算**:通过j2ee的集群技术,可以实现高可用性、负载均衡等功能,适用于大规模分布式系统的开发。 #### 发展趋势分析 随着技术的进步和社会需求的变化,j2me与j2ee的发展趋势也在不断演进。 - **j2me...

    基于J2ME和J2EE的手机银行设计与实现.rar

    《基于J2ME和J2EE的手机银行设计与实现》是针对移动金融服务的一种技术解决方案,它结合了Java平台的两个重要分支——J2ME(Java 2 Micro Edition)和J2EE(Java 2 Platform, Enterprise Edition)来构建安全、高效...

    [视频讲解]运用J2ME 和J2EE 实施跨平台无线应用(68节课)

    下面将详细阐述J2ME和J2EE的相关知识点,并结合跨平台无线应用的开发实践进行解析。 **J2ME(Java 2 Micro Edition)** J2ME是Java平台的一个子集,设计用于资源有限的设备,如移动电话、智能手表和家用电器等。它...

    运用J2ME 和J2EE 实施跨平台无线应用.rar

    总的来说,J2ME和J2EE的结合为跨平台无线应用开发提供了一种强大的解决方案。通过J2ME,开发者可以在有限的资源下创建丰富的用户体验;借助J2EE,可以构建稳定、高效的服务端,支持大量并发用户。这种分层架构既有利...

    j2ME , j2EE api

    Java 2 Micro Edition (j2ME) 和 Java 2 Platform, Enterprise Edition (j2EE) 是两个关键的Java技术平台,对于软件开发者来说是至关重要的工具。本文档旨在提供这两个平台的API详解,帮助开发者更好地理解和应用...

    j2me_j2eeJ2ME 新农合系统的设计与实现.pdf

    ### J2ME与J2EE在新农合系统中的应用 #### 1. 引言 新型农村合作医疗制度自2006年开始试点运行以来,对于配套的软件管理方面仍处于初步探索阶段。随着这一制度在全国范围内的普及,开发高效、安全且易于使用的综合...

    J2me案例DEMO

    案例中的"j2me_findJob"可能对应的是一个寻找工作的功能,UI可能包括文本输入框、按钮等元素,允许用户输入搜索条件并展示搜索结果。 **7. 整合案例的价值** 这个DEMO案例对初学者而言具有很高的学习价值。它将完整...

    J2ME手机银行及文档

    **J2ME手机银行系统详解** ...综上所述,J2ME和J2EE的结合在手机银行系统中起到了互补的作用,实现了移动金融的便捷性和安全性。通过不断的优化和创新,手机银行系统将继续为用户提供更高效、更安全的服务。

    J2ME 中文教程1.01

    通过“J2ME 中文教程1.01”,你将深入学习到如何配置开发环境、创建MIDlet、设计用户界面、实现网络功能、以及管理和存储数据。教程中的“calf1.01.pdf”可能是教程的主要内容,涵盖了上述所有知识点的详细讲解,...

    论文研究-基于J2ME的移动电子商务系统模型研究 .pdf

    J2ME结合HTTPS和KSSL等技术,可以保证数据在网络上的安全传输,但完整系统的安全不仅限于数据传输的加密,还包括了用户认证、权限控制、数据加密存储和安全交易机制等。例如,可以利用XML(可扩展标记语言)来封装...

    j2me入门教程j2me入门教程j2me入门教程

    J2ME 提供了在小型设备上运行应用程序的能力,同时保持与Java标准版(J2SE)和企业版(J2EE)的兼容性。本教程将帮助初学者理解J2ME的基础概念和技术,以快速入门这个领域。 1. **J2ME架构** J2ME由两部分组成:...

    J2ME开发网FAQ集锦

    - **字符串换行问题**:介绍如何在J2ME程序中处理文本的自动换行功能。 - **字体问题**:探讨在J2ME应用程序中自定义字体的方法和注意事项。 - **重新播放音乐问题**:提供解决音频文件重复播放问题的策略。 - **...

    J2EE hibernate

    【标题】"J2EE Hibernate" 指的是在Java企业级应用开发中使用Hibernate框架进行数据持久化处理的技术主题。Hibernate是一个强大的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互,使得开发者可以...

Global site tag (gtag.js) - Google Analytics