zoukankan      html  css  js  c++  java
  • 明日计划:团队开发Fooks第八天

    一、明日计划

    完成书籍上传与信息保存的数据库交互,开始设计书籍下载

    二、今日成果

     

     

     

     成功实现登录注册的整合,完成了在云端数据库的存储

    package Servlet;
    
    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;
    
    import dao.dao;
    import net.sf.json.JSONException;
    import net.sf.json.JSONObject;
    
    public class LoginServlet extends HttpServlet {
    
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("utf-8");
            response.setContentType("text/html; charset=utf-8");
            String username=request.getParameter("username");
            String password=request.getParameter("password");
            
            dao dao =new dao();
            PrintWriter out = response.getWriter();
            JSONObject json=new JSONObject();
            if(!dao.isExist(username)) {
                json.put("result", 0);
            }else {
                boolean result=dao.Login(username, password);
                if(result) {
                    json.put("result", 1);
                }else {
                    json.put("result", 2);
                }
            }
            out.print(json);
            return;
        }
    
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }
    LoginServlet.java
    package Servlet;
    
    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;
    
    import dao.dao;
    import entity.User;
    import net.sf.json.JSONObject;
    
    
    public class RegisterServlet extends HttpServlet {
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("utf-8");
            response.setContentType("text/html; charset=utf-8");
            String username=request.getParameter("username");
            String password=request.getParameter("password");
            User user=new User(username,password);
            dao dao =new dao();
            PrintWriter out = response.getWriter();
            JSONObject json=new JSONObject();
            boolean result1=dao.isExist(username);
            if(!result1) {
                boolean result2=dao.Register(user);
                if(result2) {
                    json.put("result", 1);
                }else {
                    json.put("result", 2);
                }
            }else {
                json.put("result", 0);
            }
            out.print(json);
            return;
        }
    
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }
    RegisterServlet.java
    package com.example.fooks;
    
    import android.app.Activity;
    import android.content.Context;
    import android.content.Intent;
    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 androidx.annotation.Nullable;
    
    import com.example.fooks.entity.User;
    import com.loopj.android.http.AsyncHttpClient;
    import com.loopj.android.http.AsyncHttpResponseHandler;
    import com.loopj.android.http.RequestParams;
    
    import org.json.JSONException;
    import org.json.JSONObject;
    
    import java.io.UnsupportedEncodingException;
    
    import cz.msebera.android.httpclient.Header;
    
    public class LoginActivity extends Activity {
        private EditText mUsername;
        private EditText mPassword;
        private Button mLogin;
        private Button mGotoregister;
        private String username;
        private String password;
        private String TAG="LoginActivity";
    
        public static void start(Context context) {
            Intent intent = new Intent(context,LoginActivity.class);
            context.startActivity(intent);
        }
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_login);
            //初始化控件
            initView();
            //设置点击事件
            initListener();
        }
    
        private void initListener() {
            mGotoregister.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent =new Intent(LoginActivity.this, RegisterActivity.class);
                    startActivity(intent);
                }
            });
    
            mLogin.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    username=mUsername.getText().toString().trim();
                    password=mPassword.getText().toString().trim();
                    if(username.isEmpty()){
                        Toast.makeText(getApplicationContext(),"请输入账号",Toast.LENGTH_LONG).show();
                    }else if(password.isEmpty()){
                        Toast.makeText(getApplicationContext(),"请输入密码",Toast.LENGTH_LONG).show();
                    }else {
                        Login();
                    }
                }
            });
        }
    
        protected void Login() {
            User user =new User();
            user.setUsername(username);
            user.setPassword(password);
            Log.e(TAG,"用户名"+user.getUsername());
            Log.e(TAG,"密码"+user.getPassword());
            AsyncHttpClient client = new AsyncHttpClient();//实例化上传对象
            String url = "http://47.94.229.72:8080/Fooks/LoginServlet";//url组成:ip:端口 + 服务端工程名 + servlet名
            RequestParams params = new RequestParams();
            params.put("username",user.getUsername());
            params.put("password",user.getPassword());
            client.post(url, params, new AsyncHttpResponseHandler() {
                @Override
                public void onSuccess(int i, Header[] headers, byte[] bytes) {
                    if(i == 200) {
                        try {
                            String result = new String(bytes,"utf-8");
                            Log.e(TAG,"返回结果"+result);
                            try {
                                JSONObject jsonObject=new JSONObject(result);
                                int s=jsonObject.getInt("result");
                                switch (s){
                                    case 0:
                                        Toast.makeText(getApplicationContext(),"该用户不存在",Toast.LENGTH_LONG).show();
                                        break;
                                    case 1:
                                        Toast.makeText(getApplicationContext(),"登录成功",Toast.LENGTH_LONG).show();
                                        Intent intent=new Intent(LoginActivity.this,ReadActivity.class);
                                        startActivity(intent);
                                        break;
                                    case 2:
                                        Toast.makeText(getApplicationContext(),"密码错误",Toast.LENGTH_LONG).show();
                                        break;
                                    default:
                                        Toast.makeText(getApplicationContext(),"未知错误",Toast.LENGTH_LONG).show();
                                        break;
                                }
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        } catch (UnsupportedEncodingException e) {
                            e.printStackTrace();
                        }
    
                    }
                }
    
                @Override
                public void onFailure(int i, Header[] headers, byte[] bytes, Throwable throwable) {
                    Toast.makeText(getApplicationContext(),"请求失败,请检查网络",Toast.LENGTH_LONG).show();
                }
            });
        }
    
        private void initView() {
            mUsername=(EditText)this.findViewById(R.id.username);
            mPassword=(EditText)this.findViewById(R.id.password);
            mLogin=(Button) this.findViewById(R.id.login_btn);
            mGotoregister=(Button)this.findViewById(R.id.goto_register_btn);
        }
    }
    LoginActivity.java
    package com.example.fooks;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.text.TextUtils;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import com.example.fooks.entity.User;
    import com.loopj.android.http.AsyncHttpClient;
    import com.loopj.android.http.AsyncHttpResponseHandler;
    import com.loopj.android.http.RequestParams;
    import com.mob.MobSDK;
    
    import org.json.JSONException;
    import org.json.JSONObject;
    
    import java.io.UnsupportedEncodingException;
    
    import cn.smssdk.EventHandler;
    import cn.smssdk.SMSSDK;
    import cz.msebera.android.httpclient.Header;
    
    public class RegisterActivity extends AppCompatActivity {
        private Button buttonCode,buttonRegister;
        private EditText editTextPhoneNum,editTextCode;
        private EditText mR1Password;
        private EditText mR2Password;
        private String phoneNum,code;
        private String pwd1,pwd2;
        private EventHandler eh;
        private String TAG="RegisterActivity";
    
        public static void start(Context context) {
            Intent intent = new Intent(context,RegisterActivity.class);
            context.startActivity(intent);
        }
    
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_register);
    
            initView();
    
    
            initListener();
    
            MobSDK.init(this);
    
    
        }
    
        public void initListener() {
    
            eh = new EventHandler() {
                @Override
                public void afterEvent(int event, int result, Object data) {
                    if (result == SMSSDK.RESULT_COMPLETE){
                        //回调完成
                        if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
                            //提交验证码成功
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    Toast.makeText(RegisterActivity.this,"注册成功",Toast.LENGTH_SHORT).show();
                                }
                            });
                        }else if (event == SMSSDK.EVENT_GET_VOICE_VERIFICATION_CODE){
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    Toast.makeText(RegisterActivity.this,"语音验证发送",Toast.LENGTH_SHORT).show();
                                }
                            });
                        }
                        else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){
                            //获取验证码成功
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    Toast.makeText(RegisterActivity.this,"验证码已发送",Toast.LENGTH_SHORT).show();
                                }
                            });
                        }else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){
                            Log.i("test","test");
                        }
                    }else{
                        ((Throwable)data).printStackTrace();
                        Throwable throwable = (Throwable) data;
                        throwable.printStackTrace();
                        Log.i("1234",throwable.toString());
                        try {
                            JSONObject obj = new JSONObject(throwable.getMessage());
                            final String des = obj.optString("detail");
                            if (!TextUtils.isEmpty(des)){
                                runOnUiThread(new Runnable() {
                                    @Override
                                    public void run() {
                                        Toast.makeText(RegisterActivity.this,des,Toast.LENGTH_SHORT).show();
                                    }
                                });
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }
            };
    
            //注册一个事件回调监听,用于处理SMSSDK接口请求的结果
            SMSSDK.registerEventHandler(eh);
            buttonCode.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    phoneNum = editTextPhoneNum.getText().toString().trim();
    
                    if(phoneNum.length()==11){
                        // 获取验证码
    
                        SMSSDK.getVerificationCode("86", phoneNum);
                    }else {
                        Toast.makeText(getApplicationContext(),"请输入手机号",Toast.LENGTH_LONG).show();
                        return;
                    }
                }
            });
            //点击事件
            buttonRegister.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    phoneNum = editTextPhoneNum.getText().toString().trim();
                    code = editTextCode.getText().toString().trim();
                    pwd1 =mR1Password.getText().toString().trim();
                    pwd2 =mR2Password.getText().toString().trim();
                    if(phoneNum.length()!=11){
                        Toast.makeText(getApplicationContext(),"请输入正确的手机号",Toast.LENGTH_LONG).show();
                    }else if(pwd1.equals("")){
                        Toast.makeText(getApplicationContext(),"请输入密码",Toast.LENGTH_LONG).show();
                    }else if(pwd2.equals("")){
                        Toast.makeText(getApplicationContext(),"请输入确认密码",Toast.LENGTH_LONG).show();
                    }else if(!pwd1.equals(pwd2)){
                        Toast.makeText(getApplicationContext(),"两次输入密码不一致",Toast.LENGTH_LONG).show();
                    }else if(code.isEmpty()){
                        Toast.makeText(getApplicationContext(),"请输入验证码",Toast.LENGTH_LONG).show();
                    }else{
                        SMSSDK.submitVerificationCode("86", phoneNum, code);
                        User user =new User();
                        user.setUsername(phoneNum);
                        user.setPassword(pwd1);
                        Log.e(TAG,"用户名"+user.getUsername());
                        Log.e(TAG,"密码"+user.getPassword());
                        Register(user);
                        return;
                    }
                }
            });
    
        }
    
        protected void Register(User user) {
            AsyncHttpClient client =new AsyncHttpClient();
            String url = "http://47.94.229.72:8080/Fooks/RegisterServlet";//url组成:ip:端口 + 服务端工程名 + servlet名
            RequestParams params = new RequestParams();
            params.put("username",user.getUsername());
            params.put("password",user.getPassword());
            client.post(url, params, new AsyncHttpResponseHandler() {
                @Override
                public void onSuccess(int i, Header[] headers, byte[] bytes) {
                    if(i == 200) {
                        try {
                            String result = new String(bytes, "utf-8");
                            try {
                                JSONObject jsonObject = new JSONObject(result);
                                int s = jsonObject.getInt("result");
                                switch (s) {
                                    case 0:
                                        Toast.makeText(getApplicationContext(), "该用户名已被使用", Toast.LENGTH_LONG).show();
                                        break;
                                    case 1:
                                        Toast.makeText(getApplicationContext(), "注册成功", Toast.LENGTH_LONG).show();
                                        Intent intent = new Intent(RegisterActivity.this, ReadActivity.class);
                                        startActivity(intent);
                                        break;
                                    case 2:
                                        Toast.makeText(getApplicationContext(), "系统错误", Toast.LENGTH_LONG).show();
                                        break;
                                    default:
                                        Toast.makeText(getApplicationContext(), "未知错误", Toast.LENGTH_LONG).show();
                                        break;
                                }
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
    
                            Toast.makeText(RegisterActivity.this, result, Toast.LENGTH_SHORT).show();
                        } catch (UnsupportedEncodingException e) {
                            e.printStackTrace();
                        }
    
                    }
                }
    
                @Override
                public void onFailure(int i, Header[] headers, byte[] bytes, Throwable throwable) {
                    Toast.makeText(getApplicationContext(),"请求失败,请检查网络",Toast.LENGTH_LONG).show();
                }
            });
        }
    
        private void initView() {
            //初始化控件
            buttonCode = findViewById(R.id.buttonCode);
            buttonRegister = findViewById(R.id.buttonRegister);
            editTextCode = findViewById(R.id.editTextCode);
            editTextPhoneNum = findViewById(R.id.editTextPhoneNum);
            mR1Password=findViewById(R.id.r1_password);
            mR2Password=findViewById(R.id.r2_password);
        }
    
        // 使用完EventHandler需注销,否则可能出现内存泄漏
        @Override
        protected void onDestroy() {
            super.onDestroy();
            SMSSDK.unregisterEventHandler(eh);
        }
    
    
    
    }
    RegisterActivity.java
  • 相关阅读:
    手机测试移动端项目
    事件绑定与事件委托
    jq中attr()和prop() 属性的区别
    jq 加载的几种方法
    $(document).height 与$(window).height的区别
    js动画之缓冲运动
    js动画之简单运动二
    js动画之简单运动一
    css浏览器窗口大小
    编程每一天
  • 原文地址:https://www.cnblogs.com/yeyueweiliang/p/12757570.html
Copyright © 2011-2022 走看看