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

JavaWeb应用MVC开发模式(一)

学生用户模块-查询

为了对学生用户实体进行管理,首先要创建一个JavaBean类Stu,然后创建一个数据库访问类StuDao。

1.模型层

在StuDao类内增加查询全部学生用户的方法findAll(),因为需要返回多个Stu对象,因此返回值设为ArrayList类型的列表,代码如下:

	//查找所有学生用户,返回Stu列表对象
	public ArrayList<Stu> findAll(){
		ArrayList<Stu> stus=new ArrayList<Stu>();
		java.sql.Connection conn=null;
		java.sql.PreparedStatement pre=null;
		java.sql.ResultSet rs=null;
		
		try{
			conn=DBUtil.getConnection();
			String sql="select * from stu";
			pre=conn.prepareStatement(sql);
			rs=pre.executeQuery();
			while(rs.next()){
				Stu stu=new Stu();
				stu.setUserid(rs.getInt("userid"));
				stu.setUsername(rs.getString("username"));
				stu.setPassword(rs.getString("password"));
				stu.setRegip(rs.getString("regip"));
				stu.setRegtime(rs.getString("regtime"));
				stus.add(stu);
			}
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try{
				if(rs!=null)
					rs.close();
				if(pre!=null)
					pre.close();
				if(conn!=null)
					conn.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
		}		
		return stus;		
	}

如果需要按照用户名进行查询,可以设计一个findByusername(String username)方法,具体实现可以参照上面的例子进行修改。

2.控制层

控制层可以用一个Servlet来实现,doget()方法主要部分示例代码如下:

		String webroot=request.getContextPath();
		StuDao studao=new StuDao();
		Stu stu=new Stu();
		ArrayList<Stu> stus=studao.findAll();
		request.setAttribute("stus", stus);
		request.getRequestDispatcher("Admin/manage.jsp").forward(request, response);

3.视图层

视图层在Admin目录下新建一个manage.jsp页面,接收servlet转发的请求中携带的stus属性,其值是一个保存了所有学生用户JavaBean对象的列表,manage.jsp页面将这些对象展现出来,其中用到了JSTL标签,使用方法可以参考菜鸟教程JSTL标签库的介绍。
页面主要代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>MVC</title>
  </head>
  <body>
    <h3><a href="StuHandle.do">查询全部用户</a></h3>
	<p>总计 ${stus.size()} 位学生:</p>
    <table border="1">
    	<tr>
    		<td>用户名</td>
    		<td>注册ip</td>
    		<td>注册时间</td>
    		<td>操作</td>
    	</tr>
    <c:forEach items="${stus}" var="stu" varStatus="rows">
    	<tr>
    		<td>${stu.username}</td>
    		<td>${stu.regip}</td>
    		<td>${stu.regtime}</td>
    	</tr>
    </c:forEach>
    </table>
  </body>
</html>
原创文章 8 获赞 2 访问量 2332

猜你喜欢

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