1.分析:
用户在账号密码输入框中输入账号密码,点击登陆。如果账号密码正确,页面跳转到主界面(main.jsp);如果账号密码不正确,还在登陆界面(index.jsp),并且提示账号密码不正确。如图:
2.步骤
a.接口中声明是否登陆成功的方法;
b.实现接口中的方法;
c.获取请求参数;
d.调用dao验证账号密码
e.如果正确,重定向到main.jsp(主页面);如果不正确,请求共享数据,并请求转发到index.jsp
3.代码
a:
ILoginDAO.java
public interface ILoginDAO { /*声明是否成功登陆方法*/ boolean isLogin(String username,String password); }
b:
LoginDAOImpl.java
public class LoginDAOImpl implements ILoginDAO{ /*实现接口中方法*/ @Override public boolean isLogin(String username, String password) { String sql = "select * from login where username=? and password=?"; List<Map<String, Object>> list = DBUtil.executeQuery(sql,username,password); /*list的长度大于0证明有该员工,list.size()>0返回true*/ return list.size()>0; } }
c,d:
LoginServlet.java
/*登陆servlet 使用注解的方式配置映射路径*/ @WebServlet("/login") public class LoginServlet extends HttpServlet{ @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { /*1.获取请求参数 :req.getParameter("参数的key")*/ String username = req.getParameter("username"); String password = req.getParameter("password"); System.out.println(username+" "+password); /*2.调用dao验证账号密码是否正确*/ ILoginDAO dao=new LoginDAOImpl(); boolean login = dao.isLogin(username,password); /*if(login)代表if(判断语句为true)*/ if (login){ /*如果正确,重定向到main.jsp(主页面)*/ resp.sendRedirect("/day49/main.jsp"); }else { /*如果不正确,请求共享数据,并请求转发到index.jsp*/ req.setAttribute("error","对不起,你输入的账号或者密码错误"); req.getRequestDispatcher("/index.jsp").forward(req,resp); } } }
e:
main.jsp:
index.jsp: