• 登陆的一个大概流程


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

    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 }
  • 相关阅读:
    Hibernate4.0之HibernateSessionFactory源码详解
    Struts.xml中Action的method与路径的三种匹配方法
    codeforces B. Ohana Cleans Up
    codeforces C. Vanya and Scales
    Hibernate主键生成策略
    codeforces B
    FileUpload实现文件上传(包含多文件)
    structs2之多文件上传
    svn的安装与使用
    codeforces Soldier and Number Game(dp+素数筛选)
  • 原文地址:https://www.cnblogs.com/wdh1995/p/6725039.html
Copyright © 2020-2023  润新知