赞
踩
前端使用:HTML,CSS和JQuery技术。页面数据校验使用jQuery框架的validate。
后端使用:javaBean,Servlet和JSP和mysql数据库。
服务器:TomCat 9.0.10
开发工具:idea
//使用如下脚本语句创建数据库
create database lyweb;
use lyweb;
//用户表用来储存用户数据,主要做用户登录的功能,表结构如下
create table l_user(
id int primary key auto_increment
username varchar(30),
password varchar(50),
nickname varchar(30)
);
insert into l_user values(1,'admin','21232f297a57a5a743894a0e4a801fc3','管理员');
//员工表用来储存员工的数据,表结构如下
create table l_emp(
id int primary key auto_increment,
ename varchar(30),
age int(3),
sex char(1),
sal double,
birthday varchar(15),
edate varchar(15)
);
insert into l_emp values (1,'heiqisang',20,'男',20000,'2000-1-1','2030-1-1');
insert into l_emp values (2,'小封',20,'男',20000,'2000-1-1','2030-1-1');
insert into l_emp values (3,'小樊',20,'女',20000,'2000-1-1','2030-1-1');
insert into l_emp values (4,'小奚',20,'女',20000,'2020-1-1','2030-1-1');
package ly.main;
import java.io.Serializable;
/**
* 用户实现类
*/
public class user implements Serializable {
// 主键
private Integer id;
// 用户名
private String username;
// 密码 (数据库中的密码是加密的,加密算法MD5加密)
private String password;
// 昵称
private String nickname;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
}
上述解析:implements Serializable (实现Serializable接口 )
package ly.service;
import ly.dao.UserDao;
import ly.dao.UserDaoImpl;
import ly.domain.User;
import ly.utils.MD5Utils;
/**
* 用户业务层模块实现类
*/
public class UserServiceImpl implements UserService {
private UserDao userDao = new UserDaoImpl();
/**
* 用户登录的功能
*
* @param username
* @param password
* @return
*/
@Override
public User login(String username, String password) {
//先对密码做加密处理,加密的算法使用MD5加密方式
String newPwd = MD5Utils.encrypt(password);
//调用持久层,查询数据库
return userDao.login(username,newPwd);
}
}
package ly.dao;
import ly.main.User;
import ly.utils.JdbcUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class UserDaoImpl implements UserDao {
/**
* 登录(**)
*
* @param username
* @param password
* @return
*/
@Override
public User login(String username, String password) {
// 思路:通过用户名和密码查询数据库
// 定义连接
Connection conn = null;
// 预编译对象
PreparedStatement stmt = null;
// 结果集
ResultSet rs = null;
// 定义user对象
User user = null;
try {
// 获取连接
conn = JdbcUtils.getConnection();
// 编写登录的SQL语句
String sql = "SELECT * FROM l_user WHERE username = ? AND PASSWORD = ?";
// 预编译SQL语句
stmt = conn.prepareStatement(sql);
// 设置值
stmt.setString(1, username);
stmt.setString(2, password);
// 执行查询
rs = stmt.executeQuery();
//从结果集中查询数据,封装到User中对象中,返回User对象中,返回
if (rs.next()) {
// 封装数据
user = new User();
// 设置值
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setNickname(rs.getString("nickname"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 释放关闭资源
JdbcUtils.close(conn, stmt, rs);
}
return user;
}
}
此上是登录功能的写法,由于功能太多不能个个列出,但是编写逻辑相似。
此web项目思路有不足的地方,请各位朋友多多指点,感谢各位。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。