登陆的一个大概流程

登陆的一个大概流程:----------------------------------

1、接受登陆参数

2、参数的合法性检验

3、检验成功,执行用户名是否存在的查询

4、如果不存在该用户,返回登陆页面,并加入提示信息

5、如果存在,检验密码是否正确,如果密码不正确,返回登陆页面,加入提示信息

6、密码匹配正确的情况下,user用户加入session,执行跳转到主页面index.jsp

代码演示如下:

 1 @WebServlet(name="UserLoginController",urlPatterns="/userLoginController.do")
 2 public class UserLoginController extends HttpServlet {
 3 
 4     /**
 5      * 
 6      */
 7     private static final long serialVersionUID = 316814735375739240L;
 8 
 9     @Override
10     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
11             throws ServletException, IOException {
12         doPost(req, resp);
13     }
14     
15     @Override
16     protected void doPost(HttpServletRequest req, HttpServletResponse resp)
17             throws ServletException, IOException {
18         /**
19          * 登陆的一个大概流程:
20          * 1、接受登陆参数
21          * 2、参数的合法性检验
22          * 3、检验成功,执行用户名是否存在的查询
23          * 4、如果不存在该用户,返回登录页面,并加入提示信息
24          * 5、如果存在,检验密码是否正确,如果密码不正确,返回登录页面,并加入提示信息
25          * 6、密码匹配正确情况,user用户加入到session中,执行跳转到主页面index.jsp
26          */
27         
28         //1.接受参数
29         String userName = req.getParameter("userName");
30         String userPwd = req.getParameter("userPwd");
31         
32         //2.参数的合法性检验
33         String msg = "";
34         if (MyStringUtil.isNullOrEmpty(userName) || MyStringUtil.isNullOrEmpty(userPwd)) {
35             msg  ="用户名或密码不能为空";
36             req.setAttribute("msg", msg);
37             req.getRequestDispatcher("login.jsp").forward(req, resp);
38             return;
39         }
40         
41         
42         //合法性检验后,我们就执行一个用户名是否存在的一个查询,用到JDBC
43         Connection conn = null;
44         PreparedStatement ps = null;
45         ResultSet rs = null;
46         User user = null;
47         try {
48             conn = MyDBUtil.getMysqlConn();
49             String sql = "select id,user_name as userName,user_pwd as userPwd from user where user_name=?";
50             ps = conn.prepareStatement(sql);
51             ps.setString(1, userName);
52             
53             rs = ps.executeQuery();
54             
55             while(rs.next()){
56                 user = new User();
57                 user.setId(rs.getInt("id"));
58                 user.setUserName(rs.getString("userName"));
59                 user.setUserPwd(rs.getString("userPwd"));
60             }
61             
62             //判断用户是否为空
63             if (user == null) {
64                 msg = "该用户不存在";
65                 req.setAttribute("msg", msg);
66                 req.getRequestDispatcher("login.jsp").forward(req, resp);
67                 return;
68             }
69             
70             //判断输入的密码是否和数据库中的密码一致
71             if (!userPwd.equals(user.getUserPwd())) {
72                 msg = "密码不正确";
73                 req.setAttribute("msg", msg);
74                 req.getRequestDispatcher("login.jsp").forward(req, resp);
75                 return;
76             }
77             
78             req.getSession().setAttribute("user", user);
79             req.getRequestDispatcher("index.jsp").forward(req, resp);
80             
81         } catch (SQLException e) {
82             e.printStackTrace();
83         }finally{
84             MyDBUtil.close(rs, ps, conn);
85         }
86         
87     }
88 }

登陆成功后还要有退出,下面是退出的代码演示:

 1 /**
 2  * 登陆写完了,这个还有退出按钮
 3  * @author 王东海
 4  * @2017年4月17日
 5  */
 6 @WebServlet(name="UserLoginOutController",urlPatterns="/userLoginOutController.do")
 7 public class UserLoginOutController extends HttpServlet {
 8 
 9     /**
10      * 
11      */
12     private static final long serialVersionUID = 2644950956616792942L;
13 
14     @Override
15     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
16             throws ServletException, IOException {
17         doPost(req, resp);
18     }
19     
20     /**
21      * 对于退出,我们要做什么操作?
22      * 清理下我们的session,然后转发到我们的登陆页面,也就是login.jsp
23      */
24     @Override
25     protected void doPost(HttpServletRequest req, HttpServletResponse resp)
26             throws ServletException, IOException {
27         req.getSession().setAttribute("user", null);//将user对应的信息制空
28         req.getRequestDispatcher("login.jsp").forward(req, resp);//转发到登录页面
29     }
30 }
原文地址:https://www.cnblogs.com/wdh1995/p/6725039.html