本文共 7176 字,大约阅读时间需要 23 分钟。
三者,必然是有三个大标题和环节。
新建表user,再创建id和password,具体结构可参考如下:
java web代码:
package vip.keshi;import java.io.IOException;import java.io.PrintWriter;import java.sql.DriverManager;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.mysql.jdbc.Connection;import com.mysql.jdbc.PreparedStatement;import com.mysql.jdbc.ResultSet;import jdk.internal.org.objectweb.asm.tree.analysis.Value;/** * Servlet implementation class buxing */@WebServlet("/buxing")public class buxing extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public buxing() { super(); // TODO Auto-generated constructor stub } public void init() throws ServletException { // TODO Auto-generated method stub super.init(); try { Class.forName("com.mysql.jdbc.Driver"); System.err.println("驱动加载成功"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setCharacterEncoding("UTF-8"); response.setContentType("text/html"); PrintWriter out = response.getWriter(); String logname = request.getParameter("logname").trim(); String password = request.getParameter("password").trim(); java.sql.Connection conn; //连接数据库 java.sql.PreparedStatement preparedStatement; try { conn = DriverManager.getConnection("JDBC:mysql://自己数据库的项目url", "数据库名", "数据库密码");//例如"JDBC:mysql://123.12.246.197:3306/denglei", "denglei", "123456" String sql = "insert into user values(?,?)"; preparedStatement = conn.prepareStatement(sql); preparedStatement.setString(1,logname); preparedStatement.setString(2,password); int p=preparedStatement.executeUpdate(); //取得操作结果,true或false if (p>=1) { System.out.println("注册成功!"); out.write("successReg"); }else { System.out.println("注册失败"); out.write("falseReg"); } out.close(); System.out.println("关闭成功"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); }}
服务器网页HTML:
test it finally
apply plugin: 'com.android.application'android { compileSdkVersion 30 buildToolsVersion "30.0.1" defaultConfig { applicationId "vip.mtmy.okhope" minSdkVersion 24 targetSdkVersion 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }}dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' implementation 'com.squareup.okhttp3:okhttp:3.4.1'//就是这个① implementation 'com.squareup.okio:okio:1.9.0'//就是这个② implementation 'com.google.code.gson:gson:2.6.2'}
package vip.mtmy.okhope;import androidx.annotation.NonNull;import androidx.appcompat.app.AppCompatActivity;import android.annotation.SuppressLint;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;import java.io.IOException;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response;public class MainActivity extends AppCompatActivity { public static final int REGS=3;//注册成功标识码 public static final int REGN=4;//注册失败标识码 TextView idnumber; TextView pwdnumber; Button regerest; OkHttpClient client = new OkHttpClient(); @SuppressLint("HandlerLeak") public Handler handler=new Handler(){ @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); switch (msg.what){ case REGS: Toast.makeText(MainActivity.this,"注册成功",Toast.LENGTH_SHORT).show(); break; case REGN: Toast.makeText(MainActivity.this,"注册失败",Toast.LENGTH_SHORT).show(); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initall(); } private void initall() { idnumber=findViewById(R.id.idnumber); pwdnumber=findViewById(R.id.pwdnumber); regerest=findViewById(R.id.regerest); regerest.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { getData(); } }); } public void getData(){ final String url="http://自己的域名和项目路径";//自己项目的url,也就是java web的url new Thread(){ @Override public void run() { super.run(); try { String path=url+"?logname="+idnumber.getText()+"&password="+pwdnumber.getText(); String result=get(path); if (result.equals("ttt")){ Message message=Message.obtain(); message.what= REGN; // message.obj=result; handler.sendMessage(message); } else { Message message=Message.obtain(); message.what= REGS; message.obj=result; handler.sendMessage(message); } } catch (IOException e) { e.printStackTrace(); } } }.start(); } String get(String url) throws IOException { Request request = new Request.Builder() .url(url) .build(); try (Response response = client.newCall(request).execute()) { return response.body().string(); } }}
下载
转载地址:http://corwi.baihongyu.com/