高职示范校建设专题网站,清远最新闻,wordpress 优势,宁夏 网站开发westte原创#xff1a;http://blog.csdn.net/iwanghang1.先来个Androiod端口的GIF效果图App图标大家可能没看清#xff0c;这个是AndroidStudio3.0最新的默认App图标哦~~2.不要忘记把MySQL的jar导进来jar包放入的位置在这里#xff1a;D:\eclipse-workspace\.metadata\.plugins\or…原创http://blog.csdn.net/iwanghang1.先来个Androiod端口的GIF效果图App图标大家可能没看清这个是AndroidStudio3.0最新的默认App图标哦~~2.不要忘记把MySQL的jar导进来jar包放入的位置在这里D:\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\servletDemo\WEB-INF\lib3.Server端代码package com.iwanghang.servletDemo;import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.logging.Level;import java.util.logging.Logger;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class Test01 implements Servlet{private String username; // 请求参数中的usernameprivate String password; // 请求参数中的passwordprivate String passwordSql; // 数据库中的passwordprivate String islogin; //返回参数是否登录成功public Test01() {System.out.println(HelloServlet...);}Overridepublic void destroy() {System.out.println(destroy...);}Overridepublic ServletConfig getServletConfig() {System.out.println(getServletConfig...);return null;}Overridepublic String getServletInfo() {System.out.println(getServletInfo...);return null;}Overridepublic void init(ServletConfig arg0) throws ServletException {System.out.println(init...);}Overridepublic void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {System.out.println(service...);// 获取请求参数username request.getParameter(username);password request.getParameter(password);System.out.println(获取请求参数 username username);System.out.println(获取请求参数 password password);// 在MySQL中用username查找对应的passwordtry {Class.forName(com.mysql.jdbc.Driver);//创建驱动器// 写法1. 这样写会有警告但是不影响使用// Connection conDriverManager.getConnection(jdbc:mysql://localhost:3306/mysql,root,123456);//这是数据库的路径并且还有输入账号(一般默认是root)密码之前创建用户时的那个// 写法2. 看起来比较复杂但是没有警告Connection con DriverManager.getConnection(jdbc:mysql://localhost:3306/demo1113?useUnicodetruecharacterEncodingutf-8useSSLfalse,root, 123456);PreparedStatement pstcon.prepareCall(select * from aaa_user where username username );//输入的是要在MySQL中执行的代码ResultSet rspst.executeQuery();//获得执行上面代码后的结果集while(rs.next()){passwordSql rs.getString(password);} // 最后还有关闭连接}catch (ClassNotFoundException ex) {Logger.getLogger(Test01.class.getName()).log(Level.SEVERE, null, ex);} catch (SQLException ex) {Logger.getLogger(Test01.class.getName()).log(Level.SEVERE, null, ex);}// 对比数据库中的password与请求参数中的password是否一致if (passwordSql.equals(password)){ // 如果相同islogin yes;}else{// 如果不同islogin no;};System.out.println(islogin islogin);response.setCharacterEncoding(UTF-8);response.setContentType(application/json; charsetutf-8);//String jsonStr {\username\:\王航\// ,\password\:\987654\// ,\status\:\1\};String jsonStr {\islogin\:\islogin\};PrintWriter out null;try {out response.getWriter();out.write(jsonStr);} catch (IOException e) {e.printStackTrace();} finally {if (out ! null) {out.close();}}}}4.Server端控制台调试信息5.Android端代码package com.iwanghang.demo1113;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import com.android.volley.AuthFailureError;import com.android.volley.Request;import com.android.volley.RequestQueue;import com.android.volley.Response;import com.android.volley.VolleyError;import com.android.volley.toolbox.StringRequest;import com.android.volley.toolbox.Volley;import org.json.JSONException;import org.json.JSONObject;import java.util.HashMap;import java.util.Map;import static com.iwanghang.demo1113.Constant.LOGINCHECK;public class MainActivity extends AppCompatActivity {private String TAG MainActivity;// 创建请求队列RequestQueue requestQueue null;private EditText et_username;private EditText et_password;private Button bt_login;private String username;private String password;private String status;private String islogin;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);requestQueue Volley.newRequestQueue(this);et_username findViewById(R.id.et_username);et_password findViewById(R.id.et_password);bt_login findViewById(R.id.bt_login);initLogin(); // 登录 按钮点击事件监听}/*** 登录 按钮点击事件监听*/private void initLogin() {bt_login.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {// 获取输入账号密码username et_username.getText().toString();password et_password.getText().toString();Log.v(TAG, username username);netLogin(); // 发送网络请求}});}/*** 发送网络请求 尝试登陆*/private void netLogin() {// 请求地址//String url hhttp://192.168.1.129:8080/servletDemo/test01;StringRequest request new StringRequest(Request.Method.POST, LOGINCHECK, new Response.Listener() {Overridepublic void onResponse(String response) {Log.v(TAG,response response);// 返回结果try {if (response.equals(no)){Toast.makeText(MainActivity.this, 登录失败请检查ID是否正确, Toast.LENGTH_SHORT).show();}else {JSONObject object1 new JSONObject(response);islogin object1.getString(islogin); // isloginLog.e(TAG, islogin islogin);Toast.makeText(MainActivity.this, islogin islogin, Toast.LENGTH_SHORT).show();}} catch (JSONException e) {e.printStackTrace();}}}, new Response.ErrorListener() {Overridepublic void onErrorResponse(VolleyError error) {Log.v(TAG,error error); // 错误结果Toast.makeText(getApplication(),网络出问题,Toast.LENGTH_SHORT).show();}}){Overrideprotected Map getParams() throws AuthFailureError {// 请求的内容Map params new HashMap();params.put(username,username);params.put(password,password);return params;}};// 添加到请求队列requestQueue.add(request);}}6.Android端就不贴控制台调试信息了小伙伴们不要忘了Volley的jar包原创http://blog.csdn.net/iwanghang