亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android開發之登錄驗證實例教程

2020-04-11 11:44:43
字體:
來源:轉載
供稿:網友

本文所述實例源自一個項目開發中的登錄驗證功能,具體的要求就是,在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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲天堂av综合网| 亚洲区在线播放| 欧美日韩国产精品一区二区三区四区| 亚洲欧美激情一区| 欧美精品电影在线| 国产精品大陆在线观看| 久久亚洲精品国产亚洲老地址| 北条麻妃在线一区二区| 日韩av在线免费观看一区| 岛国av一区二区三区| 精品无人区乱码1区2区3区在线| 国产精品久久久久77777| 欧美日韩在线看| 欧美成aaa人片在线观看蜜臀| 亚洲码在线观看| 国产激情999| 亚洲精品久久久久国产| 欧美日韩国产精品| 亚洲高清在线观看| 欧美人交a欧美精品| 中文字幕av一区二区三区谷原希美| 最近中文字幕mv在线一区二区三区四区| 国产一区二区三区在线看| 日韩中文字在线| 欧美性xxxxhd| 亚洲国产精品国自产拍av秋霞| 国产99视频精品免视看7| 色噜噜亚洲精品中文字幕| 国产成人精品av| 一夜七次郎国产精品亚洲| 日本欧美一二三区| 国产成+人+综合+亚洲欧美丁香花| 亚洲精品美女久久| 国内精品视频久久| 欧美视频一区二区三区…| 欧美极品少妇全裸体| 国产免费观看久久黄| 亚洲国产精品久久久久| 国产97人人超碰caoprom| 日韩av在线免播放器| 日韩美女av在线免费观看| 久热精品视频在线观看| 欧美激情视频一区| 日本精品一区二区三区在线播放视频| 2019亚洲日韩新视频| 欧美精品电影免费在线观看| 国产精品jizz在线观看麻豆| 精品视频偷偷看在线观看| 成人激情在线播放| 久久久国产在线视频| 国内精品久久久久影院优| 欧美精品在线视频观看| 国产成人av网址| 91av网站在线播放| 亚洲精品久久久久久下一站| 欧美性视频精品| 国产精品久久久久久久app| 亚洲女同性videos| 国产精品视频在线观看| 超薄丝袜一区二区| 亚洲国产精品一区二区久| 日韩av电影在线免费播放| 清纯唯美亚洲综合| 国产一区二区丝袜| 欧美贵妇videos办公室| 精品中文字幕在线| 中文字幕在线视频日韩| 国产成人精品一区二区| 亚洲午夜精品视频| 亚洲欧美综合精品久久成人| 奇米4444一区二区三区| 欧美一区深夜视频| 97av在线视频免费播放| 欧美肥婆姓交大片| 国产福利视频一区| 欧美精品成人91久久久久久久| 成人福利在线观看| 韩国一区二区电影| 日本老师69xxx| 欧美黑人巨大精品一区二区| 亚洲变态欧美另类捆绑| 欧美激情精品久久久久久大尺度| 久久久久久久电影一区| 国产免费亚洲高清| 国外色69视频在线观看| 中文字幕久久久| 琪琪亚洲精品午夜在线| 国产精品美女免费视频| 亚洲男人av在线| 66m—66摸成人免费视频| 亚洲人成网站色ww在线| 国产日产欧美a一级在线| 中文字幕在线看视频国产欧美在线看完整| 日韩免费在线免费观看| 日韩视频免费大全中文字幕| 亚洲免费中文字幕| 日韩一区二区福利| 日韩视频免费中文字幕| 国产精品中文字幕在线| 中文字幕综合一区| 姬川优奈aav一区二区| 成人精品一区二区三区电影免费| 最新69国产成人精品视频免费| 国产97在线|亚洲| 亚洲精品视频免费| 欧美激情精品久久久久久黑人| 日本国产欧美一区二区三区| 国产日韩精品在线观看| 亚洲新中文字幕| 正在播放欧美一区| 欧美一区二粉嫩精品国产一线天| 在线播放日韩欧美| 亚洲欧洲午夜一线一品| 中文字幕不卡在线视频极品| 日韩在线视频一区| 国产视频福利一区| 中文精品99久久国产香蕉| 久久99亚洲精品| 日韩网站在线观看| 97视频在线观看亚洲| 91人人爽人人爽人人精88v| 日韩精品一二三四区| 精品美女国产在线| 国产精品亚洲第一区| 久久久亚洲精选| 国产欧美一区二区三区在线看| 91wwwcom在线观看| 欧美高清视频免费观看| 欧美巨乳美女视频| 亚洲最大激情中文字幕| 91久久精品一区| 国产精品无码专区在线观看| 亚洲欧美综合另类中字| 成人午夜两性视频| 国产伦精品一区二区三区精品视频| 国产亚洲一区二区精品| 久久不射电影网| 久久精品中文字幕| 欧美精品一区三区| 日韩精品免费电影| 国产精品入口福利| 国产精品久久77777| 国产一区二区三区18| 久久精品久久久久电影| 91中文字幕在线观看| 懂色av中文一区二区三区天美| 亚洲第一男人天堂| 亚洲欧美激情精品一区二区| 一区二区三区黄色| 日韩美女在线观看一区| 亚洲天堂精品在线| 麻豆乱码国产一区二区三区| 亚洲欧美日韩高清| 欧美美最猛性xxxxxx| 尤物九九久久国产精品的分类| 欧美在线一区二区视频| 国产精品久久久久久久一区探花| 欧美多人爱爱视频网站| 亚洲精品国产精品自产a区红杏吧| 欧美性20hd另类| 亚洲视频999| 日韩av中文字幕在线| 国模私拍视频一区| 国产精品视频免费在线观看|