我正在从事一个 MIS 项目,目前我正在为此创建一个登录系统。 我在服务器端使用 servlet,在客户端使用 jquery 进行 ajax 调用。
他们是一个登录页面,首先通过 ajax 调用检查登录状态,如果用户已经登录,则将页面位置更改为“services.html”。
当 services.html 加载时,我再次检查登录状态以及用户是否未登录
然后我将页面位置更改为“Login.html”使用
document.location='Login.html';
代码是这样的
$(document).ready(function() {
$("#login").hide();
$.post("checkLogin",function(xml) {
var status = $(xml).find("result").text();
if (status == "yes") {
document.location='Login.html';
}
else{
// Do Nothing.
}
});
现在 services.html 页面的问题是它会在整个页面加载到浏览器后检查登录状态。
我不知道还有什么其他好的方法可以限制未登录用户访问“services.html”页面。由于这个项目相当大,我必须创建大量类似于“services.html”的私有(private)页面,比如“stuInfo.html”,用于访问学生信息等。
任何人请告诉我任何好的方法。
最佳答案
你应该在服务器端检查这个,而不是在客户端。 JavaScript 在客户端运行,可禁用、可破解和可欺骗。您不希望您的应用程序如此脆弱。
将所有受限制的页面放在某个文件夹中,例如/secured
然后创建一个 Filter
映射到<url-pattern>
的 /secured/*
并检查登录用户在 doFilter()
中是否存在方法。
可以在 servlet-filters
tag info page 中找到示例.
关于java - 只允许登录用户访问私有(private)页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4736515/