servlet中使用request.getHeader("referer")获取页面从哪跳转过来的
问题
servlet中使用request.getHeader("referer")获取页面从哪跳转过来的,利用这个方法可以判断网页是否正常登录。我做了一个javaweb小项目,其中有登录的jsp页面,当登录成功的时候会跳转到successServlet去执行其他功能,但是这样有一个安全功能,如果有人直接跳过登录界面而直接访问successServlet的话,也会使用我的功能,这样就算没登录也能使用其他功能
解决方法
可以在successServlet中判断是否是从登录界面跳转过来的,而要想判断,需要获取从哪跳转过来的页面url,这时就可以使用request.getHeader("referer"),判断如果是从登录界面跳转的,就正常访问,如果不是就转发到登录界面。
if("https://localhost:8080/webcase/login.jsp".equals(request.getHeader("referer"))){
//正常使用功能
}else{
//转发到登录界面
}