欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android通过Tomcat用JSP做服务器实现用户登录(MySQL数据库)

程序员文章站 2024-01-16 22:33:52
服务器端代码 loginservlet.java import java.io.ioexception; import java.io.printwriter; import javax...

服务器端代码

loginservlet.java

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 com.wut.bean.user;
import com.wut.dao.userdao;

public class loginservlet extends httpservlet {

	protected void doget(httpservletrequest request,httpservletresponse response) throws servletexception, ioexception {
		dopost(request, response);
	}
	protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {
		response.setcontenttype("text/html;charset=utf-8");  
	    response.setcharacterencoding("utf-8");  
	    printwriter out = response.getwriter();  
		string username=request.getparameter("username");
		string password=request.getparameter("password");
		userdao dao=new userdao();
		user user = dao.login(username, password);  
		if (user!=null) {
			out.println("succse");
			request.getsession().setattribute("username", username);
		}else{
			out.println("failure");
		}
		out.flush();
        out.close();
	}

}

userdao操作类

import java.sql.connection;
import java.sql.sqlexception;

import org.apache.commons.dbutils.dbutils;
import org.apache.commons.dbutils.queryrunner;
import org.apache.commons.dbutils.handlers.beanhandler;

import com.wut.bean.user;
import com.wut.util.dbutil;

public class userdao {
	
	/**
	 * 用户名密码登录
	 * @param username
	 * @param password
	 */
	public user login(string username,string password){
		user user=new user();
		connection conn = dbutil.getconnection();  
		queryrunner queryrunner = new queryrunner(); 
		try {  
    		user = queryrunner.query(conn, "select * from user where username='"+username+"' and password='"+password+"'", new beanhandler(user.class)); 
		} catch (sqlexception e) {  
            e.printstacktrace();  
        }  
		return user;
	}
	
}

这里我运用了commons-dbutils-1.7.jar库

注意jsp的web.xml


    this is the description of my j2ee component
    this is the display name of my j2ee component
    loginservlet
    com.wut.servlet.loginservlet
  

    loginservlet
    /loginservlet
  

安卓端代码

webservice.java

import java.io.bytearrayoutputstream;
import java.io.ioexception;
import java.io.inputstream;
import java.net.httpurlconnection;
import java.net.url;

public class webservice {
    public static string executehttpget(string username, string password) {
        httpurlconnection conn = null;
        inputstream is = null;
        try {?
            string path = "https://xxx/webconference/loginservlet";
            path = path + "?username=" + username + "&password=" + password;
            conn = (httpurlconnection) new url(path).openconnection();
            conn.setconnecttimeout(3000); 
            conn.setreadtimeout(3000);
            conn.setdoinput(true);
            conn.setrequestmethod("get"); 
            conn.setrequestproperty("charset", "utf-8"); 
            if (conn.getresponsecode() == 200) {
                is = conn.getinputstream();
                return parseinfo(is);
            }
        }catch (exception e) {
            e.printstacktrace();
        } finally {
            if (conn != null) {
                conn.disconnect();
            }
            if (is != null) {
                try {
                    is.close();
                } catch (ioexception e) {
                    e.printstacktrace();
                }
            }
        }
        return null;
    }
    private static string parseinfo(inputstream instream) throws exception {
        byte[] data = read(instream);
        return new string(data, "utf-8");
    }
    public static byte[] read(inputstream instream) throws exception {
        bytearrayoutputstream outputstream = new bytearrayoutputstream();
        byte[] buffer = new byte[1024];
        int len = 0;
        while ((len = instream.read(buffer)) != -1) {
            outputstream.write(buffer, 0, len);
        }
        instream.close();
        return outputstream.tobytearray();
    }
}

loginactivity

import android.os.bundle;
import android.os.handler;
import android.view.view;
import android.view.view.onclicklistener;
import android.widget.autocompletetextview;
import android.widget.button;
import android.widget.edittext;

public class loginactivity extends baseactivity {

	private autocompletetextview memailview;
	private edittext mpasswordview;
	private button submit;
	private string info=null;
	private static handler handler = new handler();
	@override
	protected void oncreate(bundle savedinstancestate) {
		super.oncreate(savedinstancestate);
		setcontentview(r.layout.activity_test);
		init();
	}
	private void init() {
		submit = (button) findviewbyid(r.id.email_sign_in_button);
		memailview=(autocompletetextview) findviewbyid(r.id.email);
		mpasswordview=(edittext) findviewbyid(r.id.password);
		submit.setonclicklistener(new onclicklistener() {
			@override
			public void onclick(view v) {
				new thread(new mythread()).start();
			}
		});
	}
	public class mythread implements runnable {//开启一个线程
		@override
		public void run() {
			info = webservice.executehttpget(memailview.gettext().tostring(), mpasswordview.gettext().tostring());
			handler.post(new runnable() {
				@override
				public void run() {
					if(info.equals("succse")){
						showtoast(info+"登录成功");
					}else{
						showtoast("登录失败");
					}
				}
			});
		}
	}
}