android+springbbot实现登录/记住用户密码

效果图 

 

先创建Springboot项目

controller

import com.example.app_cs.pojo.User;
import com.example.app_cs.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping("/login")
    public String userLogin(@RequestBody User user){
        return userService.userLogin(user) > 0 ? "登录成功" : "登录失败";
    }
}

service

import com.example.app_cs.pojo.User;

public interface UserService {

    int userLogin(User user);
}

serviceImpl

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public int userLogin(User user) {
        return userMapper.userLogin(user);
    }
}

mapper.java


@Mapper
public interface UserMapper {

    Integer userLogin(User user);
}

mapper.xml

<mapper namespace="com.example.app_cs.mapper.UserMapper">

    <select id="userLogin" resultType="java.lang.Integer">
        select Count(*) from CS_USER
        where PHONENUMBER = #{phone}
        and PASSWORD = #{password}
    </select>

</mapper>

创建安卓项目

activity_main.xml

1.RelativeLayout中设置了一个图片当背景,如果不需要可以删除,删除后页面就会变成白色

2.所以删除之后需要修改所有的android:textColorHint 的颜色

3.还要修改下面的shape.xml文件中颜色

如果不想修改的话,就是说找一个背景颜色放上去看看效果得了

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="@drawable/beijing"
    android:paddingLeft="20dp"
    android:paddingRight="20dp"
    android:paddingTop="100dp">

   

    <EditText
        android:id="@+id/et_phone"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="用户名/手机号"
        android:lines="1"
        android:textColorHint="#fff"
        android:textSize="16sp"
        tools:layout_editor_absoluteX="3dp"
        tools:layout_editor_absoluteY="237dp" />

    <EditText
        android:id="@+id/et_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/et_phone"
        android:inputType="textPassword"
        android:lines="1"
        android:hint="密码"
        android:textSize="16sp"
        android:textColorHint="#fff"
        tools:layout_editor_absoluteX="24dp"
        tools:layout_editor_absoluteY="182dp" />

    <LinearLayout
        android:id="@+id/ly_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/et_password"
        android:orientation="horizontal" >

        <CheckBox
            android:id="@+id/cb_rm"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/et_password"
            android:layout_gravity="left"
            android:layout_weight="3"
            android:hint="记住密码"
            android:textSize="14sp"
            android:textColorHint="#fff"
            />

        <TextView
            android:id="@+id/btn_register"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="right"
            android:layout_weight="1"
            android:gravity="center"
            android:textSize="14sp"
            android:hint="注册"
            android:textColorHint="#fff"/>
    </LinearLayout>
    <Button
        android:id="@+id/btn_login"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/ly_1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="35dp"
        android:background="@drawable/shape"
        android:text="登录"
        android:textColor="#fff"
        android:theme="@style/myStyle"/>
</RelativeLayout>

在values中的themes.xml文件下添加(有些项目创建之后可能名字是style.xml)

 <style name="myStyle" parent="Theme.Reduce_Weight">
        <item name="colorPrimary">@color/white</item>
    </style>

在drawable中创建shape.xml(这主要是将按钮变成圆角,白色边框)

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <!--//设置圆角-->
    <corners android:radius="10dp" />
  <!--   //设置颜色-->
<!--    <solid android:color="#fff"/>-->
    <!--    //设置透明-->
     <solid android:color="@android:color/transparent"/>
<!--    //设置半透明-->
<!--    <solid android:color="#66FFFF00"/>-->
<!--    //设置button的大小-->
  <!--  <size
        android:height="50dp"
        android:width="320dp" />-->
<!--    //设置button的内边距-->
<!--    <padding android:left="5dp"
        android:right="5dp"
        android:top="5dp"
        android:bottom="5dp"/>-->
    <!-- 连框宽度和颜色值 -->
    <stroke
        android:width="2dp"
        android:color="#fff" />


</shape>

MainActivity.java

注意里面url中的地址 , 这里面写的是默认的 , 每个人的电脑连的wifi不一样 , 所以里面的内容也要改

方式在最后面

package com.example.reduce_weight;

import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;

import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

