【发布时间】:2014-09-29 15:55:48
【问题描述】:
短版-仅在会话已创建时才显示主页
详情
我有一个login.html。它链接到validation.jsp。它检查密码,然后重定向到以下页面。
但我希望仅当以下页面显示 验证是真的。否则,如果有人输入该页面的链接 并发现该页面没有登录,会提示 这样做。
它在 servlet 中运行良好。我在验证页面中创建了一个新会话
并在首页设置request.getSession(false)。
但这似乎在 jsp 中不起作用。如果我在页面中设置session=false
指令,那么我根本无法访问会话对象。如果我
明确地做了我在页面中所做的事情,它仍然不起作用!
<%@ page language="java" import="java.io.*"
contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"
import="java.util.*;"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
session=request.getSession(false);
if(session==null)
{
out.println("please login");
}
else
{
out.println("how did it run!!! ??");
out.println(application.getAttribute("one"));
out.println(session.isNew());
out.println(session.getId());
out.println("<form action='logout.jsp' method='post'>");
out.println("<input type='submit'>");
out.println("</form>");
}
%>
</body>
</html>
【问题讨论】:
-
最好不要检查会话的存在,而是检查存在的特定属性(例如用户令牌)。这样您就拥有更多控制权。
-
哦..像通过会话设置属性然后在主页上检查它?
-
就像在用户登录时设置一个属性(在他注销时删除它)然后确实在主页上检查它。顺便说一句,有一堆框架(shiro、spring security)可以为你做到这一点。
-
似乎可行。一旦我完成了 jsp,springs hibernate 将随之而来
-
谢谢……晚饭后试试这个