目录
1、登录
2、登录成功跳转的页面
3、注册流程
2、将某个表中的信息展示到网页中
4、添加员工信息
5、员工信息的删除
6、员工信息的修改
目录
1、登录
2、登录成功跳转的页面
3、注册流程
2、将某个表中的信息展示到网页中
4、添加员工信息
5、员工信息的删除
6、员工信息的修改
7、退出员工表
8、四大域对象
1、登录
login.jsp 登录界面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
首页
<%
String error = request.getParameter("error");
if (error != null && "1".equals(error)){
out.print("账号或密码错误");
}
%>
loginDo.jsp(登录处理界面)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
登录验证
<%
//接受表单提交的数据
//编码的设置
request.setCharacterEncoding("utf-8");
//接受账号和密码
String userName = request.getParameter("uname");
String pwd = request.getParameter("pwd");
UserDao userDao = new UserDao();
User user = userDao.findByNameAndPwd(userName, pwd);
if (user != null) {
//跳转成功页面
session.setAttribute("user",user);
response.sendRedirect("success.jsp");
}else {
//out.print("登录失败");
//如果从这里到登录界面 表示登陆失败 error=1表示登录失败的标志
response.sendRedirect("login.jsp?error=1");
}
%>
2、登录成功跳转的页面
success.jsp(登录成功页面)注意:对员工信息的增删改,完成之后都会返回成功页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
登录成功
<%
Object user = session.getAttribute("user");
if (user == null) {
response.sendRedirect("login.jsp");
}
%>
退出
| 编号 | 姓名 | 地址 | 操作 |
|---|---|---|---|
| <%= dept.getId()%> | <%= dept.getName()%> | <%= dept.getAddress()%> | ">删除 ">修改 |
3、注册流程
register.jsp (注册页面)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
注册页面
注册界面
<%--registerDo 后缀为Do的都是处理页面,就是再浏览器不显示该界面 他就像的一个过度。页面和dao之间的联系。--%>
registerDo.jsp (处理页面)
<%@ page import="com.ykq.dao.UserDao" %>
<%@ page import="com.ykq.entity.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
<%
//设置编码
request.setCharacterEncoding("utf-8");
//接受注册的信息
String username = request.getParameter("username");
String password = request.getParameter("password");
String realname = request.getParameter("realname");//""
//通过调用dao方法把接受的注册信息存入数据库表中。
UserDao userDao = new UserDao();
User user=new User(username,password,realname);
userDao.insert(user);
//跳转
response.sendRedirect("login.jsp");
%>
2、将某个表中的信息展示到网页中
这里以用户表和员工表为例:
(1)封装一个用户的实体类.
public class User {
private int id;
private String userName;
private String pwd;
public User() {
}
public User(int id, String userName, String pwd) {
this.id = id;
this.userName = userName;
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", userName='" + userName + ''' +
", pwd='" + pwd + ''' +
'}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
(2)抽取公共的方法与属性
public class BaseDao {
private String driverName = "com.mysql.cj.jdbc.Driver";
private String url = "jdbc:mysql://localhost:3306/jdbc01?serverTimezone = Asia/Shanghai";
private String user = "root";
private String password = "zxp";
protected Connection connection = null;
protected PreparedStatement ps = null;
protected ResultSet res = null;
//抽取一个增删改查的公共的方法
public void edit(String sql,Object ... params) {
try {
getConn();
ps = connection.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
ps.setObject(i+1,params[i]);
}
ps.executeUpdate();
}catch (Exception e) {
e.printStackTrace();
}finally {
closeAll();
}
}
//抽取公共的连接的方法
public void getConn() throws Exception{
Class.forName(driverName);
connection = DriverManager.getConnection(url,user,password);
}
//抽取公共的关闭连接的方法
public void closeAll(){
try {
if(res!=null){
res.close();
}
if(ps!=null){
ps.close();
}
if(connection!=null){
connection.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
(3) 封装用户的操作类--用户登录的验证以及注册
public class UserDao extends BaseDao{
//根据用户名密码查询数据库--登录
public User findByNameAndPwd(String name,String pwd) {
User user = null;
try {
getConn();
String sql = "select * from tb_user where userName = ? and pwd = ?";
ps = connection.prepareStatement(sql);
ps.setObject(1,name);
ps.setObject(2,pwd);
res = ps.executeQuery();
while (res.next()) {
user = new User();
user.setId(res.getInt("id"));
user.setUserName(res.getString("userName"));
user.setPwd(res.getString("pwd"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
closeAll();
}
return user;
}
//添加用户到数据库 完成注册功能
public void insert(User user) {
String sql = "insert into tb_user values (null,?,?)";
edit(sql,user.getUserName(),user.getPwd());
}
}
(4)封装员工类
public class User {
private int id;
private String userName;
private String pwd;
public User() {
}
public User(int id, String userName, String pwd) {
this.id = id;
this.userName = userName;
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", userName='" + userName + ''' +
", pwd='" + pwd + ''' +
'}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
(5)员工的dao方法
public class UserDao extends BaseDao{
//根据用户名密码查询数据库
public User findByNameAndPwd(String name,String pwd) {
User user = null;
try {
getConn();
String sql = "select * from tb_user where userName = ? and pwd = ?";
ps = connection.prepareStatement(sql);
ps.setObject(1,name);
ps.setObject(2,pwd);
res = ps.executeQuery();
while (res.next()) {
user = new User();
user.setId(res.getInt("id"));
user.setUserName(res.getString("userName"));
user.setPwd(res.getString("pwd"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
closeAll();
}
return user;
}
//添加用户到数据库 完成注册功能
public void insert(User user) {
String sql = "insert into tb_user values (null,?,?)";
edit(sql,user.getUserName(),user.getPwd());
}
}
4、添加员工信息
add.jsp (添加界面)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
添加界面
addDo.jsp (处理页面)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
<%
request.setCharacterEncoding("utf-8");
String addName = request.getParameter("newName");
String addAddress = request.getParameter("newAddress");
DeptDao deptDao = new DeptDao();
Dept dept = new Dept();
dept.setName(addName);
dept.setAddress(addAddress);
deptDao.addOne(dept);
response.sendRedirect("success.jsp");
%>
5、员工信息的删除
delete.jsp(删除)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
<%
String id = request.getParameter("id");
out.print(id);
DeptDao deptDao = new DeptDao();
//Integer.parseInt(id) 把数字字符串转换为整形
deptDao.deleteOne(Integer.parseInt(id));
response.sendRedirect("success.jsp");
%>
6、员工信息的修改
update.jsp(修改页面)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
修改界面
<%
String id = request.getParameter("id");
DeptDao deptDao = new DeptDao();
Dept dept = deptDao.findById(Integer.parseInt(id));
%>
updateDo.jsp(处理页面)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
<%
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String name = request.getParameter("name");
String address = request.getParameter("address");
DeptDao deptDao = new DeptDao();
Dept dept = new Dept(Integer.parseInt(id),name,address);
deptDao.update(dept);
//跳转界面到成功界面
response.sendRedirect("success.jsp");
%>
7、退出员工表
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
<%
session.invalidate();
response.sendRedirect("login.jsp");
%>
8、四大域对象
//四大域对象 可以存储数据
//当前页面有效
pageContext.setAttribute("name","pageContext中存储的对象");
//作用范围是同一个请求有效
request.setAttribute("name","request中存储的对象");
//作用范围是同一个会话有效
session.setAttribute("name","session中存储的对象");
//作用范围是同一个应用
application.setAttribute("name","application中存储的对象");
//四大域对象 可以存储数据
//当前页面有效
pageContext.setAttribute("name","pageContext中存储的对象");
//作用范围是同一个请求有效
request.setAttribute("name","request中存储的对象");
//作用范围是同一个会话有效
session.setAttribute("name","session中存储的对象");
//作用范围是同一个应用
application.setAttribute("name","application中存储的对象");



