用Servlet实现简单的网站登录

来源:互联网 发布:单片机外部存储器 编辑:程序博客网 时间:2024/05/27 06:16

用原生的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;}@Overridepublic 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!"

一个简单的登录系统就这样完成啦!

阅读全文
1 0
原创粉丝点击