JavaWeb数据库应用MVC开发模式(二)

JavaWeb数据库应用MVC开发模式(二)

前文介绍了学生用户模块的查询功能,通过创建一个JavaBean类Stu,一个数据库访问类StuDao及其成员函数find All(),实现从数据库查询所有注册用户信息,并以Stu列表对象的方式返回结果,最后由servlet发送给manage.jsp页面进行展示,详细代码见前一篇文章

学生用户模块-用户注册

1.总体思路

(1)要完成学生用户注册模块,首先,需要参考前文在StuDao类中增加一个成员函数
public ArrayList findByUsername(String username)
该函数根据用户名查询用户信息,并且可以用来在添加记录前验证是否有重名用户。具体代码可以参考上一篇文章的查询全部用户来实现。
(2)接下来,在StuDao类内在增加一个成员函数add(),完成向数据库添加Stu对象的操作。当servlet接收到注册页面register.jsp提交的用户注册请求时,将提取出用户名、口令等注册信息,并首先调用findByusername()方法查询数据库是否有同名用户,若没有则调用add()函数添加记录。

2.模型层

在StuDao类内在增加成员函数add(),返回值为整型,0为添加失败,大于0为成功。

	public int add(Stu stu){
		int rows=0;
		java.sql.Connection conn=null;
		java.sql.PreparedStatement pre=null;
		
		try{
			conn=DBUtil.getConnection();
			String sql="insert into stu(username,password,regip,regtime) values(?,?,?,NOW())";
			pre=conn.prepareStatement(sql);
			pre.setString(1, stu.getUsername());
			pre.setString(2, stu.getPassword());
			pre.setString(3, stu.getRegip());
			rows=pre.executeUpdate();
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try{
				if(pre!=null)
					pre.close();
				if(conn!=null)
					conn.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
		}
		return rows;		
	}

3.控制层

控制层采用servlet来实现,首先接收用户注册请求,并且封装成JavaBean对象stu,然后调用findByUsername(),查询是否有同名用户,若返回结果列表为空,则可以调用add()方法添加记录,成功后跳转到登录页,否则跳转回注册页。doget()方法主要代码如下:

		String webroot=request.getContextPath();
		StuDao studao=new StuDao();
		Stu stu=new Stu();
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		stu.setUsername(username);
		stu.setPassword(password);
		stu.setRegip("127.0.0.1");
		ArrayList<Stu> stuold=studao.findByUsername(username);			
		if(stuold.isEmpty()){
			int rows=studao.add(stu);
			if(rows!=0)
				response.sendRedirect(webroot+"/index.jsp");
			else
				response.sendRedirect(webroot+"/register.jsp");
		}else
			response.sendRedirect(webroot+"/register.jsp");

4.视图层

视图层register.jsp页面,采用HTML注册表单,包含两个文本输入元素,name分别为username和password(与servlet中获取的参数名一致)。

原创文章 8 获赞 2 访问量 2330

猜你喜欢

转载自blog.csdn.net/flyroc08/article/details/105379481