项目总结整理

简介: 项目描述:写一个登录界面,输入账号密码,对比数据库里面的数据,如果匹配成功的话,跳转到显示“Welcome +用户名”的页面,如果与数据库里面的数据匹配不成功,则留在原页面项目思路:建一个用户类,用来传参;建一个dao层,专门连接数据库里面的数据;在WRB-INF文件下建一个html登录界面;建立一个Servlet文件,用于获取登录界面里输入的值,判断User是否为空

项目描述:


写一个登录界面,输入账号密码,对比数据库里面的数据,如果匹配成功的话,跳转到显示“Welcome +用户名”的页面,如果与数据库里面的数据匹配不成功,则留在原页面


项目思路:


建一个用户类,用来传参;建一个dao层,专门连接数据库里面的数据;在WRB-INF文件下建一个html登录界面;建立一个Servlet文件,用于获取登录界面里输入的值,判断User是否为空


项目代码及注释解释:


第一步:因为要和数据库连接,所以先导进Oracle的jdbc的jar包


找到Oracle安装路径,在jdbc文件中找到ojdbc.jar复制到WebContent--WEB-INF-lib文件夹下,这个文件夹统一放第三方jar包,当然想要使用数据库得先打开电脑的监听啥的,这些细节就不讲了,扩展起来主题就没啦


第二步:建一个用户类


publicclass User {


   private String name;


   private String pass;


   public User() {


      super();


   }


   public User(String name, String pass) {


      super();


      this.name = name;


      this.pass = pass;


   }


   //实现get set方法用来后面用户名密码的赋值,传参


   public String getName() {


      returnname;


   }


   publicvoid setName(String name) {


      this.name = name;


   }


   public String getPass() {


      returnpass;


   }


   publicvoid setPass(String pass) {


      this.pass = pass;


}


   }


   第三步:建立一个db.properties配置文件,用来存放调用数据库的数据


在Java Resources—src文件夹下建此文件,第一行数据是数据库接口,其中YLMF123-3131857是计算机名、1521为数据库软件接口


   url=jdbc:oracle:thin:@YLMF123-3131857:1521:orcl


name=scott


pass=tiger


driver=oracle.jdbc.driver.OracleDriver


 


第四步:建一个dao层接口Interface


publicinterface UserDao {


   User LoginUser(String name,String pass);


}


第五步:建一个类实现dao层接口


publicclass UserDaoImpl implements UserDao {


   @Override


   public User LoginUser(String name, String pass) {


      //建立配置文件实例,用来调用


Properties p = new Properties();


      Connection conn = null;


      PreparedStatement pstmt = null;


      ResultSet rs = null;


      try {


      //加载db.properties配置文件


      p.load(this.getClass().getClassLoader().getResourceAsStream("db.properties"));


      //创建反射机制


      Class.forName(p.getProperty("driver"));


       //连接数据库


conn=DriverManager.getConnection(p.getProperty("url"),p.getProperty("name"),p.getProperty("pass"));


      String sql = "select *from userinfo where name = ? and pass = ?";


      //操作数据库,将sql语句发送到数据库


      pstmt = conn.prepareStatement(sql);


      //给第一个占位符赋值,将方法中的参数赋值进去,此参数被ServletDemo中获取到的表单域中的name赋值,


如果数据库中存在此name和密码则能查到信息,否则查不到信息,返回值为空


      pstmt.setString(1, name);


      pstmt.setString(2, pass);


       //将查询到的结果返回到结果集


      rs = pstmt.executeQuery();


      while(rs.next()){


          //将从数据库中得到的用户名和密码返回到User类中,如果没有此用户名则返回为空


          User u = new User(rs.getString("name"),rs.getString("pass"));


      }


      } catch (IOException e) {


          e.printStackTrace();


      } catch (ClassNotFoundException e) {


          e.printStackTrace();


      } catch (SQLException e) {


          e.printStackTrace();


      }finally{


          try {


             if(rs!=null){//一定要判断不为空,预防空指针


             rs.close();//关闭结果集,按照声明的顺序反向关闭


             }


          } catch (SQLException e) {


             e.printStackTrace();


          }


          try {


             if(pstmt!=null){


             pstmt.close();


             }


          } catch (SQLException e) {


             e.printStackTrace();


          }


          try {


             if(conn!=null){


             conn.close();


             }


          } catch (SQLException e) {


             e.printStackTrace();


          }


      }


      returnu;//返回用户类的值,用以ServletDemo()中判断User是否为空,为空则转发到zuoyelogin.jsp


页面,不为空(说明数据库中有此用户名和密码,说明登录成功)则跳转到welcome页面


   }


}


第六步:建立一个Servlet文件,用于获取登录界面里输入的值


@WebServlet("/ServletDemo")


publicclass ServletDemo extends HttpServlet{


   privatestaticfinallongserialVersionUID = 1L;


   public ServletDemo() {


       super();


   }


   protectedvoid doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException {


      //调用本类的doPost()方法


this.doPost(request, response);


   }


   protectedvoid doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException {


      //获取登录界面中表单域的输入的值


String name = request.getParameter("name");


      String pass = request.getParameter("pass");


      //实例化UserDaoImpl对象,用来调用


      UserDao ud = new UserDaoImpl();


      //将获取到的表单域中输入的值传参到UserDaoImpl的LoginUser()方法中,用来调用数据库中的值,如果


与数据库中的name与pass没有匹配的,则返回空


      User u = ud.LoginUser(name, pass);


      if(u==null){


           //判断为空的话,转发到zuoyelogin.jsp文件,及本页面文件


          RequestDispatcher rd=request.getRequestDispatcher("zuoyelogin.jsp");


          rd.forward(request, response);


      }else{


          //判断不为空时,则说明与数据库中的值匹配,登录成功,跳转到welcome界面


          PrintWriter out = response.getWriter();


          out.write("welcome"+u.getName());


      }  


   }


}


目录
相关文章
|
7月前
|
Web App开发 存储 缓存
【整理九】
【整理九】
78 1
|
7月前
|
JavaScript 前端开发 数据库
【整理八】
【整理八】
53 0
|
7月前
|
JavaScript 前端开发 网络协议
【整理四】
【整理四】
69 0
|
7月前
|
缓存 JavaScript 前端开发
【整理七】
【整理七】
58 0
|
7月前
|
JavaScript 前端开发 API
【整理六】
【整理六】
81 0
|
7月前
|
存储 缓存 前端开发
【整理五】
【整理五】
76 0
|
缓存 前端开发 JavaScript
【整理三】
【整理三】
64 0
|
JavaScript 前端开发 算法
【整理一】
【整理一】
76 0
|
缓存 前端开发 JavaScript
【整理二】
【整理二】
125 0

相关实验场景

更多