- 浏览: 52256 次
- 性别:
- 来自: 杭州
最新评论
-
gintama:
duduli 写道http://duduli.iteye.co ...
关于google map只显示网格的问题 -
duduli:
http://duduli.iteye.com/blog/12 ...
关于google map只显示网格的问题
附件有完整代码
登录界面:
登录的Activity:
package com.example.knowledgedemo; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.app.ProgressDialog; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.Button; import android.widget.EditText; import com.example.entity.loginPerson; import com.example.utils.HttpUtil; import com.example.utils.ToastUtil; import com.google.gson.Gson; /** * 知识点:handler的使用、服务端客户端交互、Json、Gson、 * @author somebody * */ public class LoginDemo extends Activity { private EditText loginname, password; private Button login; private ProgressDialog progressdialog; private String name, pwd; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.login); loginname = (EditText) findViewById(R.id.loginname); password = (EditText) findViewById(R.id.password); login = (Button) findViewById(R.id.login); login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { login();//点击登录按钮 } }); } private void login() { showProgressDialog();//显示进度框 new Thread() { public void run() { requestServer();//请求服务器 } }.start(); } private void showProgressDialog() { if (progressdialog == null) { progressdialog = new ProgressDialog(this); } if (progressdialog.isShowing()) { progressdialog.dismiss(); } progressdialog.setTitle("提示"); progressdialog.setMessage("正在登陆.."); progressdialog.show(); } private Handler handler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); progressdialog.dismiss(); switch (msg.what) { case 0: ToastUtil.longToast(getApplicationContext(), R.string.network_ok);//Toast 提示信息、登录成功 break; case 1: ToastUtil.longToast(getApplicationContext(), R.string.network_not_ok);//登录失败 break; case 2: ToastUtil.longToast(getApplicationContext(), R.string.network_not_ok);//TimeOut 网络连接失败 break; default: break; } } }; private void requestServer(){ name = loginname.getText().toString(); pwd = password.getText().toString();//获取用户名密码 loginPerson person = new loginPerson(); person.setLoginName(name); person.setPassWord(pwd); Gson g = new Gson(); /* * Gson将person对象转换为Json格式的字符串 * 此时obj = {"loginName":"1","passWord":"1"} * */ String obj = g.toJson(person); String result = HttpUtil.httpPostCodeParams("login",obj);//请求服务端、获取返回值 JSONObject resultObject; if(result.startsWith("TimeOut")||result.length()==0){ handler.sendEmptyMessage(2);//请求服务端超时 }else{ try { //如果不超时、返回的数据格式 {"result":"0"} resultObject = new JSONObject(result); result = resultObject.getString("result"); } catch (JSONException e) { e.printStackTrace(); } if(result.equals("0")){ handler.sendEmptyMessage(0);//登录成功 }else if(result.equals("1")){ handler.sendEmptyMessage(1);//登录失败 } } } }
存放用户名密码的LoginPerson对象:
package com.example.entity; public class LoginPerson { private String loginName; private String passWord; public String getLoginName() { return loginName; } public void setLoginName(String loginName) { this.loginName = loginName; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } }
请求服务端的方法:
package com.example.utils; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.SocketTimeoutException; import java.net.URL; public class HttpUtil { /** * 传递命令和参数 * * @param postCode * @param obj * @return */ public static String httpPostCodeParams(String postCode, String obj) { StringBuilder sbResponse = new StringBuilder(); URL url; try { //请求的url = http://10.33.1.204:8888/KnowledgeManagementServer/Servlet/ 加 postCode //服务端ip、端口、服务端项目名、服务端使用servlet+命令的方式响应请求 url = new URL(getUrl(postCode)); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setReadTimeout(Constants.connectTimeout); conn.setConnectTimeout(Constants.connectTimeout); conn.setDoOutput(true); conn.setDoInput(true); DataOutputStream outStream = new DataOutputStream( conn.getOutputStream()); outStream.writeUTF(obj.toString()); outStream.flush(); outStream.close(); int cah = conn.getResponseCode(); if (cah != 200) { return "TimeOut"; } BufferedReader reader = new BufferedReader(new InputStreamReader( conn.getInputStream(), "utf-8")); String lines; while ((lines = reader.readLine()) != null) { sbResponse.append(lines); } conn.disconnect(); } catch (SocketTimeoutException e) { return "TimeOut"; } catch (IOException e) { e.printStackTrace(); } return sbResponse.toString(); } private static String getUrl(String postCode) { return Constants.server + postCode; } }
Servlet相应类:
package com.ck.servlet; import java.io.DataInputStream; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ck.entity.LoginPerson; import com.google.gson.Gson; import com.google.gson.JsonObject; public class LoginServlet extends HttpServlet{ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); resp.setCharacterEncoding("utf-8"); PrintWriter out = resp.getWriter(); DataInputStream dis = new DataInputStream(req.getInputStream()); String param = dis.readUTF(); Gson g = new Gson(); LoginPerson person = g.fromJson(param, LoginPerson.class); JsonObject jsonObject = new JsonObject(); if(person.getLoginName().equals("1")&&person.getPassWord().equals("1")){ jsonObject.addProperty("result", "0"); }else{ jsonObject.addProperty("result", "1"); } //{"result":"0"} out.print(jsonObject.toString()); out.flush(); out.close(); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub doPost(req, resp); } }
- LoginDemo.rar (1.7 MB)
- 下载次数: 21
发表评论
-
获取手机IMEI值
2013-01-06 10:24 2696public String getImei() { ... -
android 使用第三方包后图片资源混乱
2012-09-12 16:20 1114第三方包中、使用以下方式获取资源文件/控件: i ... -
android 删除模拟器上的文件/文件夹
2012-08-20 17:37 1596例如: 删除 sdcard/temp/a.xml ... -
Hudson的配置
2012-03-05 18:37 15631.下载hudson的war包 http://h ... -
android文件存取
2012-02-28 13:59 770写的方法: private void write(S ... -
Prefefence的使用
2012-02-28 13:21 950取: //ck 是文件名 SharedPrefer ... -
Notification和NotificationManager的使用
2012-02-27 17:14 1279//主要代码 package com.ck; ... -
BroadCastReceive的使用
2012-02-27 14:09 11571.在activity中 Intent i = n ... -
Intent的属性
2012-02-24 14:47 3665/** 1.ComponentName Com ... -
android 基础
2012-02-20 14:53 795四大天王:acticity 数据的展示 ... -
Handler的使用一
2012-01-31 16:49 809//activity里面不能做耗时比较长的操作、不仅会导致 ... -
android开发、使用Json传递数据、
2011-12-05 18:34 2620//记录一下、留给自己的、 public stati ... -
自定义ListView
2011-12-05 17:43 664/** 这个Demo不错、看懂了之后神马样的listvi ... -
没有继承Activity的类中使用Preference
2011-11-30 17:11 1192/** getSharedPreferences是依赖上 ... -
android入门、增删改查
2011-11-28 17:47 700/** 小东西、入门的时候做的、留下来、 运行前导 ... -
关于google map只显示网格的问题
2011-11-28 15:50 2299/** 先声明我自己没有搞定、之前有弄出来过一次、 ... -
网址收藏
2011-11-17 16:31 577icon: www.iconfinder. ... -
申请Android Google Map API key
2011-11-08 10:05 9181.首先找到debug keystore路径: 打开Ecli ... -
保存bitmap对象到SD卡
2011-11-07 10:25 2733public static void saveBitmap ... -
使用intent传递bitmap对象
2011-11-03 18:53 1607/** * 存: i.putExtra("0& ...
相关推荐
PaddleTS 是一个易用的深度时序建模的Python库,它基于飞桨深度学习框架PaddlePaddle,专注业界领先的深度模型,旨在为领域专家和行业用户提供可扩展的时序建模能力和便捷易用的用户体验。
白色大气风格的乐器爱好者网站模板下载.zip
海外派遣员工管理守则
flowable-demo-master
内容概要:本文档详细介绍了一个图书馆管理系统的数据库课程设计。内容涵盖需求分析、数据库设计、SQL实现、前端实现及系统测试等环节。项目旨在支持图书借阅、归还、图书信息管理、用户管理等功能。数据库设计包括三个主要表:用户表(Users)、图书表(Books)和借阅记录表(BorrowRecords)。通过具体示例演示了表的创建、数据插入及查询操作。 适用人群:适合正在学习数据库设计或从事数据库相关工作的学生和技术人员。 使用场景及目标:①学习如何进行需求分析,确定系统的功能和数据需求;②掌握数据库设计方法,绘制ER图并转换为具体的表结构;③编写SQL语句,实现数据的增删改查操作;④实现前端页面,完成与后端的交互;⑤进行系统测试,确保各项功能正常运行。 其他说明:此文档不仅提供了理论知识,还给出了详细的代码示例,非常适合动手实践。建议在学习过程中结合文档中的示例,动手实现数据库设计、SQL操作和前端页面,从而加深对数据库技术的理解。
白色风格的手机网站模板下载.rar
白色淡雅风的商务企业网站模板下载.zip
白色大气风格的企业站通用整站网站源码下载.zip
PCle AI加速卡在医疗影像诊断中的应用.docx
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
白色大气简洁的时装模特企业网站模板下载.zip
西门子PLC 1214C 做的压机控制 可以在触摸屏上任意编辑压装逻辑 该程序为一台设备的完成程序 包含很多工能块 压机控制程序+汇川PN伺服块+脉冲控制块+以太网TCP功能块 + 气缸块+托盘坐标计算块+基恩士扫码器SR1000块+模拟量功能块 所有功能块都是基于模块话编程思路编辑功能块都是SCL语言 可移植性强 一个公式套用所有功能块 可以直接将IO引脚做成触摸屏库关联 编写思路新颖,有助于提高编程能力
通过分析,了解谷歌应用商店app的总体情况。
“开学第一课”小学儿童教育家长会宣传模板
内容概要:本文涵盖了大地测量的基本概念、任务和特点,大地测量系统与参考框架,常用坐标系及其转换方法,传统大地控制网的布设原则,光学经纬仪和全站仪的使用与检验,水平角和三角高程测量的观测方法,以及导线测量的技术要点。文中还提供了多个例题,帮助考生理解和掌握关键知识点。 适合人群:具备一定测绘基础,准备参加注册测绘师资格考试的专业技术人员。 使用场景及目标:用于备考注册测绘师资格考试,提高大地测量领域的专业知识和技能,掌握具体的测量方法和技术细节。 阅读建议:此讲义内容详实,涵盖了大量实用的技术细节,建议结合实际测量工作和练习题进行学习,以加深理解和应用能力。
白色简洁风的设计企业网站模板下载.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
白色大气风格的恐龙化石博物馆网站模板下载.zip
白色简洁风格的餐厅会员登录框源码下载.zip
白色创意风格的单反爱好者网站模板下载.zip