问答详情
源自:5-12 阶段项目

没看懂dologin.jsp中修改的东西

我还是不太懂,do.login.jsp到底是怎么引入两个类的,useBean对象的id就代表类名吗,参数为什么变成了loginUser

提问者:qq_苏格兰有个洞_0 2017-10-14 00:49

个回答

  • 百慕大大
    2017-10-14 02:36:55

    <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
    <jsp:useBean id="userDao" class="dao.UsersDao" scope="page"></jsp:useBean>
    <jsp:useBean id="loginUser" class="po.Users" scope="page"></jsp:useBean>
    <jsp:setProperty name="loginUser" property="*"></jsp:setProperty>
    <%
      request.setCharacterEncoding("utf-8");//防止中文乱码
      //如果用户和密码都等于admin,则登录成功
      if(userDao.usersLogin(loginUser)) {
        session.setAttribute("loginUser",loginUser.getUsername());
        request.getRequestDispatcher("login_success.jsp").forward(request, response);
      }
      else{
         response.sendRedirect("login_failure.jsp");
      }
    %>

         以上这是dologin.jsp中修改后的代码。

         这一章的项目使用了jsp+javaBean的模型来写(没有用到数据库,账号密码用静态数据模拟了)

    <jsp:useBean id="userDao" class="dao.UsersDao" scope="page"></jsp:useBean>
    <jsp:useBean id="loginUser" class="po.Users" scope="page"></jsp:useBean>

      首先,这两句代码使用了jsp动作元素创建了两个javaBean,相当于java中new一个对象的操作,id属性的值就是对象名。(new一个对象出来就能使用这个对象的成员变量和成员方法,这个你应该知道吧?)

    <jsp:setProperty name="loginUser" property="*"></jsp:setProperty>

      然后这一句是将前台登陆页面提交的表单信息赋值给loginUser这个javaBean中的属性,这个jsp动作元素不知道的话建议你再看下这个视频http://www.imooc.com/video/3965

    if(userDao.usersLogin(loginUser)) {
        session.setAttribute("loginUser",loginUser.getUsername());
        request.getRequestDispatcher("login_success.jsp").forward(request, response);
      }

        这个就是对表单提交的账号密码的判断了,其中“userDao.usersLogin(loginUser)”这个方法来自UserDao这个类。上面已经用<jsp:userBean>这个动作元素new出来了,对象名是userDao。

        接下来就是些重定向的操作,看懂了吗?