📄 714560.xml
字号:
<?xml version='1.0' encoding='GB2312'?>
<?xml-stylesheet type='text/xsl' href='../csdn.xsl'?>
<Topic>
<Issue>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<TopicId>714560</TopicId>
<TopicName>一个登录问题,tomcat4.0.3,当用户登录时如何限制用户输入用户名和密码的错误次数?</TopicName>
<PostUserId>142657</PostUserId>
<PostUserName>cattiger</PostUserName>
<RoomName>JSP</RoomName>
<ReplyNum>12</ReplyNum>
<PostDateTime>2002-5-11 17:34:11</PostDateTime>
<Point>60</Point>
<ReadNum>0</ReadNum>
<RoomId>28</RoomId>
<EndState>2</EndState>
<Content>当用户登录系统,输入用户名和密码,限制其最多连续输入三次错误的用户密码,让其重新打开一个窗口进入系统。
请问这怎样来实现呢,在服务器端限制,还是在客户端限制呢????</Content>
</Issue>
<Replys>
<Reply>
<PostUserNickName>沽名钓誉活死人</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<ReplyID>4673521</ReplyID>
<TopicID>714560</TopicID>
<PostUserId>101874</PostUserId>
<PostUserName>eaglemin</PostUserName>
<Point>5</Point>
<Content>随便,都行,你可以建立一个表,一登陆就建立一个,放他的登陆次数,每次登陆都检查,如果超出了就拒绝</Content>
<PostDateTime>2002-5-11 17:47:18</PostDateTime>
</Reply>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<ReplyID>4675279</ReplyID>
<TopicID>714560</TopicID>
<PostUserId>142657</PostUserId>
<PostUserName>cattiger</PostUserName>
<Point>0</Point>
<Content>这应该算是在服务器端限制吧,那在客户端怎么限制呢</Content>
<PostDateTime>2002-5-11 20:00:24</PostDateTime>
</Reply>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<ReplyID>4675286</ReplyID>
<TopicID>714560</TopicID>
<PostUserId>142657</PostUserId>
<PostUserName>cattiger</PostUserName>
<Point>0</Point>
<Content>eaglemin(沽名钓誉活死人),你做过这方面的东西吗</Content>
<PostDateTime>2002-5-11 20:01:07</PostDateTime>
</Reply>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<ReplyID>4675526</ReplyID>
<TopicID>714560</TopicID>
<PostUserId>142657</PostUserId>
<PostUserName>cattiger</PostUserName>
<Point>0</Point>
<Content>eaglemin(沽名钓誉活死人),你所说的方案,我有点想不通了,用户登录一下,登录次数字段的值加1,再检查判断是不是超过了3,那什么时候把此值复位为0呢。</Content>
<PostDateTime>2002-5-11 20:16:37</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>i</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<ReplyID>4680001</ReplyID>
<TopicID>714560</TopicID>
<PostUserId>212912</PostUserId>
<PostUserName>daanhan</PostUserName>
<Point>5</Point>
<Content>可以过一段时间(比如10分钟)复位.
当然要他密码什么的正确才行.
这些都在登陆的时候解决.</Content>
<PostDateTime>2002-5-12 9:58:44</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>saintKnight</PostUserNickName>
<rank>二级(初级)</rank>
<ranknum>user2</ranknum>
<credit>100</credit>
<ReplyID>4683616</ReplyID>
<TopicID>714560</TopicID>
<PostUserId>237709</PostUserId>
<PostUserName>saintKnight</PostUserName>
<Point>20</Point>
<Content>可以新建一个类存放登录次数的,在登录页设定此类的对象为request范围,当登录密码错误时,将该对象中的计数器加1,然后判断是否>3决定怎么处理。当登录成功后,转向另一页时该对象自动消灭,不知行不行</Content>
<PostDateTime>2002-5-12 16:56:17</PostDateTime>
</Reply>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<ReplyID>4683770</ReplyID>
<TopicID>714560</TopicID>
<PostUserId>142657</PostUserId>
<PostUserName>cattiger</PostUserName>
<Point>0</Point>
<Content>用户登录时就要新建一条记录,但登录时如何决定让用户新建一条记录还是只将登录次数字段值加1呢??
我想了一个方案:根据用户登录时间与表中的登录时间字段比较,只要不超出一定值就让其修改登录次数字段。
不知还有没有更好的方案呢,请高手指点。</Content>
<PostDateTime>2002-5-12 17:07:41</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>saintKnight</PostUserNickName>
<rank>二级(初级)</rank>
<ranknum>user2</ranknum>
<credit>100</credit>
<ReplyID>4684195</ReplyID>
<TopicID>714560</TopicID>
<PostUserId>237709</PostUserId>
<PostUserName>saintKnight</PostUserName>
<Point>30</Point>
<Content>public class LoginCount {
  private int lCount=0;
  public LoginCount() {
  }
  public int getLCount() {
     return lCount;
  }
  public void LCount() {
     lCount++;
  }
}
//以后是试验用的JSP页面
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
loginTest
</title>
</head>
<jsp:useBean id="myLCount" scope="session" class="LoginCount" />
<body>
<%
String username=request.getParameter("username");
String userpwd=request.getParameter("userpwd");
if(userpwd!=null) {
  if(userpwd.equals("success")) {
     session.invalidate();
     response.sendRedirect("success.jsp");
  }else{
     myLCount.LCount();
  }
}
int count=myLCount.getLCount();
out.println(count);
if(count>3) {
  out.println("登录失败!");
  return;
}
%>
<form name=myform method=post action="loginTest.jsp">
名称:<input type="text" name="username" value=""><br>
密码:<input type="text" name="userpwd" value=""><br>
<input type="submit" value="登录">
</form>
</body>
</html></Content>
<PostDateTime>2002-5-12 17:34:58</PostDateTime>
</Reply>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<ReplyID>4684329</ReplyID>
<TopicID>714560</TopicID>
<PostUserId>142657</PostUserId>
<PostUserName>cattiger</PostUserName>
<Point>0</Point>
<Content>saintKnight(saintKnight)谢谢,我马上试一下,
但那会你不是说在登录页设定此类的对象为request范围,而你给的例子中
<jsp:useBean id="myLCount" scope="session" class="LoginCount" />
scope为session了?</Content>
<PostDateTime>2002-5-12 17:44:31</PostDateTime>
</Reply>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<ReplyID>4690115</ReplyID>
<TopicID>714560</TopicID>
<PostUserId>142657</PostUserId>
<PostUserName>cattiger</PostUserName>
<Point>0</Point>
<Content>saintKnight(saintKnight),下面代码为什么要加上session.invalidate();呢??
if(userpwd.equals("success")) {
     session.invalidate();
     response.sendRedirect("success.jsp");</Content>
<PostDateTime>2002-5-13 8:22:40</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>saintKnight</PostUserNickName>
<rank>二级(初级)</rank>
<ranknum>user2</ranknum>
<credit>100</credit>
<ReplyID>4697049</ReplyID>
<TopicID>714560</TopicID>
<PostUserId>237709</PostUserId>
<PostUserName>saintKnight</PostUserName>
<Point>0</Point>
<Content>request范围不行,因为有form提交只能使用session范围。
还有session.invalidate()是为了清除存在session中的这个myLCount对象,也可以使用session.removeAttribute("myLCount")来清除。</Content>
<PostDateTime>2002-5-13 17:28:48</PostDateTime>
</Reply>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<ReplyID>4697347</ReplyID>
<TopicID>714560</TopicID>
<PostUserId>142657</PostUserId>
<PostUserName>cattiger</PostUserName>
<Point>0</Point>
<Content>我用session.invalidate()不行,因为我要用session。
好的,谢谢!
结帐。</Content>
<PostDateTime>2002-5-13 17:43:09</PostDateTime>
</Reply>
</Replys>
</Topic>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -