基于WEB的作业管理与批阅系统的毕业论文总结一:登录模块的设计

以下主要总结在实现系统过程中遇到的问题和解决方法。

1.系统的设计主要是数据库的设计。在写代码的过程中,数据库更改了很多次,在设计某个功能的时候发现数据库不对,然后又改数据库,有的代码又要改,所以造成了实践 浪费了不少。在老师的最后一次修改意见中我才彻底明白。在整个的实现中用了十二个表。首先是用户表,也就是用户登录信息匹配的时候要用到的表,只有三个字段:学工号/密码/用户类型。在登录的时候根据输入的用户名和密码在用户表中查询用户类型,如果查询成功,说明用户名和密码匹配,再再servlet中判断输入的用户类型和数据库中取出的用户类型是否匹配,如果相等,则说明用户信息正确,登录成功。再根据用户类型到相应的类型表中,比如说学生表,根据用户名查询用户的姓名,放到Session中。再跳转到其它请求。

    在管理员添加用户信息的时候除了添加到用户信息表中,还要在servlet中设置用户类型,和用户密码和用户名放到用户表,即登录表中。这样既成功添加了用户,又让用户可以登录。

<form class="form-horizontal" id="from" action="" method="post">
				<h2>用户登录</h2>
				<table>
					<tr>
						<td>学工号:</td>
						<td><input class="input-block-level" style="width:160px" type="text" name="userNumber"/></td>
					</tr>
					<tr>
						<td>密    码:</td>
						<td><input class="input-block-level" style="width:160px" type="password" name="password"/></td>
					</tr>
					<tr>
						<td>类    型:</td>
						<td style="width:160px">
							<input type="radio" name="role" value="admin"/>管理员&nbsp;&nbsp;
							<input type="radio" name="role" value="teacher"/>教师&nbsp;&nbsp;
							<input type="radio" name="role" value="student"/>学生&nbsp;&nbsp;
						</td>
					</tr>
					
					<tr>
						<td>验证码:</td>
						<td>
						<input class="input-block-level" type="text" id="input1" style="width:100px" />
						<input type="button" id="checkCode" class="code" style="width:60px" onClick="createCode()" />
						 <a href="#" onClick="createCode()">点击刷新</a>
						</td>
					</tr>
					
					<tr>
						<td colspan="2" align="center">
							<input class="btn btn-small btn-primary" type="submit" value="登录" onclick="validate();" />&nbsp;&nbsp;&nbsp;&nbsp;
							<input class="btn btn-small btn-primary" type="reset" value="重置"/>
						</td>
					</tr>
				</table>
			</form>

java Servlet代码:

private void login(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{

		//获取页面表单中的数据
		String userNumber = request.getParameter("userNumber");
		String password = request.getParameter("password");
		String role = request.getParameter("role");
		
		//把数据传到service中,并把数据库的数据放在实体中
		User user = ius.login(userNumber, password);
		//System.out.println(user.getRole());
		//System.out.println(user.toString());
		
		//如果user不为空,则说明用户名和密码正确,跳转到角色验证
		//否则用户名和密码不匹配,则提示重新输入
		if (user != null) {
			HttpSession session = request.getSession();
			session.setAttribute("user", user);    //把user放在session中
			/*
			 * //验证页面的角色和数据库的角色是否一致,
			 * 如果页面的角色和数据库的角色一致,则登录成功,
			 * 如果不一致则提示用户类型错误,需要跳转到登录页面重新输入
			 */
			if(role.equals(user.getRole())&&role.equals("admin")){    
				request.getRequestDispatcher("findAllAdmin.admin").forward(request,response);
			}else if(role.equals(user.getRole())&&role.equals("teacher")){
				request.getRequestDispatcher("teacherLogin.work").forward(request,response);
			}else if(role.equals(user.getRole())&&role.equals("student")){
				request.getRequestDispatcher("findClassesBySNumber.work").forward(request,response);
			}else {
				response.sendRedirect("login.jsp");
			}
		} else {
			response.sendRedirect("login.jsp");
		}
	}
}

 

转载于:https://my.oschina.net/u/3476497/blog/908478

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值