在页面中判断是否有登录
登录成功后可以在session中放入一个值,用于判断是否有登录。Java代码如下:
request.getSession().setAttribute("successful", "successful");
在页面可以使用jquery的 ( f u n c t i o n ( ) ) 或 原 生 J S 的 (function(){})或原生JS的 (function())或原生JS的(document).ready(function(){}),在DOM加载完成之后执行, 在jsp中可以使用<%=……%>(读取显示Java变量)获取session中的值,再进行判断。jsp的脚本(script)如下所示:
-
Jquery:
<script src="${ctx}/Content/bootstrap-3.3.7-dist/js/jquery-2.0.3.min.js"></script> <script type="text/javascript"> $(function () { var successful = "<%=session.getAttribute("successful")%>"; if(successful != "successful"){ window.location.href = "${ctx}/jsp/Login.jsp"; } }) </script>
-
JavaScript:
<script type="text/javascript"> $(document).ready(function(){ var successful = "<%=session.getAttribute("successful")%>"; if(successful != "successful"){ window.location.href = "${ctx}/jsp/Login.jsp"; } }) </script>
也可以用AJAX来请求服务器,再返回session中的值后判断。如下所示:
-
Jquery:
<script src="${ctx}/Content/bootstrap-3.3.7-dist/js/jquery-2.0.3.min.js"></script> <script type="text/javascript"> $(function () { $.ajax({ url:"${ctx}/servlet/LoginServlet?type=Login",//ajax请求要发送的地址 dataType:"text",//响应数据的类型 type:"post",//发送请求的方式 success:function(data){ //data为服务器端响应的数据 if(data == "未登录"){ window.location.href = "${ctx}/jsp/Login.jsp"; } } }); }) </script>
-
JavaScript:
<script type="text/javascript"> $(document).ready(function(){ //1.创建ajax引擎对象----所有操作都是由ajax引擎完成 var xmlHttp = new XMLHttpRequest(); //2.为引擎对象绑定监听事件 xmlHttp.onreadystatechang = function() { //当状态变化时处理的事情 if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { //5.接收响应信息 var data = xmlHttp.responseText; if(data == "未登录"){ window.location.href = "${ctx}/jsp/Login.jsp"; } } } //3.绑定服务器地址 //第一个参数:请求方式GET/POST //第二个参数:后台服务器地址 //第三个参数:是否是异步(true--异步,false--同步) xmlHttp.open("post","${ctx}/servlet/LoginServlet?type=Login",true); //4.发送请求 xmlHttp.send(); }) </script>
在servlet服务器中的方法如下所示:
private void Login(HttpServletRequest request, HttpServletResponse response) throws IOException {
PrintWriter out = response.getWriter();
Object successful = request.getSession().getAttribute("successful");
if(!"successful".equals(successful)){
out.write("未登录");
}else{
out.write("已登录");
}
}