Android开发之登录验证实例教程

本文所述实例源自一个项目开发中的登录验证功能,具体的要求就是,在Android端输入用户名和密码,在服务器端验证MySQL数据库中是否有此用户,实现之前当然首要的是,如何使Android端的数据发送到服务器端,具体的实现方法如下:

服务器端:ManageServlet.java代码如下:

public class ManageServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); String name = request.getParameter("name"); String password = request.getParameter("password"); System.out.println("用户名:"+name+" 密码:"+password); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }

在这里实现的仅仅是把用户端的数据在控制台打印出来,相信学过jsp开发的大神,剩下的数据验证应该不在话下,在此不再赘述。

接下来就是Android端了:

主activity:MainActivity.java页面代码如下:

public class MainActivity extends Activity { private EditText textname = null; private EditText textpassword = null; private Button button = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textname = (EditText)findViewById(R.id.name); textpassword = (EditText)findViewById(R.id.password); button = (Button)findViewById(R.id.button); button.setOnClickListener(new mybuttonlistener()); } class mybuttonlistener implements OnClickListener{ boolean result=false; String name; String password; public void onClick(View v) { try { name = textname.getText().toString(); name = new String(name.getBytes("ISO8859-1"), "UTF-8"); password = textpassword.getText().toString(); password = new String(password.getBytes("ISO8859-1"), "UTF-8"); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { result = NewsService.save(name,password); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } if(result){ Toast.makeText(MainActivity.this, R.string.ok, Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(MainActivity.this, R.string.error, Toast.LENGTH_SHORT).show(); } } } }

布局文件如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="${relativePackage}.${activityClass}" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/name" /> <EditText android:id="@+id/name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/playname" android:singleLine="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/password" /> <EditText android:id="@+id/password" android:layout_width="fill_parent" android:layout_height="wrap_content" android:password="true" android:hint="@string/playpass" android:singleLine="true" /> <Button android:id="@+id/button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="" android:text="@string/submit" /> </LinearLayout> </RelativeLayout>

用于向服务器端发送数据的service(NewsService):

public class NewsService { /** * 登录验证 * @param name 姓名 * @param password 密码 * @return */ public static boolean save(String name, String password){ String path = "http://<span style="color: #ff0000;"><strong>192.168.1.104</strong></span>:8080/Register/ManageServlet"; Map<String, String> student = new HashMap<String, String>(); student.put("name", name); student.put("password", password); try { return SendGETRequest(path, student, "UTF-8"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; } /** * 发送GET请求 * @param path 请求路径 * @param student 请求参数 * @return 请求是否成功 * @throws Exception */ private static boolean SendGETRequest(String path, Map<String, String> student, String ecoding) throws Exception{ // http://127.0.0.1:8080/Register/ManageServlet?name=1233&password=abc StringBuilder url = new StringBuilder(path); url.append("?"); for(Map.Entry<String, String> map : student.entrySet()){ url.append(map.getKey()).append("="); url.append(URLEncoder.encode(map.getValue(), ecoding)); url.append("&"); } url.deleteCharAt(url.length()-1); System.out.println(url); HttpsURLConnection conn = (HttpsURLConnection)new URL(url.toString()).openConnection(); conn.setConnectTimeout(100000); conn.setRequestMethod("GET"); if(conn.getResponseCode() == 200){ return true; } return false; } }

因为需要连接网络,一定要在AndroidManifest.xml进行网络权限配置:

<uses-permission android:name="android.permission.INTERNET"/>

至此基本已经完成Android向服务器端发送数据,希望本文实例对大家的Android程序设计有所帮助。

时间: 2024-10-28 13:22:46

Android开发之登录验证实例教程的相关文章

Android开发之登录验证实例教程_Android

本文所述实例源自一个项目开发中的登录验证功能,具体的要求就是,在Android端输入用户名和密码,在服务器端验证MySQL数据库中是否有此用户,实现之前当然首要的是,如何使Android端的数据发送到服务器端,具体的实现方法如下: 服务器端:ManageServlet.java代码如下: public class ManageServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServle

Struts从零开始一、普通的登录验证实例

Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的.由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的几年中颇受关注.Struts把Servlet.JSP.自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架.很多公司开发的产品都是基于此框架的. 当然,有朋友一提起编程就觉得头痛,

Android 开发订单流程view实例详解

Android 开发订单流程view实例详解 先看看最终效果图: 怎么样,效果还是很不错的吧?群里有人说切四张图的.recycleview的.各种的都有啊,但是最简单的就是通过自定义view来实现了-接下来让我们来实现下这个(订单流程view). 首先我们定义好我们的自定义属性: attrs.xml <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable

Android获取短信验证码实例教程及自动填写

短信验证需要服务器端生成一个验证码,然后发送到用户输入的手机上,这个过程需要服务器主动向客户发送验证短信,所以这是就需要一个移动或联通的发送短息接口,由于本人目前尚处于学生阶段,没有获得这个接口的权限,所以我就选择了借助网上的移动开发服务平台,来完成这个功能的实现,这里我借用的平台是:http://dashboard.mob.com/,大家可以关注一下,这个平台为我们开发移动应用提供了很好的技术指导,可以大大缩短我们的开发周期.废话不多说,下面开始我们今天的重点. 官方为我们提供了两种设计方式:

Android开发中PopupWindow用法实例分析_Android

本文实例分析了Android开发中PopupWindow用法.分享给大家供大家参考,具体如下: private TextView tv_appmanager_title; private ListView lv_app_manager; private LinearLayout ll_appmanager_loading; private AppManagerProvider provider; private List<AppManagerInfo> infos ; private AppM

Android开发中PopupWindow用法实例分析

本文实例分析了Android开发中PopupWindow用法.分享给大家供大家参考,具体如下: private TextView tv_appmanager_title; private ListView lv_app_manager; private LinearLayout ll_appmanager_loading; private AppManagerProvider provider; private List<AppManagerInfo> infos ; private AppM

Shiro安全框架入门篇(登录验证实例详解与源码)

版权声明:本文为博主原创文章,转载注明出处http://blog.csdn.net/u013142781 目录(?)[+] 一.Shiro框架简单介绍 Apache Shiro是Java的一个安全框架,旨在简化身份验证和授权.Shiro在JavaSE和JavaEE项目中都可以使用.它主要用来处理身份认证,授权,企业会话管理和加密等.Shiro的具体功能点如下: (1)身份认证/登录,验证用户是不是拥有相应的身份:  (2)授权,即权限验证,验证某个已认证的用户是否拥有某个权限:即判断用户是否能做

MyEclipse+JSP+SqlServer登录验证图文教程(含源码)

    这几天专业实训,需要用MyEclipse编写JSP从数据库验证用户名和密码,捣鼓了很久总算成功.本文适合初学者上手学习,望大神勿喷. 文末会附上部分工具下载地址及源码 目录 1.       新建数据库test并新建表users.1 1.1启动SQLServer相关服务...1 1.2 新建数据库...2 1.3新建表...2 1.4设置主键...2 1.5标识规范...3 1.6 保存...3 1.7 编辑表users.4 1.8      CTRL+S 保存,至此,数据库这块操作完毕

Android开发之浏览器用法实例详解(调用uc,opera,qq浏览器访问网页)_Android

本文实例讲述了Android开发之浏览器用法.分享给大家供大家参考,具体如下: 一.启动android默认浏览器 Intent intent = new Intent(); intent.setAction("android.intent.action.VIEW"); Uri content_url = Uri.parse("http://www.jb51.net"); intent.setData(content_url); startActivity(inten