狂晕!登录问题

gzf30 2004-10-23 10:24:05
在index.jsp里面加了下面代码,不加时登录验证OK,加了以后应该转到index.jsp的也转到error.jsp
<%
if(session.getAttribute("inforagentLogin")==null){
response.sendRedirect("error.jsp");
}
%>
验证登录页面checkagent.jsp代码
<title>checkagent</title>
</head>
<body>
<%
String agentLogin;
String agentPasswd;
dbAgents agent=new dbAgents();
agentLogin = request.getParameter("agentLogin");
agentPasswd = request.getParameter("agentPasswd");
session.setAttribute("inforloginName",agentLogin);
session.setAttribute("inforagentPasswd",agentPasswd);
if(agentLogin==null||agentLogin.length() == 0 ||agentPasswd==null||agentPasswd.length()== 0){
response.sendRedirect("error.jsp");
}
else if(agent.lookup(agentLogin) && agentPasswd.equals(agent.getPasswd())){
response.sendRedirect("index.jsp");
}
else{
response.sendRedirect("error.jsp");
}

%>
</body>
</html>
...全文
86 点赞 收藏 3
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzf30 2004-10-24
if(session.getAttribute("inforagentLogin")==null||session.getAttribute("inforagentLogin").length<=1)改成这样也是同样的问题,????????
回复
panda00 2004-10-23
不会吧,这个代码理论上是没有问题的(浅薄之见)。请楼主确信确实已经编译过后才运行的,如果没有编译,后果当然这样。
另外还有一种可能是:假如你刚开始登录,正常登录(注意,正常登录的时候,inforagentLogin是不为null的,即不为空),如果你没有关闭浏览器(正常登录的页面),这是又直接进入index.jsp页面(我认为,楼主设置error.jsp无非是不想让人非法进入),于是以前的session并没有销毁,所以使得session.getAttribute("inforagentLogin")==null不成立,当然也就不会跳转到error.jsp页面了。不知道你用的服务器软件是什么,但都可以设置session寿命长短的,有些比较好配置(比如weblogic)有些就可以在配置文件中设置(一般在类似config.xml等中设置)。如果及时消灭不需要的session可能会比较安全。
我以前也遇到过这样的问题,但做法是在那个判断里边再加一条,即session.getAttribute("inforagentLogin")==null||session.getAttribute("inforagentLogin").length<=1
是否奏效,楼主试试。

小弟只是抛砖引玉,希望有见地者不吝赐教。
大家一起学习,有愿意加入这个学习群(JAVA)的请入:6437732
回复
flyforlove 2004-10-23
你在登陆页面加这个做什么???

<%
if(session.getAttribute("inforagentLogin")==null){
response.sendRedirect("error.jsp");
}
%>
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告