上一遍讲到Android客户端的设计,这边说道Android简单服务器端的设计,本应用只是个简单的设计,故服务器端采用Servlet+Medol+MySql的设计模式;
LoginServlet代码如下:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//处理中文乱码
response.setContentType("text/html; charset=UTF-8");
request.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
String name=request.getParameter("Login_name");
String pw=request.getParameter("Login_pw");
System.out.println(name+pw);
User user=new User();
user.setUser_name(name);
user.setUser_pw(pw);
Login denglu=new Login();
User u=denglu.init(user);
System.out.println("1..01");
if (u!=null){
out.print(u.getUser_name()+";"+u.getUser_pw()+";"
+u.getUser_city()+";"+u.getUser_Email()+";"
+u.getUser_cell()+";"+u.getUser_poto()+";");
//out.print("邮箱为:"+u.getUser_Email());
out.flush();
out.close();
System.out.println(u.getUser_Email());
System.out.println("登录成功");
}//if
else{
out.print("");
out.flush();
out.close();
System.out.println("登录失败");
}//else
}//doPost
其他外部类如下:
Login类:
public class Login {
public User init(User user){
User u=null;
//获取LginServlet传过来的值
String name=user.getUser_name();
String pw=user.getUser_pw();
//List<Object> list=null;
ResultSet rs=null;
String strsql="SELECT * FROM user WHERE user_name='"+name+"' AND user_pw = '"+pw+"'";
SearchAlgo se= new SearchAlgo();
rs = se.init(strsql);
if (rs != null){//查找结果不为空
try {
rs.last();
rs.beforeFirst();
u=new User();
while(rs.next()){
u.setUser_name(rs.getString("user_name"));
u.setUser_pw(rs.getString("user_pw"));
u.setUser_city(rs.getString("user_city"));
u.setUser_Email(rs.getString("user_email"));
u.setUser_cell(rs.getString("user_cell"));
u.setUser_poto(rs.getBlob("user_poto"));
System.out.println(rs.getString("user_name"));
}
} catch (SQLException e) {
e.printStackTrace();
}//catch
}//if
return u;
}//init
User类:
public class User {
private String user_name=null;
private String user_pw=null;
private String user_city=null;
private String user_Email=null;
private String user_cell=null;
private Blob user_poto=null;
public Blob getUser_poto() {
return user_poto;
}
public void setUser_poto(Blob user_poto) {
this.user_poto = user_poto;
}
public String getUser_city() {
return user_city;
}
public void setUser_city(String user_city) {
this.user_city = user_city;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_pw() {
return user_pw;
}
public void setUser_pw(String user_pw) {
this.user_pw = user_pw;
}
public String getUser_Email() {
return user_Email;
}
public void setUser_Email(String user_Email) {
this.user_Email = user_Email;
}
public String getUser_cell() {
return user_cell;
}
public void setUser_cell(String user_cell) {
this.user_cell = user_cell;
}
}
链接数据库类(SearchAlgo类):
public class SearchAlgo {
public Connection con;
Statement sql;
ResultSet rs, rst = null;
public void conclose(){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public ResultSet init(String strsql){
String url = "jdbc:mysql://localhost:3306/此处填写MySql数据库名称?user=root&password=&useUnicode=true&characterEncoding=UTF-8";
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
con = DriverManager.getConnection(url);
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = sql.executeQuery(strsql);
if (rs.next())
rst = rs;
}
catch (SQLException e) {
e.printStackTrace();
}
return rst;
}
}
上述便是服务器端登录的代码了,很简单,有什么不懂的可以留言,大家点个赞哦。
注:如果链接不到MySql数据库,可能是你忘记载入数据库链接驱动了,留言给我,我会第一时间给你发驱动。