页面的主要界面如下:
jsp页面代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
用户信息管理系统
注意这里有对删除键的一个confirm提示,“ 是否确定要删除?” ,如果要删除,则自动跳转到delUserServlet,还有添加按钮,如果点击添加按钮,则会跳转到add.jsp页面,暂时先满足这两个功能。下面分别讲述这两个功能是怎么实现的。
删除
delUserServlet
package zr.web.userlist.web.Servlet;
import zr.web.userlist.service.UserService;
import zr.web.userlist.service.impl.UserServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/delUserServlet")
public class DelUserServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1. 获取id
String id = request.getParameter("id");
//2. 调用service删除
UserService service =new UserServiceImpl();
service.deleteUser(id);
//3. 跳转到查询所有用户记录的Servlet
response.sendRedirect(request.getContextPath()+"/userListServlet");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
在service层里面接口添加抽象方法
/**
* 根据id删除user
* @param id
*/
void deleteUser(String id);
然后在UserServiceImpl里面实现这个接口中的方法deleteUser
@Override
public void deleteUser(String id) {
//1. 调用dao中的delete方法,把数据库中删除一条记录
dao.delete(Integer.parseInt(id));
}
在dao层里面接口添加抽象方法
/**
* 删除数据库中的一条数据
* @param parseInt
*/
void delete(int parseInt);
在UserDaoImpl里面实现这个接口中的方法delete
@Override
public void delete(int parseInt) {
//1. 定义sql
String sql="delete from user where id=?";
//2. 执行sql
template.update(sql,parseInt);
}
添加
AddUserServlet
package zr.web.userlist.web.Servlet;
import org.apache.commons.beanutils.BeanUtils;
import zr.web.userlist.domain.User;
import zr.web.userlist.service.UserService;
import zr.web.userlist.service.impl.UserServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;
@WebServlet("/addUserServlet")
public class AddUserServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1. 设置编码
request.setCharacterEncoding("utf-8");
//2. 获取参数
Map map = request.getParameterMap();
//3. 封装对象
User user=new User();
try {
BeanUtils.populate(user,map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
//4. 调用Service保存
UserService service=new UserServiceImpl();
service.addUser(user);
//5. 直接跳转到UserListServlet
response.sendRedirect(request.getContextPath()+"/userListServlet");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
在service层里面接口添加抽象方法
/**
* 添加一个user
* @param user
*/
void addUser(User user);
然后在UserServiceImpl里面实现这个接口中的方法addUser
@Override
public void addUser(User user) {
//1. 调用dao中的add方法,向数据库中添加一条数据
dao.add(user);
}
在dao层里面接口添加抽象方法
/**
* 向数据库中添加一条数据
* @param user
*/
void add(User user);
在UserDaoImpl里面实现这个接口中的方法add
@Override
public void add(User user) {
// 1. 定义sql语句
String sql="insert into user values(null,?,?,?,?,?,?,null,null)";
//2. 执行sql
template.update(sql,user.getName(),user.getGender(),user.getAge(),user.getAddress(),user.getQq(),user.getEmail());
}