Post请求登录笔记(服务器和客户端示例源码)

来源:互联网 发布:数学在线解题软件 编辑:程序博客网 时间:2024/05/02 05:03

</pre>服务器接收数据的MyServlet.java</p><p><pre name="code" class="java">package com.byg.j2ee;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class MySerlet extends HttpServlet {/*** 去接收Android手机端的信息*/@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// super.doPost(req, resp);//定义接收数据的编码格式utf-8req.setCharacterEncoding("utf-8");String name = req.getParameter("name");String pwd = req.getParameter("pwd");//测试:在控制台打印获取的信息System.out.println(name);System.out.println(pwd);resp.getOutputStream().write("登录成功".getBytes("utf-8"));}}


关于服务器的搭建(使用Tomcat管理,J2EE服务器编程,日后再说 )


然后在Android SDK 环境下进行模拟请求服务器登录的功能

package com.example.networkinffdemo;import com.byg.util.PostUtil;import android.app.Activity;import android.app.ProgressDialog;import android.os.AsyncTask;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class LoginActivity extends Activity {private EditText edit_name;private EditText edit_pwd;private Button btn_login;//登录的url()//只要将原来的localhost或者127.0.0.1改成Android映射的环路地址10.0.2.2或者是本机的ip地址private String loginUrl = "http://172.16.15.238:8009/Second/MySerlet";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.login_layout);edit_name = (EditText)findViewById(R.id.edit_name);edit_pwd = (EditText)findViewById(R.id.edit_pwd);btn_login = (Button)findViewById(R.id.btn_login);btn_login.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String name = edit_name.getText()+"";String pwd = edit_pwd.getText()+"";//网络请求时好使操作,LoginTask loginTask = new LoginTask();loginTask.execute(loginUrl,name ,pwd);}});}public class LoginTask extends AsyncTask<String, Void, String>{private ProgressDialog progressDialog;@Overrideprotected void onPreExecute() {super.onPreExecute();progressDialog = new ProgressDialog(LoginActivity.this);progressDialog.setMessage("正在验证信息...");progressDialog.show();}@Overrideprotected String doInBackground(String... params) {return PostUtil.postLogin(params[0],params[1],params[2]);}@Overrideprotected void onProgressUpdate(Void... values) {super.onProgressUpdate(values);}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);progressDialog.cancel();Toast.makeText(LoginActivity.this, result, Toast.LENGTH_SHORT).show();}}}

配置布局文件
login_layout.xml
<pre name="code" class="html"><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <EditText        android:id="@+id/edit_name"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:ems="10"        android:hint="@string/name_hint" >        <requestFocus />    </EditText>    <EditText        android:id="@+id/edit_pwd"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:ems="10"        android:hint="@string/pwd_hint"        android:inputType="textPersonName" />    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="center" >        <Button            android:id="@+id/btn_login"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="@string/btn_ok" />        <Button            android:id="@+id/btn_cancel"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="@string/cancel" />    </LinearLayout></LinearLayout>




0 0
原创粉丝点击