28、示例1--完成登录操作和条件查询

学习目标:

1、再通过示例巩固前面学习的知识

2、熟练使用MVC思想指导实际项目的开发

学习过程:

我们先完成登录吧这里我们把业务逻辑分为用户管理和登录两个,所以我们建立两个Servlet:LoginServlet和UserServlet,我们先完成登录功能。

一、登录功能

1、修改index.jsp,完成登录页面的设计,和前面没有什么区别,提交到登陆Servlet就行了恶。代码如下:

<body>
	<form action="loginServlert" method="post">
		用户名:<input name="username" /> <br /> 密码:<input name="pass"
			type="password" /> <br /> <input type="submit" value="登录" />
	</form>
</body>

2、完成登录的Servlet。登录失败就重新定向到登录页面,登录成功就重定向到用户管理的servlet。这里需要登录成功后把用户信息保存在session作用域中。

public class LoginServlert extends HttpServlet {

	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		UserDao userDao=new UserDao();
		
		String username=request.getParameter("username");
		String pass=request.getParameter("pass");
		
		User user=userDao.login(username, pass);
		if(user!=null){
			request.getSession().setAttribute("user", user);
			response.sendRedirect("admin/userServlet?op=list");
		}else{
			response.sendRedirect("index.jsp");
		}
	}

	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
     doGet(request, response);
	}

}

这样我们就完成了登录功能了,退出的Servlet,就是要把Session注销了。Servlet代码如下:

public class LogoutServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		request.getSession().invalidate();
		response.sendRedirect("index.jsp");
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}

下面我们完成用户管理。

二、用户列表

为了让用户管理servlet能够同时实现增删改查,所以这里我们就让每个页面的操作都传递一个变量值,决定当前是哪一步的操作。

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		UserDao userDao = new UserDao();

		String op = request.getParameter("op");// 让页面传递一个操作变量

		if (op == null || op.equals("list")) {

		} else if (op.equals("add")) {

		} else if (op.equals("delete")) {

		} else if (op.equals("toupdate")) {	

		} else if (op.equals("update")) {

		}

	}

现在先完成用户列表的展示,所以对应的查询代码如下:

	if (op == null || op.equals("list")) {

			List<User> users = userDao.getAll();

			request.setAttribute("users", users);

			request.getRequestDispatcher("listuser.jsp").forward(request,
					response);

		} 

静态页面listuser.jsp实现如下:

<body>
	欢迎你:${user.username }
	<a href="logoutServlet">注销</a>
	<br />
	<a href="admin/useradd.jsp">注册用户</a>
	<table border="1" cellpadding="0" cellspacing="0">
		<thead>
			<tr>
				<th height="25">序号</th>
				<th>用户名</th>
				<th>性别</th>
				<th>基本操作</th>
			</tr>
		</thead>
		<tbody>
			<c:forEach items="${users }" var="user" varStatus="status">
				<tr>
					<td>${status.index+1 }</td>

					<td>${user.username }</td>
					<td><c:choose>
							<c:when test="${user.sex eq 1 }">男</c:when>
							<c:otherwise>女</c:otherwise>
						</c:choose></td>
					<td><a href="admin/userServlet?op=delete&uid=${user.userId} "
						onclick="return confirm('你真的要删除吗?')">删除</a> | <a
						href="admin/userServlet?op=toupdate&uid=${user.userId}">修改</a></td>
				</tr>
			</c:forEach>
		</tbody>
	</table>

</body>

猜你喜欢

转载自blog.csdn.net/liubao616311/article/details/84072030