javaweb的程序有个很大的弊端,是通过url可以直接访问后续页面,而跳过登陆验证的步骤。
此提出三个解决办法:
常规:
1.最常用的是设置拦截器,百度代码一堆
2.将文件放到web-inf下,但这样也不方面自己操作
非常规(个人的解决办法):
我的解决办法是判断当前页面是否有session,如果没有则跳转报错页面,若有则继续操作
jsp页面下嵌入以下代码:
<%
try{
String str = request.getSession().getAttribute("temp").toString();
}catch(Exception e){
%>
<script type="text/javascript">
alert("非法登陆,无权访问,请您先登陆");
window.location.href="../index.jsp";
</script>
<%
}
%>
思路:
在java中获取session对象的值,若可以获取到则正常进行,若获取为null则报错并跳转
但是!!!!在获取不到时,java会返回给你500,这就比较尴尬了。
所以,我们采用监听错误的方式。
try一下,若不报错,则证明session对象是存在的,则继续运行。
若报错,则用catch抓到它,并提示跳转。
提示框提醒并跳转的话使用js,所以将js与java混插一下。
个人的解决办法,欢迎大家交流。