Android客户端post方式连接web(servlet)服务器实现简单登录

本文介绍了Android客户端如何通过POST方式连接web服务器实现简单的登录功能。重点在于:1) 网络请求不能在主线程执行,需用子线程防止ANR;2) 子线程不能直接更新UI,需借助Handler;3) 注意Handler可能导致的内存泄露问题,可通过弱引用避免。同时,文章提到了服务器端的Servlet配置,包括LoginAction.java的编写和web.xml的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


注意点:

1、访问网络的工作不能在主线程(UI)中进行,如果耗时过程则会导致程序出错 ------(子线程中进行)

2、子线程不能更新UI -------(主线程中进行)

3、使用Handler配合子线程更新主线程时要注意内存泄露的问题,解决内存泄露的方法之一就是以弱引用的形式:

//弱引用,防止内存泄露
    private static class MyHandler extends Handler {
        private final WeakReference<MainActivity> mActivity;

        public MyHandler(MainActivity activity) {
            mActivity = new WeakReference<MainActivity>(activity);
        }

        @Override
        public void handleMessage(Message msg) {
            System.out.println(msg);
            if (mActivity.get() == null) {
                return;
            }
            mActivity.get().updateUIThread(msg);
        }
    }

4、在使用post向服务器发送请求时,要注意发送数据参数的格式,发送的参数是以key=value&key=value&key=value的格式进行发送的,value一般都要进行URL编码

//我们请求的数据
            String data = "password="+ URLEncoder.encode(passwd,"UTF-8")+
                    "&username="+URLEncoder.encode(username,"UTF-8");
5、使用模拟器进行测试时,URL中的IP地址不是127.0.0.1,而是10.0.2.2

private static String LOGIN_URL = "http://10.0.2.2:8080/webtest/loginaction";




实例:在Android客户端中输入用户名和密码之后,将其提交至服务器,服务器进行判断用户名和密码是否正确,如果正确则返回success,失败则返回fail

配置服务器

在搭建好tomcat服务器之后,在eclipse中创建servlet文件

LoginAction.java(服务器)

package Login;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.HashMap;

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

import java.util.HashMap;
import java.util.Map;

/**
 * Servlet implementation class LoginAction
 */
@WebServlet("/LoginAction")
pub
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值