通过Servlet实现注册和登录
通过Servlet实现注册和登录
用Servlet实现注册和登录,主要原理就是通过request对象和response对象在页面实现数据交互 , 先做一个请求 然后服务器做一个响应,达到获取数据的目的,这需要我们熟练掌握三层架构。
注册页面
注册页面是我们最常见的页面之一,如果仔细分析就会发现,注册页面在三层架构中是一个插入的逻辑,我们把要注册的内容放到数据库,当我们登录的时候这个request对象会向向服务器索要数据,如果有这个数据,说明之前有注册过,如果没有则需要重新注册; 详细代码如图所示:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //处理编码问题 request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); //设置响应的格式 response.setContentType("text/html"); //设置接受的对象 String userName = request.getParameter("userName"); String pwd = request.getParameter("pwd"); String name = request.getParameter("name"); String age = request.getParameter("age"); boolean istrue = false; //加入T-SQL语句 Connection conn = DButil.conn(); String sql = "Insert into users(userName,pwd,name,age)values(?,?,?,?)"; PreparedStatement ps = null; try { ps = conn.prepareStatement(sql); ps.setString(1, userName); ps.setString(2, pwd); ps.setString(3, name); ps.setString(4, age); int rs = ps.executeUpdate(); if(rs>0){ istrue = true; }else{ istrue = false; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } DButil.close(conn, null, ps); //使用out对象把所得到的结果数据到页面上 PrintWriter out = response.getWriter(); if(istrue){ out.print("<h1 style = color:green>注册成功</h1>"); }else{ out.print("<h1 style = color:red>注册失败</h1>"); } out.flush(); out.close();
登录页面
登录页面和注册页面基本是相似的,最大的区别在于注册是插入数据库信息的逻辑,而登录则是查询数据库的逻辑,当你登录的时候request对象要在数据库中寻找你登录的账号和密码,如果找到并且数据正确则登录成功,如果找不到或者信息不符合则出现找不到数据从而造成登陆失败; 代码如如下:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 处理编码问题 request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); // 设置响应的格式 response.setContentType("text/html"); // 设置接受的对象 String userName = request.getParameter("userName"); String pwd = request.getParameter("pwd"); boolean istrue = false; // 加入T-SQL语句 Connection conn = DButil.conn(); String sql = "Select * from users Where userName = ? and pwd = ? "; PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement(sql); ps.setString(1, userName); ps.setString(2, pwd); rs = ps.executeQuery(); if (rs.next()) { istrue = true; } else { istrue = false; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } DButil.close(conn, rs, ps); PrintWriter out = response.getWriter(); if (istrue) { out.print("<h1 style =color:green>登录成功!</h1>"); } else { out.print("<h1 style=color:red>登录失败!</h1>"); } out.flush(); out.close();
Out对象的主要作用就是把获取到的信息输出到页面方便人们观察,如果把代码写到jsp页面,则不需要此步骤,基本的注册和登录逻辑已经做好了,至于html页面需要自己补充哈
下一篇:
本地连接阿里云RDS云数据库(小白教程)