一个关于android与server端servlet交互的demo,比项目中的例子要简单很多。
入门的朋友可以参考下。
核心代码:
/**
*
* 项目名称 JSONDemo
* 包 名 servlet
* 文 件 名 CustomerServlet.java
* 开 发 人 Administrator
* 描述信息 客户端验证用户登陆Servlet
* 发布日期 2012-4-6下午03:28:47
* 修改日期
* 修 改 人
* 版本信息 V1.0
*
*/
public class CustomerServlet extends HttpServlet {
private static final long serialVersionUID = 314719472293387358L;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//登陆成功标志
String LOGIN_FLAG="";
//获得客户端提交用户名密码
String username = req.getParameter("username");
String password = req.getParameter("password");
//调用UserDAO中isLogin方法判断数据中用户名密码是否正确
boolean flag=UserDAO.isLogin(username, password);
try {
DataOutputStream output=new DataOutputStream(resp.getOutputStream());
if (flag) {
LOGIN_FLAG="success";
output.writeUTF("服务器端数据:"+LOGIN_FLAG);
System.out.println(LOGIN_FLAG);
output.writeInt(1);
output.close();
}else{
//登录失败
LOGIN_FLAG="failure";
System.out.println(LOGIN_FLAG);
output.writeUTF("服务器端数据:"+LOGIN_FLAG);
output.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
ClientDemo 核心代码:
public class MainActivity extends Activity {
//private static final int REQUEST_CODE = 2;
HttpPost httpRequest=new HttpPost(UriAPI.HTTPCustomer);
EditText et_name;
EditText et_pwd;
TextView show_login;
Button btn_login;
Button btn_cancle;
ProgressDialog progressDialog;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//初始化登陆界面
btn_login=(Button) findViewById(R.id.btn_login);
btn_cancle=(Button) findViewById(R.id.btn_cancle);
et_name=(EditText) findViewById(R.id.et_name);
et_pwd = (EditText) findViewById(R.id.et_pwd);
show_login=(TextView) findViewById(R.id.show_login);
progressDialog = new ProgressDialog(this);
btn_login.setOnClickListener(new OnClickListener() {
@SuppressWarnings("unchecked")
@Override
public void onClick(View v) {
//通过AsyncTask类提交数据 异步显示
new AT().execute(et_name.getText().toString(),et_pwd.getText().toString());
}
});
}
public class UriAPI {
/** 定义一个Uri **/
public static final String HTTPCustomer ="http://10.0.1.9:8026/JSONDemo/servlet/CustomerServlet";
}
@SuppressWarnings("rawtypes")
class AT extends AsyncTask{
String result="";
@Override
protected void onPreExecute() {
//加载progressDialog
progressDialog.show();
}
@Override
protected Object doInBackground(Object... params_obj) {
CharSequence username="";
CharSequence password="";
username=et_name.getText();
password =et_pwd.getText();
if(!username.equals("")&&!password.equals("")){
//请求数据
HttpPost httpRequest = new HttpPost(UriAPI.HTTPCustomer);
//创建参数
List<NameValuePair> params=new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", username.toString()));
params.add(new BasicNameValuePair("password", password.toString()));
//params.add(new BasicNameValuePair("flag","0"));
try {
//对提交数据进行编码
httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
HttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest);
//获取响应服务器的数据
if (httpResponse.getStatusLine().getStatusCode()==200) {
//利用字节数组流和包装的绑定数据
byte[] data =new byte[2048];
//先把从服务端来的数据转化成字节数组
data =EntityUtils. toByteArray((HttpEntity)httpResponse.getEntity());
//再创建字节数组输入流对象
ByteArrayInputStream bais = new ByteArrayInputStream(data);
//绑定字节流和数据包装流
DataInputStream dis = new DataInputStream(bais);
//将字节数组中的数据还原成原来的各种数据类型,代码如下:
result=new String(dis.readUTF());
Log.i("服务器返回信息:", result);
}
} catch(ClientProtocolException e){
e.printStackTrace();
}catch(UnsupportedEncodingException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
@Override
protected void onPostExecute(Object result) {
//获得服务器返回信息成功后
show_login.setText(result.toString());
//取消进度条
progressDialog.cancel();
}
}
}
界面截图
1.未登录
2.登陆中
3.登陆成功
4.登陆失败
分享到:
相关推荐
android与server端servlet交互.pdf
一个简单的Android客户端与servlet服务器端交互的例子,特别适合新手学习
在Android平台下,通过与Servlet交互实现用户登录与注册,很简单的例子,导入就可以运行,很适合新手
android端与servlet服务器端交互,服务器端的HTML代码,适合新手学习
多种方式实现android客户端与servlet服务器端交互,包括传递参数,文本,xml数据等
Servlet和Android网络交互入门代码
android server的api,适应于android的网络编程……
最近的Android项目开发过程中一个问题困扰自己很长时间,Android客户端与服务器交互有几种方式,最常见的就是webservices和json。要在Android手机客户端与pc服务器交互,需要满足下面几种条件:跨平台、传输数据格式...
Android和servlet交互的用户登录自带javaweb服务端源码,数据库使用的是mysql,本身没有导出配套的mysql数据库,有mysql基础的朋友可以根据Web项目里面DBManager.java定义的字段建表,只有一个用户表,本例子只是做...
servlet eclipse服务器端开发 android客户端 http json数据交互
Android studio 通过以servlet搭建的服务器访问 PC端 mysql数据库(一)服务端源代码
实验环境 jdk8,Version: Mars Release (4.5.0) 其中有原始的以ajax方式实现html与servlet的交互 也包括了使用Jquery Ajax实现交互,包括以get方式提交时候乱码问题的处理。
android 服务端 jsp servlet mysql
NULL 博文链接:https://self4j.iteye.com/blog/914068
jquery与servlet交互的小例子,能够帮助初学者了解jquery的使用
使用Struts2和jQuery EasyUI实现简单CRUD系统,从零开始,从基础的ajax与Servlet的交互开始。
用mvp思想分别实现servlet和android。
本JavaWeb工程用于研究Flex与Servlet之间数据的交互 本工程编码方式:UTF-8 欢迎下载
android-servlet-json-交互
android端和servlet端使用JSON交换数据信息的简单小例子,部分代码在JSP环境下实现,搞过Java WEB开发(JSP)的程序员,应该对Servlet不陌生,Json目前也是流行技术,所以说这个例子将Android、Json、Servlet三者结合...