import java.io.IOException;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    //声明SharedPreferences储存(键值对的方式存储数据)
    private SharedPreferences preferences;

    private SharedPreferences.Editor editor;

    private CheckBox rememberPass;

    private EditText phoneEdit;

    private EditText passwordEdit;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //隐藏标题栏
        ActionBar actionBar = getSupportActionBar();
        if (actionBar!=null) {
            actionBar.hide();
        }
        //绑定控件
        Button btn_login = (Button) findViewById(R.id.btn_login);
        phoneEdit = (EditText) findViewById(R.id.et_phone);
        passwordEdit = (EditText) findViewById(R.id.et_password);
        preferences = PreferenceManager.getDefaultSharedPreferences(this);
        rememberPass = (CheckBox) findViewById(R.id.cb_rm);
        //第一次肯定为没选中
        boolean isRemember = preferences.getBoolean("remember_password", false);
        if (isRemember) {
            String account = preferences.getString("account", "");
            String password = preferences.getString("password", "");
            phoneEdit.setText(account);
            passwordEdit.setText(password);
            rememberPass.setChecked(true);
        }
        btn_login.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.btn_login:
                //获取文本文字
                String phone = phoneEdit.getText().toString();
                String password = passwordEdit.getText().toString();
                editor = preferences.edit();
                //判断是否选中
                if (rememberPass.isChecked()) {
                    //选中则保存
                    editor.putBoolean("remember_password", true);
                    editor.putString("account", phone);
                    editor.putString("password", password);
                } else {
                    //没选中则清空文本框
                    editor.clear();
                }
                editor.apply();
                //Json数据形式
                String json = "{\n" +
                        "  \"phone\": \"" + phone + "\",\n" +
                        "  \"password\": \"" + password + "\"\n" +
                        "}";
                OkHttpClient client = new OkHttpClient();
                Request request = new Request.Builder()
                        .url("http://localhost:8080/user/login")
                        .post(RequestBody.create(MediaType.parse("application/json"),json))
                        .build();
                client.newCall(request).enqueue(new Callback() {
                    @Override
                    public void onFailure(Call call, IOException e) {
                        System.out.println(e.getMessage()); //请求失败
                    }

                    @Override
                    public void onResponse(Call call, Response response) throws IOException {
                        String login = response.body().string();
                        if (!login.equals("登录成功")){
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    Toast.makeText(MainActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show();
                                }
                            });
                        } else {
                            Intent logon = new Intent(MainActivity.this, IndexActivity.class);
                            startActivity(logon);
                        }

                    }
                });

                /*if (phone.equals("haha") && password.equals("123")){

                } else {
                    Intent logon = new Intent(this, LogonActivity.class);
                    startActivity(logon);
                    finish();
                    break;
                }*/
        }
    }
}

如果是模拟器的话

1.首先找到android项目里面的AndroidManifest.xml 在<application>标签上面添加网络权限


    <uses-permission android:name="android.permission.INTERNET" />

2.File--Settings之后出现以下界面,挨个点

 3. 知道SDK目录后 , 在自己电脑的文件夹中打开 , 找到里面的platform-tools文件夹 , 复制这个文件夹的地址 , 右击我的电脑 ---属性 --- 高级系统设置 --- 环境变量 --- 系统变量下面的Path 点击编辑将刚才的地址放入进去,依次点确定

 4.运行自己的虚拟机

Win+R输入cmd之后输入ipconfig/all

找到DNS记住这个的号码

在输入adb shell 如果出现  generic_x86:/$ 就是可以

在他后面输入 exit 退出出去

再输入adb root 

再输入 adb shell 出现 generic_x86:/$ 之后  输入getprop回车

在里面找到[net.x.dns1] (x代表的是不一样的值 我的是 net.radip0.dns1)

接下来输入 setprop net.radio0.dns.这里填刚才记住的DNS

5.打开虚拟机的wifi设置,点击androidWifi 进去之后右上角找到 Madfy 把 Ipsettings 改成Static

随后将dns填写进去

这样就配好了

6.win + R 输入cmd 再输入ipconfig就可以看到自己的IPv4 地址 , 将这个地址放MainActivity.java

     .url("http://190:xxx:xxx:8080/user/login")

真机的话,让手机和电脑连接同一个wifi,,然后把url改成IPv4地址就行

本文设计并实现了一个基于AndroidSpring Boot的网络社区系统,主题是心理互助,开发目的是为了让出现轻度心理问题的人们有一个交流互动的平台,通过线上交流、平等互助地方式改善每一个人的心理状态,成为一个身心健康的人。本心理互助社区系统的特点是交际性、免费性、互助性和非专业性。 本文遵循了软件工程的标准开发流程,经过需求分析、总体设计、详细设计、系统实现和系统测试五大流程,最终完成了整个系统的开发。依据总体分析阶段的成果,本文将整个系统分为了六大功能模块,分别为登录注册模块、系统管理模块、个人主页模块、问答社区模块、树洞模块和小组模块,后三个模块为系统的主要模块。其中,问答社区模块为人们提供了一个自由提问与回答的平台,使得人们能够在这里分享和找到与自己心理问题相似的信息;树洞模块则提供了一个匿名倾诉的平台,人们可以在这里以匿名方式表达自己的心事;小组模块提供了一个线上小组交流的平台,人们可以在这里创建和加入心仪的小组,与小组内的人进行畅谈。 本系统在客户端使用了Android Studio开发环境,使用了Gradle项目管理工具,同时,使用了OkHttp,Gson,Glide等开源类库。在服务器端使用了IntelliJ IDEA作为开发环境,使用了Maven项目管理工具,并使用Nginx实现了资源的动静分离,同时选用了MySQL作为数据库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值