用户的登录及注册功能

今天来写一个简易版的用户登录和注册功能

先写一个DBUtil工具类

public class DBUtil {
	//加载数据库驱动
	static {
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	//连接数据库
	public static Connection getConn() {
		Connection conn = null;
		try {
			conn = DriverManager.getConnection(
					"jdbc:sqlserver://localhost:1433;databaseName=school",
					"sa", "1");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}
	//关闭资源
	public static void close(Connection conn, PreparedStatement ps, ResultSet rs) {

		try {
			if (conn != null)
				conn.close();

			if (rs != null)
				rs.close();

			if (ps != null)
				ps.close();

		} catch (SQLException e) {
			e.printStackTrace();
		}

	}
	//增删改的公共部分,提取成一个方法,方便调用
	public static int update(String sql,Object[] objs){
		int count = 0;
		
		Connection conn = getConn();
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement(sql);
			
			for (int i = 0; i < objs.length; i++) {
				ps.setObject(i+1, objs[i]);
			}
			
			count = ps.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			close(conn, ps, null);
		}

		return count;
	}
	//查询的代码提取成一个方法,方便调用
	public static ArrayList<Users> getSelect(){
		ArrayList<Users> list = new ArrayList<Users>();
		
		Connection conn = DBUtil.getConn();
		String sql = "SELECT * FROM users";
		PreparedStatement ps = null;
		ResultSet rs = null;
		Users  users = null;
		try {
			ps = conn.prepareStatement(sql);
			
			
			rs = ps.executeQuery();
			while (rs.next()) {
				users = new Users();
				users.setId(rs.getInt("id"));
				users.setUserName(rs.getString("userName"));
				users.setPwd(rs.getString("pwd"));
				users.setSex(rs.getString("sex"));
				users.setAge(rs.getInt("age"));
				list.add(users);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			DBUtil.close(conn, ps, rs);
		}
		
		return list;
	}
}

注册

注册相当于就是新增一个用户
在WebRoot目录下创建一个.jsp文件

// 注册页面
 <form action="reg" method="post">
    	账号:<input type="text" name="userName"/><br />
    	密码:<input type="password" name="pwd"/><br />
    	年龄:<input type="text" name="age"/><br />
    	性别:<input type="text" name="sex"/><br />
    	<input type="submit" value="点击注册" />
    </form>

在src目录下创建Servlet文件如图所示
在这里插入图片描述在dopost方法里写入

	// 设置编码
	request.setCharacterEncoding("utf-8");
	response.setCharacterEncoding("UTF-8");
	response.setContentType("text/html");
		
	//获取数据
	String userName = request.getParameter("userName");
	String pwd = request.getParameter("pwd");
	Integer age =Integer.parseInt(request.getParameter("age"));
	String sex = request.getParameter("sex");
		
	//设置一个sql语句和一个Object类型的数组
	String sql = "INSERT INTO users VALUES(?,?,?,?)";
	Object[] objs = { userName, pwd, age, sex };
		
	//调用DBUtil类里的update方法并返回值	
	int count = DBUtil.update(sql, objs);
	
	if (count > 0) {
	
		//如果count>0,调用DBUtil类的getSelect()方法并返回一个ArrayList数组
		ArrayList<Users> list = DBUtil.getSelect();
		
		//把list存入,方便不同页面间传值
		request.setAttribute("list", list);
		
		//使用转发,如果注册成功,跳转到查询所有用户信息页面
		request.getRequestDispatcher("refer.jsp").forward(request, response);
	} else {
	//使用重定向,如果注册失败,跳转到注册页面,重新注册
		response.sendRedirect("reg.jsp");
	}

在创建一个refer.jsp用于查询所有用户信息

<table>
			<thead>
				<tr>
					<th>
						编号
					</th>
					<th>
						用户名
					</th>
					<th>
						密码
					</th>
					<th>
						性别
					</th>
					<th>
						年龄
					</th>
				</tr>
			</thead>
			<tbody>
				<%
					ArrayList<Users> list = (ArrayList<Users>) request.getAttribute("list");
					for (Users users : list) {
				%>
				<tr>
					<td><%=users.getId() %></td>
					<td><%=users.getUserName() %></td>
					<td><%=users.getPwd() %></td>
					<td><%=users.getSex() %></td>
					<td><%=users.getAge() %></td>
				
				</tr>
				<%
					}
				%>
			</tbody>
		</table>

登录

登录,就是在数据库里查询和输入的账号,密码一致的用户信息
先建一个login.jsp

<form action="login" method="post">
			账号:
			<input type="text" name="userName" />
			<br />
			密码:
			<input type="password" name="pwd" /><br />
			<input type="submit" value="登录" />
			<a href="reg.jsp">注册</a>
		</form>

在创建一个LoginServlet.java的Servlet类

		// 设置编码
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html");
		
		//获取数据
		String userName = request.getParameter("userName");
		String pwd = request.getParameter("pwd");
		
		//调用方法
		Users users = SelectTest.select(userName, pwd);
		
		if (users != null) {
			
			HttpSession session = request.getSession();
			session.setAttribute("users", users);
			
			response.sendRedirect("main.jsp");
		}else{
			response.sendRedirect("main.jsp");
		}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值