package com.guo.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.guo.dao.UserDao;
import com.guo.entity.User;
import com.guo.util.DBUtil;
public class UserDaoImpl implements UserDao {
public User login(String username,String password) {
//SQL 查询语句
String sql = "select id,username,password from UserTbl where username=? and password=?";
String sql1 = "update UserTbl set id=2 where username=?";
//实例化数据库工具类
DBUtil util = new DBUtil();
//获得数据库连接
Connection conn = util.openConnection();
try {
//创建预定义语句
PreparedStatement ps = conn.prepareStatement(sql);
//设置查询参数
ps.setString(1, username);
ps.setString(2, password);
//结果集
ResultSet rs = ps.executeQuery();
//判断该用户是否存在
if(rs.next()) {
//获得编号
int id = rs.getInt(1);
//实例化User
User user = new User();
//设置User属性
user.setId(id);
user.setPassword(password);
user.setUsername(username);
try {
PreparedStatement ps1 = conn.prepareStatement(sql1);
ps1.setString(1, username);
} catch(SQLException e) {
e.printStackTrace();
}
return user;
}
} catch(SQLException e) {
e.printStackTrace();
} finally {
util.closeConnection(conn);
}
return null;
}
}
package com.guo.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 com.guo.dao.UserDao;
import com.guo.dao.impl.UserDaoImpl;
import com.guo.entity.User;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
UserDao dao = new UserDaoImpl();
//获得客户端请求参数
String username = request.getParameter("username");
String password = request.getParameter("password");
User user = dao.login(username,password);
if(user!=null) {
//响应客户端内容,登录成功
// out.print(build(user));
out.print("1");
} else {
//响应客户端内容,登录失败
out.print("0");
}
out.flush();
out.close();
}
//将用户对象转换为字符串返回给客户端
private String build(User user) {
String userMsg = "";
userMsg += "id=" + user.getId();
userMsg += ";";
userMsg += "username=" + user.getUsername();
return userMsg;
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//调用doGet方法
doGet(request, response);
}
//初始化方法
public void init() throws ServletException {
}
//构造方法
public LoginServlet() {
super();
}
//销毁方法
public void destroy() {
super.destroy();
}
}
package com.guo.wlo;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import com.guo.util.HttpUtil;
public class LoginActivity extends Activity {
/** Called when the activity is first created. */
//声明登录、取消按钮
private Button cancelBtn, loginBtn;
//声明用户名密码输入框
private EditText userEditText,pwdEditText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//设置标题
setTitle("移动办公自动化系统");
//设置当前Activity界面布局
setContentView(R.layout.login_system);
//通过findViewById方法实例化组件
cancelBtn = (Button)findViewById(R.id.cancelButton);
//通过findViewById方法实例化组件
loginBtn = (Button)findViewById(R.id.loginButton);
//通过findViewById方法实例化组件
userEditText = (EditText)findViewById(R.id.userEditText);
//通过findViewById方法实例化组件
pwdEditText = (EditText)findViewById(R.id.pwdEditText);
cancelBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
loginBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(validate()){
if(login()){
Intent intent = new Intent(LoginActivity.this,MainMenuActivity.class);
// intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}else{
showDialog("用户名称或者密码错误,请重新输入!");
}
}
}
});
}
//登录方法
private boolean login(){
//获得用户名称
String username = userEditText.getText().toString();
//获得密码
String pwd = pwdEditText.getText().toString();
//获得登录结果
String result=query(username,pwd);
/*
if(result!=null&&result.equals("0")) {
return false;
} else if(result==null) {
return false;
} else {
saveUserMsg(result);
return true;
}
*/
if(result!=null) {
return true;
} else {
return false;
}
}
//对用户名和密码非空进行验证
private boolean validate(){
String username = userEditText.getText().toString();
if(username.equals("")){
showDialog("用户名称是必填项!");
return false;
}
String pwd = pwdEditText.getText().toString();
if(pwd.equals("")){
showDialog("用户密码是必填项!");
return false;
}
return true;
}
//定义一个显示提示信息的对话框
private void showDialog(String msg){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(msg)
.setCancelable(false)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
//通过登录帐号和密码进行查询,发送Post请求,获得相应结果
private String query(String username,String password){
//查询字符串
String queryString = "username="+username+"&password="+password;
//查询URL
String url = HttpUtil.BASE_URL+"servlet/LoginServlet?"+queryString;
//查询并返回结果
return HttpUtil.queryStringForPost(url);
}
//将用户信息保存到配置文件
private void saveUserMsg(String msg) {
//用户编号
String id = "";
//用户名称
String username = "";
try {
//获得信息数组
String[] msgs = msg.split(";");
int idx = msgs[0].indexOf("=");
id = msgs[0].substring(idx+1);
idx = msgs[1].indexOf("=");
username = msgs[1].substring(idx+1);
} catch(ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
}
//共享信息
SharedPreferences pre = getSharedPreferences("user_msg", MODE_WORLD_WRITEABLE);
SharedPreferences.Editor editor = pre.edit();
//保存用户Id
editor.putString("id", id);
//保存用户名称
editor.putString("username", username);
//提交
editor.commit();
}
}
package com.guo.util;
import java.io.IOException;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
public class HttpUtil {
//声明Base URL常量
public static final String BASE_URL = "http://localhost:8080/mobile_OA_Server/";
//通过url获得HttpGet对象
public static HttpGet getHttpGet(String url) {
//实例化HttpGet
HttpGet request = new HttpGet(url);
return request;
}
//通过url获得HttpPost对象
public static HttpPost getHttpPost(String url) {
//实例化HttpPost
HttpPost request = new HttpPost(url);
return request;
}
//通过HttpGet获得HttpResponse对象
public static HttpResponse getHttpResponse(HttpGet request)
throws ClientProtocolException,IOException {
//实例化HttpResponse
HttpResponse response = new DefaultHttpClient().execute(request);
return response;
}
//通过HttpPost获得HttpResponse对象
public static HttpResponse getHttpResponse(HttpPost request)
throws ClientProtocolException, IOException {
//实例化HttpResponse
HttpResponse response = new DefaultHttpClient().execute(request);
return response;
}
//通过url发送post请求,返回请求结果
public static String queryStringForPost(String url) {
//获得HttpPost实例
HttpPost request = HttpUtil.getHttpPost(url);
String result = null;
try {
//获得HttpResponse实例
HttpResponse response = HttpUtil.getHttpResponse(request);
//判断是否请求成功
if(response.getStatusLine().getStatusCode() == 200) {
//获得返回结果
result = EntityUtils.toString(response.getEntity());
return result;
}
} catch(ClientProtocolException e) {
e.printStackTrace();
result = "网络异常!";
return result;
} catch(IOException e) {
e.printStackTrace();
result = "网络异常!";
return result;
}
return null;
}
//通过url发送get请求,返回请求结果
public static String queryStringForGet(String url) {
//获得HttpGet实例
HttpGet request = HttpUtil.getHttpGet(url);
String result = null;
try {
//获得HttpResponse实例
HttpResponse response = HttpUtil.getHttpResponse(request);
//判断是否请求成功
if(response.getStatusLine().getStatusCode() == 200) {
//获得返回结果
result = EntityUtils.toString(response.getEntity());
return result;
}
} catch(ClientProtocolException e) {
e.printStackTrace();
result = "网络异常!";
return result;
} catch(IOException e) {
e.printStackTrace();
result = "网络异常!";
return result;
}
return null;
}
//通过HttpPost发送post请求,返回请求结果
public static String queryStringForPost(HttpPost request) {
String result = null;
try {
//获得HttpResponse实例
HttpResponse response = HttpUtil.getHttpResponse(request);
//判断是否请求成功
if(response.getStatusLine().getStatusCode() == 200) {
//获得请求结果
result = EntityUtils.toString(response.getEntity());
return result;
}
} catch(ClientProtocolException e){
e.printStackTrace();
result = "网络异常!";
return result;
} catch(IOException e) {
e.printStackTrace();
result = "网络异常!";
return result;
}
return null;
}
}
登录方法中query方法不管用,只要输入任意用户名和密码都能进入客户端
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/login" >
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
<TableRow>
<TextView
android:text="用户名称:"
android:id="@+id/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#0000ff"/>
<EditText
android:text=""
android:id="@+id/userEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</TableRow>
<TableRow>
<TextView
android:text="用户密码:"
android:id="@+id/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#0000ff"/>
<EditText
android:text=""
android:id="@+id/pwdEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:password="true"/>
</TableRow>
<TableRow
android:gravity="right">
<Button
android:text="退出"
android:id="@+id/cancelButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:text="登录"
android:id="@+id/loginButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</TableRow>
</TableLayout>
</LinearLayout>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
好像??错了就是错了,没错就是没错,还有好像的? :)
######客户端登录,输入任意用户名和密码都能进入客户端,我不知道哪里出了问题,纠结了好几天了,希望大家帮忙看看,String sql1 = "update UserTbl set id=2 where username=?";这条SQL语句是为了验证客户端是否和服务器连接上,结果数据库中的数据并没有改变,但是,我又没找到客户端和服务器之间的连接哪里出了问题,希望大家帮忙看看,指导我一下,谢谢!
######呵呵看我空间里的android客户端与服务器端登陆返回json数据例子######在你空间没找到啊