private void login() { String username = request.getParameter("username"); String password = request.getParameter("password"); String usertype = request.getParameter("usertype"); String action = request.getParameter("action"); String validcode=(String)request.getSession().getAttribute("validcode"); String inputvalidcode=request.getParameter("validcode"); System.out.println("验证码="+validcode); if (usertype != null && usertype.equals("0")) { Users u = (Users) DALBase.load("users", " where username='" + username + "' and password='" + password + "'"); if (u != null) { HttpSession session = request.getSession(); session.setAttribute("adminuser", u); try { response.sendRedirect(SystemParam.getSiteRoot() + "/admin/index.jsp"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else { // 分发 dispatchParams(request, response); request.setAttribute("errmsg",MessageFormat.format("< img src=\"{0}/admin/images/icon_wrong.png\"/>用户与密码不匹配",SystemParam.getSiteRoot())); System.out.println("系统用户登录失败"); try { request.getRequestDispatcher( "/admin/login.jsp").forward(request, response); } catch (ServletException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }解释每一行代码
时间: 2024-02-14 18:35:07 浏览: 29
这段代码是一个登录功能的实现。下面逐行解释:
1. `private void login() {`:定义了一个名为login的私有方法,没有参数。
2. `String username = request.getParameter("username");`:从request对象中获取名为"username"的参数值,存储在字符串变量username中。
3. `String password = request.getParameter("password");`:从request对象中获取名为"password"的参数值,存储在字符串变量password中。
4. `String usertype = request.getParameter("usertype");`:从request对象中获取名为"usertype"的参数值,存储在字符串变量usertype中。
5. `String action = request.getParameter("action");`:从request对象中获取名为"action"的参数值,存储在字符串变量action中。
6. `String validcode=(String)request.getSession().getAttribute("validcode");`:从request的session对象中获取名为"validcode"的属性值,存储在字符串变量validcode中。
7. `String inputvalidcode=request.getParameter("validcode");`:从request对象中获取名为"validcode"的参数值,存储在字符串变量inputvalidcode中。
8. `System.out.println("验证码="+validcode);`:打印出"验证码="和变量validcode的值。
9. `if (usertype != null && usertype.equals("0")) {`:如果usertype不为空且等于"0",则进入if语句块。
10. `Users u = (Users) DALBase.load("users", " where username='" + username + "' and password='" + password + "'");`:调用名为DALBase的类的load方法,从名为"users"的表中查询用户名和密码与传入的参数匹配的记录,将结果存储在名为u的Users对象中。
11. `if (u != null) {`:如果u不为空,则进入if语句块。
12. `HttpSession session = request.getSession();`:从request对象中获取session对象,存储在名为session的HttpSession变量中。
13. `session.setAttribute("adminuser", u);`:将名为"adminuser"的属性值设为u。
14. `try { response.sendRedirect(SystemParam.getSiteRoot() + "/admin/index.jsp"); } catch (IOException e) { e.printStackTrace(); }`:重定向到"/admin/index.jsp"页面。
15. `} else {`:否则,进入else语句块。
16. `dispatchParams(request, response);`:调用名为dispatchParams的方法,将request和response对象传入。
17. `request.setAttribute("errmsg",MessageFormat.format("< img src=\"{0}/admin/images/icon_wrong.png\"/>用户与密码不匹配",SystemParam.getSiteRoot()));`:向request对象中添加名为"errmsg"的属性,属性值为字符串格式化后的错误信息。
18. `System.out.println("系统用户登录失败");`:打印出"系统用户登录失败"。
19. `try { request.getRequestDispatcher( "/admin/login.jsp").forward(request, response); } catch (ServletException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }`:将请求转发到"/admin/login.jsp"页面。