一:登录和注销:
登录login.jsp界面
<body>
<%
//销毁session
session.invalidate();
%>
<h3>用户登录</h3>
<apan style="color:red">${
errorMsg}</apan>
<form action="/login" method="post">
账号:<input type="text" name="username" required/><br/>
密码:<input type="text" name="password" required/><br/>
<input type="submit" value=" 朕要登录 "/>
</form>
</body>
设置登录商品列表的servlet
@WebServlet("/login")
public class LoginServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
private IUserDAO dao;
public void init() throws ServletException {
dao = new UserDAOImpl();
}
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
//接收请求参数
String username = req.getParameter("username");
String password = req.getParameter("password");
//调用业务方法处理请求
User user = dao.getUserByUsername(username);
//控制界面跳转
if(user == null){
req.setAttribute("errorMsg","亲,"+username+"该账号不存在或者被禁言,请联系管理员!");
req.getRequestDispatcher("/login.jsp").forward(req, resp);
return ;
}
//检测当前的账户密码是否正确
if(!user.getPassword().equals(password)){
req.setAttribute("errorMsg", "亲,"+username+"该账号或密码不正确");
req.getRequestDispatcher("/login.jsp").forward(req, resp);
return;
}
//把当前登录用户存储到Session中
req.getSession().setAttribute("USER_IN_SESSION",user);
resp.sendRedirect("/product");
}
}
跳转到商品列表的servlet
@WebServlet("/product")
public class ProductServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private IProductDAO dao;
public void init() throws ServletException {
dao = new ProductDAOImpl();
}
//http://localhost/product 进入service方法,到底是保存,删除,查询
//http://localhost/product?cmd=save //保存操作
//http://localhost/product?cmd=delete //保存操作
//http://localhost/product?cmd=edit //编辑操作
//http://localhost/product //列表操作
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//--------------------------------------------
//检查用户是否已经登录,判断session中是否存在USER_IN_SESSION
Object user = req.getSession().getAttribute("USER_IN_SESSION");
if(user == null){
resp.sendRedirect("/login.jsp");
return ;
}
//--------------------------------------------
req.setCharacterEncoding("UTF-8");
String cmd = req.getParameter("cmd");
if ("save".equals(cmd)) {
this.saveOrUpdate(req, resp);
} else if ("edit".equals(cmd)) {
this.edit(req, resp);
} else if ("delete".equals(cmd)) {
this.delete(req, resp);
} else {
this.list(req, resp);
}
}
//列表操作
protected void list(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1:接受请求参数,封装对象
//2:调用业务方法处理请求
List<Product> list = dao.list();
req.setAttribute("p", list);
//3:控制界面跳转
req.getRequestDispatcher("/WEB-INF/views/product/product.jsp").forward(req, resp);
}
//编辑操作
protected void edit(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1:接受请求参数,封装对象
String sid = req.getParameter("id");
if (haslength(sid)) {
Long id = Long.valueOf(sid);
//2:调用业务方法处理请求
Product product = dao.get(id);
req.setAttribute("p", product);
}
//3:控制界面跳转
req.getRequestDispatcher("/WEB-INF/views/product/edit.jsp").forward(req, resp);
}
//删除操作
protected void delete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Long id = Long.valueOf(req.getParameter("id"));
dao.delete(id);
resp.sendRedirect(req.getContextPath()+"/product");
}
//新增或更新操作
protected void saveOrUpdate(HttpServletRequest req