欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用户登陆保存账号信息业务逻辑

程序员文章站 2022-03-30 13:06:19
...

    本文主要说明如何将登陆页面的信息提交到servlet,并在servlet通过session对象返回账号信息,从而在主页显示用户名等信息内容。

一、login.jsp(登录)

<form action="servlet/LoginServlet" method="post">
<label>用户名: </label>
<label>密码: </label>
<input name="username" value="" />
<input type="submit" value="登录" class="login" style="cursor: pointer;"/>
<input type="password" name="password" value="">
/form>

以上的示例中,通过表单的形式将登录参数发送给servlet包下的LoginServlet处理。

二、LoginServlet(逻辑控制层)

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

		Users u = new Users(); // 服务器传来的账号和密码
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		u.setUsername(username);
		u.setPassword(password);
		ItemsDAO a = new ItemsDAO();// 调用DAO层方法
		int i = 1;
		// 利用for循环根据id查询传过来的账号密码是否正确
		for (i = 1; i <= a.getUsernumber(); i++) {
			if (u.getUsername().equals(a.getUser(i).getUsername())
					&& u.getPassword().equals(a.getUser(i).getPassword())) {	
				u.setMoney(a.getUser(i).getMoney());
				// 把登录成功的用户对象保存在session中
				request.getSession().setAttribute("regUser", u);
				//登录成功跳转到主页
				response.sendRedirect(request.getContextPath() + "/index.jsp");
				return;
			}
		}
		// 否则跳转到登录失败页面
		response.sendRedirect(request.getContextPath() + "/login_failure.jsp");
		return;
	}
上述示例中表单提交的是post请求,所以我们在servlet覆写dopost()方法,如果我们想把servlet中的登录成功的Users对象传过去则需要将其保存在session对象里,代码为:
request.getSession().setAttribute("regUser", u);

我们将session的key命名为“regUser”,剩下要做的就是在主页index.jsp中用javaBean接受session对象。

三、index.jsp

<h1>商品展示</h1>
	<jsp:useBean  id="regUser" class="com.po.Users" scope="session"/>
	<jsp:setProperty name="regUser" property="*" />
	<p align="right">用户:<jsp:getProperty name="regUser" property="username"/></p>
	<p align="right">余额:<jsp:getProperty name="regUser" property="money"/>元</p>
	<hr>
用javaBean接收“regUser”里的数据,class指定包路径,scope选择session,影响一次会话的内容。之后依次显示用户和余额就行了。