通过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页面需要自己补充哈

经验分享 程序员 微信小程序 职场和发展