JSP网站登录记忆跳转实现详解

3星 · 超过75%的资源 需积分: 9 3 下载量 98 浏览量 更新于2024-09-19 收藏 127KB PDF 举报
"JSP网站登录记忆跳转实现的一种方法,主要通过处理用户的登录状态和页面重定向来提供便捷的用户体验。" 在JSP(JavaServer Pages)开发中,实现网站登录记忆跳转功能是为了提高用户体验,使用户在登录后能够直接返回到他们最初尝试访问的页面。以下是一个简单的JSP实现此功能的方法: 1. session限制访问页(member.jsp): 在`member.jsp`中,我们首先检查`session`中是否已经存在`username`属性。如果不存在,说明用户尚未登录,此时我们需要记录用户尝试访问的原始URL。通过`request.getHeader("Referer")`获取上一个页面的URL,即用户尝试访问的页面。由于`Referer`头可能为空或不安全,所以这里使用了一个名为`myRedirect.dealurl(request)`的自定义方法来处理和存储URL,以避免与请求的URL发生冲突,尤其是处理URL中的`&`字符。 如果用户未登录,我们将使用`response.sendRedirect()`重定向到登录页面`weblogin.jsp`,并将原始URL作为参数传递,以便登录成功后能跳转回去。 2. 登录页面(weblogin.jsp): 在`weblogin.jsp`中,我们首先通过`request.getParameter("url")`获取存储的原始URL,然后获取用户输入的`userid`和`password`。当用户提交登录信息时,进行登录验证。 - 如果登录成功,我们将`userid`存入`session`中,用于后续页面识别已登录的用户。然后,通过`myRedirect.geturl(url)`将处理过的URL还原为原始URL,并使用JavaScript的`self.location.href`改变页面位置,将用户重定向回最初的页面,从而实现“记忆跳转”。 - 如果登录失败,我们提示用户“用户名或密码错误”,并使用`history.back()`让浏览器返回上一页,即登录页面,让用户重新尝试登录。 这个方法的核心在于利用`session`来跟踪用户状态,以及通过处理`Referer`头来记住用户尝试访问的页面。这种方法简单实用,但需要注意安全性问题,如防止XSS攻击和非法的URL重定向。同时,对于POST请求的处理,上述方法没有涵盖,因为通常POST请求不会包含`Referer`头,可能需要额外的逻辑来处理这种情况。例如,可以在表单提交时将目标URL作为一个隐藏字段一起发送,以便在登录成功后获取并使用。