欢迎关注本人公众号:Bean冷的心,内容包含计算机网络、数据结构与算法、科技资讯和知识扫盲,期待结实各位大佬和对计算机感兴趣的小伙伴~
一、成品图
第一次写,请大佬们轻喷…最近刚开始学习JavaWeb,学习了两周,实现了简单的后台登录系统,现在做一个回顾,只考虑如何实现登录功能,所以没有做美化,见谅。结果图如下。输入用户名和密码:
通过数据库进行比对之后,如果输入正确,则:
如果输入失败,则返回:
二、实现步骤
功能就是这样,很简单。思路是
1.要有一个表单用来接收从键盘输入的用户名和密码
2.要有数据库存储数据
3.要有验证功能
大致就是这样几点功能,所以首先建立一个Web项目,因为要验证用户的信息,所以创建一个User类,属性有ID,姓名,密码,直接get、set方法:
public class User {
private int uid;
private String uname;
private String password;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String toString() {
return "User [uid=" + uid + ", uname=" + uname + ", password="
+ password + "]";
}
}
数据库直接使用Navicat生成一个user表,添加两个数据即可,我的数据是这样
既然要验证用户名和密码的正确性,所以需要创建一个UserDao,创建相应的方法,我只验证密码,所以只创建了验证功能,代码如下:
public User SelectOne(String name,String pwd) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//1.連接數據庫
conn = DBUtils.getConn();
//2.創建語句
String sql="select * from user where uname = ? and password = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, pwd);
//3.執行語句
rs = ps.executeQuery();
if(rs.next()) {
User user = new User();
user.setUid(rs.getInt("uid"));
user.setUname(rs.getString("uname"));
user.setPassword(rs.getString("password"));
return user;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtils.close(conn, ps, rs);
}
return null;
}
万事俱备,只差Servlet最后一步了,代码如下:
public class LoginServlet extends HttpServlet {
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//1.設置解決post方式中文亂碼問題
req.setCharacterEncoding("utf-8");
//2.獲取表單訊息
String uname = req.getParameter("uname");
String pwd = req.getParameter("pwd");
//3.邏輯判斷
UserDao ud = new UserDao();
User user = ud.SelectOne(uname, pwd);
System.out.println(user);
if(user!=null) {
req.setAttribute("user", user);
req.getRequestDispatcher("welcome.jsp").forward(req, resp);;
}else {
req.setAttribute("error", "用戶名或密碼輸入不正確");
req.getRequestDispatcher("index.jsp").forward(req, resp);
}
}
}
相关jsp代码太简单了,就不展示了。
欢迎关注本人公众号:Bean冷的心,内容包含计算机网络、数据结构与算法、科技资讯和知识扫盲,期待结实各位大佬和对计算机感兴趣的小伙伴~