android+Servlet

来源:互联网 发布:人工智能公司 编辑:程序博客网 时间:2024/06/16 00:50

转载博主:http://blog.csdn.net/yanzi1225627/article/details/24882569


1、Servlet端代码

package org.yanzi.testtomcat;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;public class TestTomcat extends HttpServlet {private static final long serialVersionUID = 1L;private static final int NAME_CODE_RIGHT = 0; //private static final int CODE_WRONG = 1;     //private static final int NAME_WRONG = 2;     //public TestTomcat(){}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stubif(req == null){return;}resp.setContentType("text/html;charset=utf-8");req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");PrintWriter out = resp.getWriter();String name = req.getParameter("NAME");String code = req.getParameter("CODE");/*//浏览器访问,没传递任何参数。用HTML格式给浏览器返回数据out.println("<html>");out.println("<head>");out.println("<title>Tomcat Servlet测试</title>");out.println("</head>");out.println("<body>");out.println("Hello,哥知道你是浏览器访问的.");out.println("</body>");out.println("</html>");out.println("Hello,第一个Tomcat!!!");out.close();*///手机客户端访问int ret = checkSubmit(name, code);out.print(ret);out.flush();out.close();}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stubif(req == null){return;}resp.setContentType("text/html;charset=utf-8");req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");PrintWriter out = resp.getWriter();String name = req.getParameter("NAME");String code = req.getParameter("CODE");int ret = checkSubmit(name, code);out.print(ret);out.flush();out.close();}/** * 判断登录名和密码 * @param name * @param code * @return */private int checkSubmit(String name, String code){int ret = -2;if(name.equals("admin")){if(code.equals("123")){ret = NAME_CODE_RIGHT;}else{ret = CODE_WRONG;}}else{ret = NAME_WRONG;}return ret;}}



2、Android客户端代码

2.1activity_main.xml

    

<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"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <EditText        android:id="@+id/edit_name"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="输入用户名" />    <EditText        android:id="@+id/edit_code"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@id/edit_name"        android:hint="输入密码" />    <LinearLayout        android:id="@+id/layout_btn"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_centerInParent="true"        android:orientation="horizontal" >        <Button            android:id="@+id/btn_submit_post"            android:layout_width="0dip"            android:layout_height="wrap_content"            android:layout_weight="1"            android:gravity="center"            android:text="POST登录 " />        <Button            android:id="@+id/btn_submit_get"            android:layout_width="0dip"            android:layout_height="wrap_content"            android:layout_weight="1"            android:gravity="center"            android:text="GET登录 " />    </LinearLayout>    <ScrollView        android:id="@+id/info_scroll_view"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@id/layout_btn" >        <TextView            android:id="@+id/tv_info"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="结果显示........." />    </ScrollView></RelativeLayout>


2.2MainActivity

package org.yanzi.testtomecat;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.conn.params.ConnManagerParams;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.impl.conn.DefaultClientConnection;import org.apache.http.message.BasicNameValuePair;import org.apache.http.params.BasicHttpParams;import org.apache.http.params.HttpConnectionParams;import org.apache.http.params.HttpParams;import org.apache.http.protocol.HTTP;import org.apache.http.util.EntityUtils;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ScrollView;import android.widget.TextView;public class MainActivity extends Activity {public static final String URL = "http://192.168.16.8:8080/TestTomcat/login";Button submitBtnPost = null;Button submitBtnGet = null;TextView infoTextView = null;EditText nameEdit = null;EditText codeEdit = null;ScrollView scrollView = null;boolean isPost = true; //默认采取post登录方式@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);scrollView = (ScrollView)findViewById(R.id.info_scroll_view);submitBtnPost = (Button)findViewById(R.id.btn_submit_post);submitBtnGet = (Button)findViewById(R.id.btn_submit_get);infoTextView = (TextView)findViewById(R.id.tv_info);nameEdit = (EditText)findViewById(R.id.edit_name);codeEdit = (EditText)findViewById(R.id.edit_code);submitBtnPost.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubisPost = true;new SubmitAsyncTask().execute(URL);}});submitBtnGet.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubisPost = false;new SubmitAsyncTask().execute(URL);}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}public class SubmitAsyncTask extends AsyncTask<String, Void, String>{String info = "";@Overrideprotected String doInBackground(String... params) {// TODO Auto-generated method stubString url = params[0];String reps = "";if(isPost){info = "HttpPost返回结果: ";reps = doPost(url);}else{info = "HttpGet返回结果: ";reps = doGet(url);}return reps;}@Overrideprotected void onPostExecute(String result) {// TODO Auto-generated method stubinfoTextView.append("\n" + info + result +"\n");String res = result.trim();if(res.equals("0")){info = "验证通过.....";}else if(res.equals("1")){info = "密码错误.....";}else if(res.equals("2")){info = "用户名错误.....";}else if(res.equals("-1")){info = "返回结果异常!";}infoTextView.append(info + "\n");scrollView.fullScroll(ScrollView.FOCUS_DOWN);super.onPostExecute(result);}}private String doGet(String url){String responseStr = "";try {String name = nameEdit.getText().toString().trim();String code = codeEdit.getText().toString().trim();String getUrl = URL + "?NAME=" + name+"&"+"CODE=" + code;HttpGet httpRequest = new HttpGet(getUrl);HttpParams params = new BasicHttpParams();ConnManagerParams.setTimeout(params, 1000);HttpConnectionParams.setConnectionTimeout(params, 3000);HttpConnectionParams.setSoTimeout(params, 5000);httpRequest.setParams(params);HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);final int ret = httpResponse.getStatusLine().getStatusCode();if(ret == HttpStatus.SC_OK){responseStr = EntityUtils.toString(httpResponse.getEntity(), HTTP.UTF_8);}else{responseStr = "-1";}} catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return responseStr;}/** * 用Post方式跟服务器传递数据 * @param url * @return */private String doPost(String url){String responseStr = "";try {HttpPost httpRequest = new HttpPost(url);HttpParams params = new BasicHttpParams();ConnManagerParams.setTimeout(params, 1000); //从连接池中获取连接的超时时间HttpConnectionParams.setConnectionTimeout(params, 3000);//通过网络与服务器建立连接的超时时间HttpConnectionParams.setSoTimeout(params, 5000);//读响应数据的超时时间httpRequest.setParams(params);//下面开始跟服务器传递数据,使用BasicNameValuePairList<BasicNameValuePair> paramsList = new ArrayList<BasicNameValuePair>();String name = nameEdit.getText().toString().trim();String code = codeEdit.getText().toString().trim();paramsList.add(new BasicNameValuePair("NAME", name));paramsList.add(new BasicNameValuePair("CODE", code));UrlEncodedFormEntity mUrlEncodeFormEntity = new UrlEncodedFormEntity(paramsList, HTTP.UTF_8);httpRequest.setEntity(mUrlEncodeFormEntity);HttpClient httpClient = new DefaultHttpClient();HttpResponse httpResponse = httpClient.execute(httpRequest);final int ret = httpResponse.getStatusLine().getStatusCode();if(ret == HttpStatus.SC_OK){responseStr = EntityUtils.toString(httpResponse.getEntity(), HTTP.UTF_8);}else{responseStr = "-1";}} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return responseStr;}}<strong></strong>


0 0
原创粉丝点击