問題
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{
//轉發到登錄界面
}