您的位置:首页 > 运维架构 > 网站架构

用Servlet实现简单的网站登录

2017-07-13 19:59 357 查看
用原生的Servlet实现简单的网站登录系统可谓是java后台技术最经典的一个案例。

首先,我们要准备好包含用户账号和密码的数据库和登录用的前端网页,如下图(数据库名为“jdbc”)





之后再建立好WEB应用项目,在WebContent文件夹下写好前端网页,如上图

网页的代码为:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/Login/Login">
用户名<input type="text" name="username"><br>
密码<input type="password" name="passwords"><br>
<input type="submit" value="get">
</form>
</body>
</html>


上面form中的action="/Login/Login"是由于WEB应用项目名称为Login,Servlet名称也为Login

然后开始正式的搞事情,步骤如下:

一、从网站获取数据

在新建立的Servlet中的doGet函数写下如下代码,目的是获取从网页提交过来用户名(username)和密码(passwords)

String username = request.getParameter("username");
String passwords = request.getParameter("passwords");


二、连接MySQL数据库

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc","root","123");


三、用DBUtils工具进行查找并获取信息

QueryRunner qr = new QueryRunner();
String sql = "SELECT * FROM sort WHERE username=? AND passwords=?";
User ur = qr.query(con, sql, new BeanHandler<User>(User.class), username,passwords);


第三句代码是将数据库中相应的信息获取到Bean类中

上面的User类为自己写的类,代码如下,用来存储从数据库得到的信息,类中变量应与数据库中的列一致且每个变量都要有相应的get和set方法
public class User {
private String username;
private String passwords;
private int sid;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPasswords() {
return passwords;
}
public void setPasswords(String passwords) {
this.passwords = passwords;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
@Override
public String toString() {
return "User [username=" + username + ", passwords=" + passwords + ", id=" + sid + "]";
}
}

四、登陆判断

if(ur != null){
response.getWriter().write(ur.toString());
}else{
response.getWriter().write("Your username or password is wrong!");
}
如果第三步获取的User对象ur不为空,即数据库中存在有与前端提交的用户名和密码相匹配的数据,在网站中打印数据库中对应的用户信息,否则就在网站中打印
"Your username or password is wrong!"


一个简单的登录系统就这样完成啦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: