项目阶段五:登录登出优化

1、登陆—显示用户名

UserServlet 程序中保存用户登录的信息:
login():

protected void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    //  1、获取请求的参数
    String username = req.getParameter("username");
    String password = req.getParameter("password");
    // 调用 userService.login()登录处理业务
    User loginUser = userService.login(new User(null, username, password, null));
    // 如果等于null,说明登录 失败!
    if (loginUser == null) {
        // 把错误信息,和回显的表单项信息,保存到Request域中
        req.setAttribute("msg", "用户或密码错误!");
        req.setAttribute("username", username);
        //   跳回登录页面
        req.getRequestDispatcher("/pages/user/login.jsp").forward(req, resp);
    } else {
        // 登录 成功
        // 保存用户登录的信息到Session域中
        req.getSession().setAttribute("user", loginUser);
        //跳到成功页面login_success.html
        req.getRequestDispatcher("/pages/user/login_success.jsp").forward(req, resp);
    }

}

regist():

在这里插入图片描述
修改 login_succuess_menu.jsp:
在这里插入图片描述

还要修改首页 index.jsp 页面的菜单 :

<div id="header">
		<img class="logo_img" alt="" src="static/img/logo.gif" >
		<span class="wel_word">网上书城</span>
		<div>
			<%--如果用户还没登录,显示     【登录 和注册的菜单】 --%>
			<c:if test="${empty sessionScope.user.username}">
				<a href="pages/user/login.jsp">登录</a> |
				<a href="pages/user/myregist.jsp">注册</a>&nbsp;&nbsp;
			</c:if>
				<%--如果已经登录,则显示 登录 成功之后的用户信息。--%>
			<c:if test="${not empty sessionScope.user.username}">
				<span>欢迎<span class="um_span">${sessionScope.user.username}</span>光临尚硅谷书城</span>
				<a href="pages/order/order.jsp">我的订单</a>
			</c:if>
			<a href="pages/cart/cart.jsp">购物车</a>
			<a href="pages/manager/manager.jsp">后台管理</a>
		</div>
</div>

效果:

在这里插入图片描述

2.登出—注销用户

1、销毁 Session 中用户登录的信息(或者销毁 Session)
2、重定向到首页(或登录页面)
UserServlet 程序中添加 logout 方法 :

/**
 * 注销
 * @param req
 * @param resp
 * @throws Exception
 */
protected void logout(HttpServletRequest req, HttpServletResponse resp) throws Exception {
    //1、销毁Session中用户登录的信息(或者销毁Session
   req.getSession().invalidate();
    //2、重定向到首页(或登录页面。
   resp.sendRedirect(req.getContextPath());
}

修改【注销】的菜单地址login_success_menu.jsp:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当使用SSH登录到远程服务器时,如果在一段时间内没有任何输入活动,SSH会自动登出用户,这就是所谓的“SSH等待输入超时:自动登出”问题。 SSH等待输入超时:自动登出的问题可能由以下几种情况引起: 1. 会话空闲:如果在服务器上的SSH会话中一段时间内没有任何输入活动,服务器会自动判定会话空闲,并自动登出用户。这是一个安全措施,以防止长时间没有任何操作的会话保持打开。 2. 网络连接问题:如果网络连接不稳定或延迟过高,服务器可能会误判为没有输入活动,并自动登出用户。在这种情况下,可以尝试重新建立SSH连接,或检查网络连接是否正常。 为了解决SSH等待输入超时问题,可以采取以下方法: 1. 在SSH命令中添加选项:可以通过在SSH命令中添加选项来设置超时时间,例如使用“-o ServerAliveInterval=60”选项,表示每隔60秒发送一个空闲包来维持连接活跃。 2. 配置服务器:可以在服务器上的SSH配置文件(通常是/etc/ssh/sshd_config)中设置ClientAliveInterval和ClientAliveCountMax选项,分别表示发送空闲包的时间间隔和允许的最大空闲包次数。通过调整这些选项的值,可以解决超时问题。 3. 模拟用户活动:如果需要保持SSH会话持续活动,可以定期发送一些命令或者模拟键盘输入,以防止SSH等待输入超时。 总体来说,SSH等待输入超时:自动登出问题是为了确保安全和资源的有效利用。通过合适的配置和设置,可以解决这个问题,并确保SSH会话的稳定性和可靠性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值